The core idea
dbt™ lets you transform data inside your warehouse using SQL and version-controlled code. Instead of fragile scripts or point-and-click pipelines, your transformations live in a git repository as a dbt™ project: reviewable, testable, and repeatable. You write SQLSELECT statements; dbt™ handles turning them into tables and views, running them in the right order, and testing the results.
The building blocks
- Sources: declarations of the raw tables your warehouse already contains, so your project knows where data comes from.
- Models: SQL files that transform data. Each model becomes a table or view in your warehouse. Models reference each other, and dbt™ works out the execution order automatically.
- Tests: assertions about your data, like “this column is never null” or “these values are unique”. They catch quality issues before your stakeholders do.
- Documentation: descriptions of models and columns that live next to the code and power the Catalog.
A typical flow
- Declare your raw tables as sources.
- Build staging models that clean them up.
- Build marts models that answer business questions.
- Add tests and documentation along the way.
- Run the whole thing on a schedule in production.
Where to go next
dbt™ fundamentals course
The full learning path: project structure, materializations, testing, and the CLI.
Set up a dbt™ project
Get a project running in the Code IDE.