The transformation layer of the modern data stack
dbt (data build tool) — currently 1.9 as of April 2026 — is how the modern data team writes the transformation half of ELT. Instead of orchestrators running Python that runs SQL, dbt is a tool dedicated to managing SQL transformations: as version-controlled code, with tests, docs, lineage, and a deployment story.
What dbt manages
- Models — SQL
SELECTstatements that dbt materializes as tables or views. - Sources — declared raw upstream tables, with freshness checks.
- Tests — assertions about model outputs (uniqueness, non-null, accepted values, custom).
- Docs — auto-generated lineage graph + documentation site.
- Snapshots — the dbt name for SCD Type 2 history tables.
- Macros — Jinja-templated reusable SQL.
Why everyone is on dbt
Pre-dbt, the transformation layer was either ad-hoc SQL run by a scheduler, or buried inside an orchestrator's task. Either way, the SQL itself wasn't a first-class artifact — it didn't have tests, didn't have docs, didn't have version control discipline. dbt made the SQL the artifact, and once that happened, every other practice (review, test, lineage) followed naturally.