ETL = Extract → Transform → Load. You pull data from sources, clean and reshape it in a middle layer (Python, Spark, Informatica), then load curated data into the warehouse.
ELT = Extract → Load → Transform. You load raw (or lightly typed) data into the warehouse/lake first, then transform inside the destination with SQL, dbt, or Spark SQL.
ETL path:
Postgres / APIs / files
|
v
transform job (Spark / Python)
|
v
warehouse (only clean tables)
ELT path:
Postgres / APIs / files
|
v
warehouse / lake RAW zone
|
v
SQL / dbt / Spark SQL
|
v
staging → marts (BI)Tiny example
Daily orders.csv lands.
- ETL: a Python job joins FX rates, drops bad rows, then inserts into
fct_orders. - ELT: Fivetran/Airbyte loads
raw.orders; dbt buildsstg_ordersandfct_ordersin Snowflake.
Why ELT became popular
Cloud warehouses scale compute. Keeping raw history lets you reprocess when logic changes. Analytics engineers work in SQL next to the data.
When ETL still wins
Heavy ML feature prep, PII scrubbing before land, or a warehouse that cannot afford huge raw dumps.
Interview tip: Define both acronyms, give one concrete example each, then say: "Modern analytics stacks are often ELT with dbt; constrained or pre-clean use cases still use ETL."