ELT vs ETL: What’s the Difference?
If you’ve read about OLTP vs OLAP, you know that data usually starts life in an OLTP system (like the database behind an app) and needs to make its way into an OLAP system (like a data warehouse) so people can analyze it.
The question is: how does that data get there? That’s where ETL and ELT come in. They’re two strategies for moving and preparing data — and the difference comes down to one thing: when you transform the data.
The three steps
Both approaches share the same three ingredients:
- Extract — pull the data out of the source system (a database, an API, a file, etc.)
- Transform — clean it, reshape it, join it, aggregate it — turn raw data into something useful
- Load — put the data into its destination (usually a data warehouse)
The letters are the same. The order is not. And that small difference in order changes a lot about how the pipeline works.
ETL: Extract, Transform, Load
In ETL, you transform the data before it reaches the warehouse.
flowchart LR
A[Source System] --> B[Extract]
B --> C[Transform<br/>separate processing engine]
C --> D[Load]
D --> E[(Warehouse)]
The transformation happens in a separate system — often a dedicated ETL tool or a processing cluster — sitting between the source and the destination. By the time data lands in the warehouse, it’s already clean, structured, and ready to query.
This was the standard approach for decades, especially when:
- Storage was expensive, so you didn’t want to load huge amounts of raw, messy data into your warehouse.
- Compute for transformations lived on separate servers, not inside the warehouse itself.
- Warehouses were relatively slow and not built to run heavy transformations themselves.
Tools historically associated with ETL: Informatica, Talend, SSIS.
ELT: Extract, Load, Transform
In ELT, you load the raw data first, and transform it after it’s already in the warehouse.
flowchart LR
A[Source System] --> B[Extract]
B --> C[Load]
C --> D[(Warehouse)]
D --> E[Transform<br/>inside the warehouse]
Here, the warehouse itself does the heavy lifting of transforming the data — using its own compute power to run the SQL (or similar) that cleans and reshapes it.
ELT became popular as cloud data warehouses got dramatically cheaper and more powerful. Storage is cheap now, so loading raw data isn’t wasteful. And modern warehouses like Snowflake, BigQuery, and Redshift are genuinely fast at running transformations at scale — so there’s no need for a separate transformation engine.
Tools commonly associated with ELT: dbt (which handles the “T” step, run inside the warehouse), Fivetran and Airbyte (which handle “EL”).
Why the order matters
It’s not just a technical detail — it changes how teams actually work.
With ETL:
- Transformation logic lives outside the warehouse, often in a specialized tool.
- The warehouse only ever sees clean, finished data.
- Changing a transformation usually means going back to the ETL tool and re-running the pipeline.
With ELT:
- Raw data lands in the warehouse first, untouched.
- You can always go back and re-transform it differently, because the original raw data is still there.
- Transformation logic is often just SQL, version-controlled and run inside the warehouse (this is exactly what a tool like dbt is built for).
- Analysts and analytics engineers, not just data engineers, can write and maintain transformations, since it’s SQL running in a tool they already know.
That last point is a big reason ELT has become so popular: it lowers the barrier for who can build and maintain transformations.
Is one “better”?
Not universally — it depends on the situation.
ETL still makes sense when:
- You’re dealing with sensitive data that must be cleaned or masked before it lands anywhere (e.g. removing personal data for compliance reasons).
- The destination system has limited compute and can’t handle heavy transformations itself.
ELT makes sense when:
- You’re using a modern cloud warehouse with strong compute power.
- You want to keep raw data around for flexibility — so you can reprocess it later without going back to the source.
- You want transformation logic to live in SQL, version-controlled, and readable by more people on the team.
In practice, most modern data stacks lean ELT, because cloud warehouses have made “load first, transform later” both cheap and fast.
A simple mental model
| ETL | ELT | |
|---|---|---|
| Transform happens | Before loading, in a separate engine | After loading, inside the warehouse |
| Raw data kept? | Usually not | Yes, raw data stays available |
| Common era | Traditional, on-prem warehouses | Modern, cloud warehouses |
| Common tools | Informatica, Talend, SSIS | Fivetran/Airbyte + dbt |
| Who can write transforms | Mostly data engineers | Data engineers and analytics engineers (SQL) |
The takeaway
ETL and ELT both move data from source systems into a warehouse — the only real difference is when the transformation happens. ETL cleans the data before it arrives; ELT loads it raw and cleans it afterward, using the warehouse’s own power. As warehouses got cheaper and faster, ELT became the more common approach — but understanding both, and why the shift happened, will help you make sense of almost any data pipeline you come across.