ETL vs. ELT

The traditional pattern: Extract, Transform, Load (ETL). Pull data from sources, transform in a separate process, load the cleaned data into the warehouse.

The modern pattern: Extract, Load, Transform (ELT). Pull raw data, load it as-is into the warehouse, transform inside the warehouse using SQL.

The shift is real and recent. ELT is the dominant paradigm in modern data stacks.

Why ETL was the default

Old data warehouses (Teradata, Oracle, on-prem) were:

Loading raw data and transforming inside was expensive. The natural pattern: clean and reduce data before loading; warehouse only sees the final shape.

Tools: Informatica, Talend, custom Python/Java jobs running outside the warehouse.

What changed

Modern cloud data warehouses (Snowflake, BigQuery, Redshift, Databricks) are:

Loading raw data is cheap. Transformation in SQL is fast. The warehouse can do what dedicated ETL tools used to do, but in SQL that analysts can read and write.

The natural pattern flipped: load raw; transform in warehouse.

ELT in practice

Sources → Ingestion (Fivetran, Airbyte, custom) → Raw warehouse layer → dbt → Analytics tables

The warehouse holds:

Each layer is SQL transforms over the previous. dbt is the dominant tool for managing these transforms. See DbtAndAnalyticsEngineering.

Pros of ELT

Simplicity

Most transformations are SQL. Analysts can read and modify them. No separate ETL skill required.

Reproducibility

Raw data preserved. Transformations re-run produce the same result. Bug found? Fix the SQL; re-run.

Discoverability

Data is in the warehouse already. Analysts can explore raw and transformed data freely.

Speed

Modern warehouses are fast. Transformations in SQL on Snowflake/BigQuery often beat external ETL.

Backfills are easier

Raw data is there; just re-run transforms. No need to re-extract from sources.

Pros of ETL (still)

Some transformations don't fit SQL

Complex JSON parsing, ML feature engineering, image processing. Sometimes the transform belongs in code, not SQL.

Privacy / compliance

Sometimes you can't load raw data. PII redaction must happen before warehouse.

Source system load

Heavy raw data load can stress source systems. Lightweight extracts may be necessary.

Cost at extreme scale

ELT in cloud warehouses is cheap until it isn't. At extreme scale, dedicated processing (Spark, Flink) can beat warehouse compute.

When ETL still wins

For most modern data stacks, ELT is right. ETL is for specific cases.

The "ELTL" hybrid

Some modern stacks do:

The transformations happen in the warehouse; the result is loaded to operational stores (search indexes, caches, etc.) for low-latency access.

This is functional ELT plus a "publish" step.

Tooling

Ingestion (the "EL" part)

Warehouse (the "T" target)

Transformation (the "T" engine)

Orchestration

Common failure patterns

Further Reading