
dbt
SQL select statements in git, built into warehouse tables in dependency order, with tests and docs alongside.
- What it is
- ETL & ELT pipelines
- Type
- Open source
- Made by
- Fivetran + dbt Labs
- License
- Apache 2.0 (dbt v1, and the source of dbt v2 built as
dbt-oss); the default dbt v2 binary adds proprietary features under the dbt product licence; the dbt platform is proprietary SaaS - Facts checked
- 6 October 2026
What it is
A dbt project is a folder of models, each a .sql file holding one select, plus YAML files with tests and descriptions. dbt runs wherever you start it: a laptop, a CI job or a scheduler. It renders the Jinja in each model, swaps {{ ref('stg_orders') }} for the real table name, and builds a dependency graph from those references. It then sends create table as, create view or merge statements to the warehouse through an adapter, in graph order, so the warehouse does all the work and the data never passes through dbt. Data tests are queries that return failing rows; dbt build runs models and tests together and skips everything downstream of a failed test. dbt docs generate writes a static site with the lineage graph.
There are two engines. dbt v1 is the original Python program (dbt-core plus one adapter package per warehouse), Apache 2.0 and still maintained. dbt v2, released on 14 September 2026, is a Rust rewrite that grew out of the Fusion engine and ships as one binary. Its source is Apache 2.0 and installs as dbt-oss; the default dbt distribution adds proprietary SQL comprehension (errors caught before the warehouse runs anything, editor autocomplete, dbt lint) and is free to use. The hosted dbt platform, formerly dbt Cloud, adds scheduling, CI, a browser IDE and a catalog: Developer is free for one seat and 3,000 successful model builds a month, Starter is $100 per seat per month with five developer seats and 15,000 builds, and Enterprise is priced by quote (checked 6 October 2026). dbt Labs merged with Fivetran in June 2026; dbt continues as its own brand.
Why teams pick it
- Plain SQL plus Jinja: anyone who writes
selectstatements can build models, andref()works out the build order - Software habits for analytics: models live in git, run in CI and carry tests and descriptions next to the code
- Runs on the warehouse you already have, through adapters for Snowflake, BigQuery, Databricks, Redshift, DuckDB and, on v1, Postgres and many community adapters
- Widely supported: Dagster, Fabric Data Factory and Fivetran all run dbt projects
- Open-source core under Apache 2.0, and v2 installs as a single binary with no Python environment to manage
Watch out for
- Only the T: dbt doesn’t extract or load data, so you still need a loader (Fivetran, Airbyte, CDC) and usually an orchestrator
- A version in transition: v2 is stricter at parse time and supports fewer warehouses so far (BigQuery, Databricks, Redshift, Snowflake and DuckDB GA; Spark beta; ClickHouse private beta); Postgres stays on v1
- Layered licensing: the source is Apache 2.0, but the default v2 binary includes proprietary code, and products that embed it must let users sign in to the dbt platform
- Every run is warehouse compute: full rebuilds of big models add up, which is why incremental models exist and why dbt sells dbt State ($0.094 per daily active target table) to skip unchanged ones
Alternatives
What all etl & elt pipelines have in common →
DagsterOpen sourceA Python data orchestrator built around assets: you declare the tables, files and models that should exist, and Dagster works out what to run.
EstuaryCommercialA managed data-movement platform that captures changes from databases and SaaS sources into collections kept as JSON files in your own bucket, then keeps warehouses and other systems in sync, in real time or on a schedule.
FivetranCommercialManaged connectors that copy data from SaaS apps, databases and files into your warehouse or lake, billed by the rows that change each month.
MeltanoOpen sourceA command-line ELT tool that runs Singer taps and targets from a `meltano.yml` project kept in git.
OLakeOpen sourceAn open-source tool in Go that copies databases, Kafka topics and S3 files into Apache Iceberg tables (or plain Parquet), with full loads, incremental syncs and CDC, and no Kafka, Debezium, Spark or Flink in between.How it fits with other technologies
What dbt uses
An incremental model, its tests, and the command that builds both · sql
-- models/marts/fct_daily_revenue.sql
{{ config(materialized='incremental', unique_key='order_date') }}
select
cast(o.created_at as date) as order_date,
count(*) as orders,
sum(p.amount) as revenue
from {{ ref('stg_orders') }} as o
join {{ ref('stg_payments') }} as p on p.order_id = o.order_id
where p.status = 'succeeded'
{% if is_incremental() %}
-- later runs only redo days from the newest one already built
and cast(o.created_at as date) >= (select max(order_date) from {{ this }})
{% endif %}
group by 1
-- models/marts/schema.yml
-- models:
-- - name: fct_daily_revenue
-- columns:
-- - name: order_date
-- data_tests: [unique, not_null]
--
-- dbt build --select +fct_daily_revenue # upstream models, this one, then its testsdbt v1, dbt v2, dbt OSS and the dbt platform#
The same project files work across all four. What differs is the engine, the licence and the extras.
| dbt v1 | dbt v2 (`dbt`) | dbt OSS (`dbt-oss`) | dbt platform | |
|---|---|---|---|---|
| Engine | Python | Rust, one binary | Rust, same source as v2 | Runs v1 or v2 for you |
| Licence | Apache 2.0 | dbt product licence (free; includes proprietary code) | Apache 2.0 | Proprietary SaaS |
| Install | pip install dbt-core dbt-postgres | pip install dbt, Homebrew, curl script | pip install dbt-oss | Nothing local |
| SQL comprehension, autocomplete, `dbt lint` | No | Yes (some features after a free sign-in) | No | Yes |
| Warehouses | Dozens of trusted and community adapters | BigQuery, Databricks, Redshift, Snowflake, DuckDB; Spark and ClickHouse in beta | Same engine as v2 | Depends on the engine chosen |
| Price | Free | Free | Free | Developer free (1 seat); Starter $100 per seat per month; Enterprise by quote |
- dbt v1 keeps receiving critical support through dbt Core 1.13, and dbt Labs expects several (3 to 5) years of maintenance.
- Prices from getdbt.com/pricing, checked 6 October 2026.
Other ways to do the T#
SQLMesh
Apache 2.0A transformation framework that is compatible with dbt projects, with a plan and apply workflow and virtual development environments. Built by Tobiko Data, which Fivetran bought in 2025; now a Linux Foundation project.
Dataform
Google CloudSQLX files with ref() and assertions, compiled and run inside BigQuery. A managed service tied to BigQuery.
Bruin
Apache 2.0One Go binary for ingestion, SQL and Python transforms and quality checks, so a small team can skip a separate loader.
dbt jobs in Fabric
Microsoft FabricFabric Data Factory can build, test and deploy dbt models on a Fabric data warehouse without running dbt yourself.
See it in a real stack
No architecture uses dbt yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2016–2026
In 2015 and 2016 a team at RJMetrics wrote down a viewpoint: analytics teams had “a workflow problem”, and the practices software engineers use, such as version control, testing and separate environments, should apply to analytics code. Cloud warehouses such as Redshift could now hold raw data and do the heavy lifting, but the SQL that turned it into reports lived in scattered scripts and BI tools.
Tristan Handy started Fishtown Analytics in Philadelphia in 2016 as a consulting business. dbt’s first commit landed that March, and Handy and co-founder Drew Banin released it as a productivity tool for the consulting work. It was narrow on purpose: “dbt is the T in ELT”, Handy wrote in 2017. It doesn’t move data; it turns select statements into tables inside the warehouse, in the right order. A community grew around its Slack channel, and in June 2021 the company renamed itself dbt Labs while raising $150 million. dbt 1.0 followed that December.
In January 2025 dbt Labs bought SDF Labs, whose Rust SQL compiler became the Fusion engine, announced that May under the source-available Elastic License. After the merger with Fivetran closed on 1 June 2026, the Rust engine became dbt v2.0 under Apache 2.0 in September 2026.
Why it’s built this way
- Models are only
selectstatements - Analysts already knew SQL. dbt generates the
create,insertandmergestatements for each warehouse from the model’s materialization, so the model holds only the logic. ref()instead of hard-coded table names- References give dbt the dependency graph, so it can build in order and draw lineage. The same code also points at a developer’s schema or production depending on the environment.
- Transform inside the warehouse
- Cloud warehouses were powerful enough to do the work, so dbt stayed out of extraction and loading and let the warehouse compute everything.
- Open source, controlled by its users
- Handy wrote that “critical analytics infrastructure should be controlled by its users as open source software”. The core has stayed Apache 2.0; the 2025 Fusion engine’s Elastic License was dropped when its code became dbt v2.
Timeline
- 2016
First dbt commit in March; Tristan Handy starts Fishtown Analytics
- 2017
Handy describes dbt as “the T in ELT”
- 2021
Renamed dbt Labs with a $150M round in June; dbt 1.0 in December
- 2025
Buys SDF Labs, launches the Rust Fusion engine, agrees to merge with Fivetran
- 2026
Merger completes in June; Rust dbt v2.0 ships under Apache 2.0 in September
- dbt docs: The dbt viewpoint (RJMetrics, 2015–2016)
- dbt Labs blog: What, exactly, is dbt? (Tristan Handy, October 2017)
- dbt Labs blog: Of the community, by the community, for the community (renamed dbt Labs, $150M, June 2021)
- dbt-labs/dbt on GitHub: initial commit (March 2016)
- Drew Banin on GitHub (co-founder, dbt Labs)
- dbt-labs/dbt on GitHub: release v1.0.0 (December 2021)
- dbt Labs blog: dbt Labs acquires SDF Labs (January 2025)
- dbt Labs blog: New code, new license, the dbt Fusion engine (Tristan Handy, May 2025)
- dbt Labs blog: dbt Labs and Fivetran merge (Tristan Handy, October 2025)
- dbt Labs blog: Fivetran and dbt are one company now (Tristan Handy, June 2026)
- dbt-labs/dbt on GitHub: release v2.0.0 (September 2026)
Sources23 · facts checked 6 October 2026
- dbt docs: Introduction (v2, v1 and OSS; the dbt platform)
- dbt-labs/dbt README (v2 source under Apache 2.0, dbt product licence for the distribution)
- dbt Labs: Licenses FAQ (product licence, dbt OSS, ELv2 removed, v1 support)
- dbt Labs: dbt product license agreement
- dbt docs: Install dbt (v2)
- dbt docs: Install dbt OSS (what it leaves out)
- dbt docs: Supported data platforms (v2 adapter lifecycle)
- dbt docs: Connect Postgres to dbt v1
- dbt docs: Incremental models
- dbt docs: Data tests
- dbt docs: `dbt build` (skips downstream of a failed test)
- dbt docs: About documentation (`dbt docs generate`, lineage)
- dbt Labs: Pricing (plans, dbt State per DATT)
- dbt Labs blog: dbt Core v2.0 and the future (Daniel Poppy, July 2026)
- Fivetran press release: Fivetran + dbt Labs complete merger (June 2026; brands continue)
- Fivetran press release: Fivetran and dbt Labs unite (all-stock merger, October 2025)
- Fivetran press release: Fivetran acquires Tobiko Data (September 2025)
- SQLMesh on GitHub (Linux Foundation project)
- Google Cloud docs: Dataform overview
- Bruin on GitHub
- Microsoft Learn: What is Data Factory in Microsoft Fabric? (dbt jobs)
- Dagster docs (dbt integration)
- Fivetran press release: Fivetran Transformations for dbt Core (January 2022)