| Aspect | dbt Core 1.x | dbt v2 (Fusion) | SQLMesh |
|---|---|---|---|
| Licence | Apache 2.0 | Apache 2.0 core, proprietary distribution | Apache 2.0 |
| Implementation | Python, Jinja 15,439 over text | Rust, parses SQL | Python, parses SQL (SQLGlot) |
| Engines | PostgreSQL 1,289 , DuckDB 61,228 , many more | Seven; no PostgreSQL yet | DuckDB, PostgreSQL, many more |
| State | Artifacts per run (JSON) | Artifacts per run (Parquet 129 ) | State store of versions and intervals |
| Column lineage | Not in Core | Yes | Yes |
| Dev environments | Schemas, --defer, clones | As v1 | Virtual, by views |
| Ecosystem | Largest: packages, jobs, Cosmos | Growing; v1 packages need updates | Smaller; loads dbt projects |
Choose dbt Core when you need the widest adapter and package support, PostgreSQL included, or tools such as Astronomer 149,584 Cosmos that build on its artifacts; BookNest's pipeline in Orchestration and Pipelines does. Try dbt v2 on supported engines for its speed and SQL checking, after removing every v1 deprecation warning. Choose SQLMesh when environments and deployments cost real money: virtual environments and interval tracking pay off on large incremental models in cloud warehouses. All three run SQL you can read, so the modeling skills of Dimensional Modeling and Slowly Changing Dimensions carry over unchanged.