mrkeyoor.com_
Wed 16 Sept 07:01 UTC
Dataevaluationupdated 16 Sept 2026

dbt review

dbt Core turns SQL select statements into ordered tables and views inside a data warehouse, with dependency tracking, documentation, and data tests around them. It solves the gap between writing a useful query once and maintaining a shared transformation project. The repository is now split between the Python v1 line and a Rust-based v2 beta, so choosing the branch matters.

+40stars / 7d
Verdict

Our dbt Core install took 23 seconds, used 36 MB, and built in 9 seconds, but the lab harness found no test target to run at commit 43aa6e8. It remains an easy recommendation for a SQL-first team that already has a warehouse and wants disciplined transformation work. New adopters should decide between Python v1 and the Rust v2 beta explicitly, then test their adapter, packages, hooks, and artifacts before switching an established project.

We ran it

Lab card: what happened when we ran dbtScreenshot of dbt (getdbt.com)
Install✓ · 23s33 packages · 36 MB
Build✓ · 9s
Testsn/ano test script
Known vulns0(pip-audit)
Repo3508 files~599,500 lines of source · 33.4 MB · 25 CI workflows

Answers from our run

Does dbt build from source?

Dependencies installed in 23 seconds (33 packages), and the build succeeded in 9 seconds. We cloned commit 43aa6e8 into a clean Debian container with 3 CPUs and no project-specific setup.

Does dbt have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does dbt have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use dbt?

Teams looking for an ingestion tool: the project starts with data already loaded into a warehouse and focuses on transformation.

What are the alternatives to dbt?

SQLMesh, Mage, Apache Hop. Our dbt Core install took 23 seconds, used 36 MB, and built in 9 seconds, but the lab harness found no test target to run at commit 43aa6e8.

Setup4/523-second install; warehouse and adapter setup remain
Docs4/5The branch split is clear, but setup continues in external docs
Community5/513,833 stars and active issue and pull request traffic
Maturity4/5Mature v1 foundation, with v2 still labeled beta

Who it’s for

Analytics engineers who want SQL transformations reviewed and versioned like application code.
Data teams whose raw data already lands in a supported warehouse.
Organizations that want an Apache-2.0 command-line foundation and can manage their own scheduling, credentials, and adapter.
Existing dbt v1 users evaluating the separate v2 engine with a controlled compatibility test.

Who it’s NOT for

Teams looking for an ingestion tool: the project starts with data already loaded into a warehouse and focuses on transformation.
Buyers who need v2 interfaces frozen today: the README labels v2 as beta and says behavior, APIs, and on-disk formats may change.
Windows on ARM deployments: the current support table marks that combination as unavailable.
Python contributors who expect the default branch to contain the familiar v1 engine: v1 work moved to 1.latest, while main is the Rust rewrite.
Projects that depend on run hooks and want to adopt the experimental v2 parser without a regression pass: issue 16310 reports start and end hooks being skipped while the command still exits successfully.

Setup reality

Our sandbox install at commit 43aa6e8 succeeded in 23 seconds, adding 33 Python packages and using 36 MB on disk. The build succeeded in 9 seconds. Our harness found no test script or target, so tests were skipped; pip-audit reported 0 known vulnerabilities.

A useful run still needs a warehouse, an adapter for that warehouse, credentials, and a project profile. Production also needs a scheduler or another way to invoke jobs. None of those services or secrets were available in the lab container.

That commit sat at the v1-to-v2 boundary. The current default branch is a Rust v2 beta, while Python v1 development lives on 1.latest. The README lists Linux and macOS on x86-64 and ARM, plus Windows on x86-64, but not Windows on ARM.

dbt turns warehouse SQL into a maintained dependency graph

dbt Core is for the part of a data pipeline that begins after data reaches a warehouse. You write select statements as models, declare how those models refer to one another, and let dbt create tables or views in dependency order. Tests and generated documentation sit beside the SQL. That gives an analytics team code review, repeatable builds, lineage, and named checks without asking every analyst to become an application developer.

The boundary is important. dbt does not fetch records from an operational database or move them into Snowflake, BigQuery, or another destination. Its own architecture diagram places extraction and loading before dbt starts. A team still needs an ingestion path, warehouse permissions, an adapter, and some way to schedule commands. If those pieces already exist, dbt gives the transformation layer a common language. If they do not, installing 33 packages solves only a small part of the job.

Python v1 and Rust v2 are now separate choices

