ETL vs ELT: differences and how to do ELT in practice
João Barros
05 de September de 2023
2 min read
ETL and ELT both move data into an analytical destination, but they swap the order of two steps. That difference has a real impact on the performance and cost of your pipelines.
Prerequisites
- An understanding of the ETL pattern (Extract, Transform, Load).
- Access to a modern data warehouse (Snowflake, BigQuery, Fabric, Synapse).
- Knowledge of SQL.
Step 1: Understand the difference
In ETL you transform the data before loading it. In ELT you load the raw data first and transform it inside the data warehouse, using its compute power.

Step 2: Load raw data (Load)
Bring the source data into a staging area without transforming it:
COPY INTO staging.vendas
FROM 'origem/vendas.csv';
Step 3: Transform with SQL (Transform)
Now you transform inside the warehouse, taking advantage of its scale:
CREATE TABLE dw.vendas_limpo AS
SELECT
CAST(data AS DATE) AS data,
UPPER(TRIM(cliente)) AS cliente,
valor
FROM staging.vendas
WHERE valor > 0;
Step 4: When to choose each one
- ELT — cloud data warehouses with plenty of compute power and large volumes.
- ETL — when you must transform first due to compliance rules or destinations with little capacity.
Verify the result
Confirm the final table has the correct types and that the totals match the source.
Conclusion
ELT takes advantage of the power of modern warehouses and simplifies the pipeline. Would your current data benefit more from transforming before or after loading?