Contents

Architecture & System Design › Events & Integration · also in Transformation & Analytics SQL

ETL / ELT

Extracting, transforming and loading data between systems.

Also known as: ELT, extract transform load, ETL pipeline, data pipeline, extract load transform

ETL stands for Extract, Transform, Load: the standard way to move data from the systems that create it (databases, APIs, files) into a place where it can be analyzed, usually a data warehouse.

  1. Extract: read data from the source.
  2. Transform: clean and reshape it: fix types, remove duplicates, join sources, compute metrics.
  3. Load: write it to the destination.
App database ─┐
SaaS APIs  ───┼─► extract ─► transform ─► load ─► warehouse ─► dashboards, reports
CSV files  ───┘

ETL vs ELT

In ELT, you load the raw data first and transform it inside the warehouse, mostly with SQL.

ETLELT
Transform happensBefore loading, on a separate processing systemAfter loading, in the warehouse
Raw data kept?Often notYes, so you can re-transform later
Typical todayLegacy and special casesCommon with modern cloud warehouses

ELT became popular because storage is cheap, warehouses are powerful enough to transform large data themselves, and keeping the raw data means you can fix your logic and rerun it (backfill). Tools you’ll hear about include orchestrators such as Airflow, transformation tools such as dbt, and managed connectors. The tool names change; the ideas don’t.

What makes a pipeline good

  • Idempotent: rerunning it gives the same result, never duplicates (upsert, replacing whole partitions).
  • Incremental: load only what’s new or changed, tracked with a timestamp or an ID “watermark”, instead of copying everything every time.
  • Observable: row counts, run times and freshness are monitored, and failures alert someone.
  • Validated: check the data before trusting it: uniqueness, nulls, ranges, referential integrity (data profiling).
  • Handles schema changes: sources add and rename columns without warning.
  • Documented lineage: you can tell where a number came from.

Pipelines can run on schedules (batch) or continuously (batch vs stream). Garbage in a dashboard usually comes from a small unnoticed problem upstream. Checking data at each stage pays for itself.