The URL supplied for this review now redirects from dbt-labs/dbt-core to dbt-labs/dbt. Its default branch contains v2, a ground-up Rust rewrite that the README labels beta. Python v1 development moved to the 1.latest branch. This is more than a rename: contributors, package maintainers, and teams reading source need to know which engine they are evaluating before copying an install command or filing a compatibility report.

Our lab snapshot, commit 43aa6e8 from August 22, 2026, was classified by the harness as a Python project. The current repository describes v2 as a self-contained binary and warns that behavior, APIs, and disk formats may change before a stable release. Existing dbt users should treat migration as a compatibility project. Run the same models, macros, hooks, adapter operations, and artifact consumers through both paths, then compare the resulting warehouse objects rather than relying on the shared dbt name.

What happened when we ran it

Our sandbox installed commit 43aa6e8 in 23 seconds. It added 33 packages and occupied 36 MB on disk, then completed the build in 9 seconds. The checkout itself contained 3,508 files, roughly 599,500 lines of source, and 33.4 MB of material. Those figures describe the measured commit in a fresh Debian container with 3 CPUs and 8 GB of RAM, not the current Rust binary or a warehouse workload.

The harness found no test script or target, so it skipped tests. That is a gap in what this run proves, not a failed upstream test suite. The repository scan found 25 CI workflow files but no top-level tests directory and no Dockerfile. Pip-audit reported 0 known vulnerabilities among the installed Python packages. We confirmed that installation and compilation worked; we did not establish adapter behavior, SQL correctness, or runtime performance against a live warehouse.

The warehouse adapter decides whether setup is really easy

A local install is the short part. A real project needs a profile that points at a warehouse, credentials with suitable permissions, and the adapter matching that database. From there, models can build on one another and data tests can check declared expectations. Teams also have to choose where secrets live, how jobs are scheduled, which environments map to which schemas, and how failed runs are surfaced. dbt supplies the transformation framework rather than a complete managed data platform.

The v2 support table covers Linux and macOS on x86-64 and ARM. Windows is supported on x86-64, while Windows on ARM is marked unavailable. The open-source repository uses Apache 2.0, but the current README separately describes a dbt distribution with dbt-specific customizations under a product license. Procurement and platform teams should distinguish the source they can inspect from the distribution and hosted features they may choose to run.

The beta warning has practical consequences for existing projects

Issue 16310 gives the migration risk a concrete shape. Its reporter found that on-run-start and on-run-end hooks did not execute with the experimental v2 parser, even though the command reported success. The report includes a small reproduction and says the behavior affected both project and package hooks. One issue does not define the whole engine, but silent hook omission is exactly the sort of difference a production comparison must catch.

Current activity is high. GitHub showed a push on September 16, 2026, release v2.0.3 on the same UTC date, 13,833 stars, and 1,546 open issues and pull requests combined. That queue is not a count of defects, and the recent push matters more than the raw total when judging maintenance. It also shows why a buyer should inspect the adapter and feature area they use instead of treating repository popularity as compatibility evidence.

dbt is strongest when SQL ownership is the actual problem

Choose dbt Core when analysts already work in SQL, source data already reaches a warehouse, and the missing piece is a shared way to build dependable derived tables. The 23-second lab install makes a trial cheap. The model graph, data tests, and documentation address a real coordination problem once several people depend on the same transformations.

Choose SQLMesh when deployment plans and isolated data environments drive the decision. Choose Mage when one workspace must also handle Python and ingestion, or Apache Hop when a visual ETL canvas suits the operators better. For dbt itself, pick the v1 or v2 track on purpose. A familiar command name does not make a beta rewrite interchangeable with the Python engine already carrying your production models.

Alternatives

ProjectWhat it isPick it when
SQLMeshA SQL transformation framework built around plans, environments, and change impact.pick this instead when virtual data environments and plan-based deployment are central requirements.
MageA broader data pipeline system that mixes SQL, Python, notebooks, and orchestration.pick this instead when ingestion and Python processing belong in the same authoring tool as transformations.
Apache HopA visual data integration platform for building and running pipelines and workflows.pick this instead when a graphical ETL workflow matters more than a SQL-centered analytics project.

What people are saying

  1. [github-trending] dbt-labs/dbt-core

Sources

  1. dbt repository README
  2. dbt Python v1 branch
  3. dbt v2.0.3 release
  4. v2 parser hook issue 16310

More data reviews

GeoLibre · TradingView-API · os-taxonomy · Lean · bokeh · orm · the whole board →