Favicon of dbt

dbt

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.

LicenseOpen source (permissive)· Apache-2.0
DeploymentSelf-hostedManaged
PricingFreeSubscription
Operational complexityLow
WorkloadBatch
LanguageRust, Python

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

Compare

How dbt answers the questions Transformation turns on.

Transformation
How it works
Model languageSQL with Jinja; Python models on supported platforms
Model kindsTable, 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 detectionstate: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
TestingGeneric 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
LineageA model-level DAG in the generated docs; Fusion's SQL comprehension adds column-level lineage across projects
Semantic layerMetricFlow is Apache-2.0 and runs from dbt Core 1.6 up; the hosted Semantic Layer that BI tools query is the paid platform
Running it
EnvironmentsTargets 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
Schedulingdbt run from cron, Airflow or any orchestrator; the dbt platform adds scheduled jobs, CI runs and API triggers
Connections
EnginesBroad adapters: Snowflake, BigQuery, Databricks, Redshift, Postgres, Trino
Cost
Billing unitPer 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

Share:

Alternatives to dbt

Favicon

 

  
  
Favicon

 

  
  
Favicon

 

  
  

Used in architectures