# dbt

> SQL-first transformation workflow for analytics engineering

dbt is a transformation framework that compiles modular, version-controlled SQL models and runs them inside the warehouse, with testing, documentation, and lineage built in.

Website: https://www.getdbt.com

## Use it when

- SQL-first transformation with version control, tests, docs, and lineage is the goal; dbt is the category default with the ecosystem to match.
- Hiring matters; dbt skills are the most transferable in this capability.
- Broad engine support is needed: Snowflake, BigQuery, Databricks, Redshift, Postgres, Trino, and more through adapters.
- Packages should solve common warehouse patterns before you write them.

## Think twice when

- Rebuild cost is the pain: state:modified is file-based and over-rebuilds, where SQLMesh classifies each change and builds only what it affects.
- You want column-level lineage or a hosted semantic layer without paying; both sit largely on the paid platform.
- Models repeat the same shapes at scale; Coalesce's metadata-driven templates target exactly that.
- Per-seat plus per-model Cloud pricing grows with the project.

## How it runs

dbt Core is a free CLI: dbt run compiles Jinja-templated SQL into a dependency graph and executes it inside the target warehouse or engine, scheduled by cron, Airflow, or Dagster. The dbt platform adds a managed scheduler, IDE, CI runs, and APIs, billed per developer seat and per successful model built.

## Details

### General

| Attribute | Value |
| --- | --- |
| License | Open source (permissive) |
| SPDX identifier | Apache-2.0 |
| Deployment | Self-hosted, Managed |
| Workload | Batch |
| Operational complexity | Low |
| Pricing | Free, Subscription |
| Language | Rust, Python |
| Repository | https://github.com/dbt-labs/dbt-core |
| Documentation | https://docs.getdbt.com |
| Stars | 13.9k |

### Transformation

| Attribute | Value |
| --- | --- |
| Engines | Broad adapters: Snowflake, BigQuery, Databricks, Redshift, Postgres, Trino |
| Model language | SQL with Jinja; Python models on supported platforms |
| Model kinds | Table, view, incremental, ephemeral and materialized view, with snapshots as a separate resource type and custom materializations if you write them; Python models get table and incremental only |
| Change detection | state:modified diffs the current manifest against a saved one, file-based rather than logical, so a changed macro marks every dependent modified and added tests can false-positive |
| Environments | Targets separate dev from prod by schema; defer is the reuse mechanism, resolving ref() to production models rather than rebuilding them, opt-in per invocation and the basis of Slim CI |
| Testing | Generic data tests (unique, not_null, accepted_values, relationships) plus singular SQL tests that return failing rows, and unit tests that assert on model logic rather than data |
| Lineage | A model-level DAG in the generated docs; Fusion's SQL comprehension adds column-level lineage across projects |
| Semantic layer | MetricFlow is Apache-2.0 and runs from dbt Core 1.6 up; the hosted Semantic Layer that BI tools query is the paid platform |
| Scheduling | dbt run from cron, Airflow or any orchestrator; the dbt platform adds scheduled jobs, CI runs and API triggers |
| Billing unit | Per developer seat and per successful model built, $100 a seat each month on Starter with 15,000 models, and a free Developer tier of one seat and 3,000 |

## Capabilities

- [Transformation](https://matca.io/capabilities/transformation)

---

Source: https://matca.io/dbt
Last updated: 2026-08-31T11:40:47.641Z
