What Is dbt
dbt stands for data build tool. It is an open-source command-line tool that lets data analysts and data engineers write, run, and test SQL transformations inside a data warehouse. dbt does not move data. It only transforms data that already lives in your warehouse.
The Problem dbt Solves
Imagine your company collects raw sales data every day. That raw data sits in a table called raw_orders. Before your sales team can use it, someone must clean it, join it with customer data, and calculate totals. Before dbt, analysts wrote long SQL scripts in files with names like final_v3_USETHIS.sql. Nobody knew which file was correct. Changes were risky. Testing was manual.
dbt fixes this by treating SQL transformations like software code. You write SQL files called models. dbt compiles them, runs them in the correct order, and gives you a clean audit trail.
A Simple Analogy
Think of your raw data warehouse tables as raw ingredients in a kitchen. dbt is the recipe book and the cooking process combined. You define the recipe (SQL), and dbt cooks the final dish (transformed table) every time you run it.
RAW DATA (Ingredients)
|
v
[dbt Models = Recipes]
|
v
TRANSFORMED DATA (Finished Dishes)
|
v
Dashboard / Report
What dbt Actually Does
When you run dbt, it performs these actions in order:
Step 1 – Read your SQL files
dbt reads every .sql file inside your models/ folder.
Step 2 – Build a dependency graph
dbt figures out which model depends on which. If Model B uses the output of Model A, dbt runs Model A first automatically.
Step 3 – Compile SQL
dbt replaces special functions like ref() and source() with real table names so the warehouse can understand them.
Step 4 – Execute in the warehouse
dbt sends the compiled SQL to your data warehouse (BigQuery, Snowflake, Redshift, DuckDB, etc.) and creates tables or views.
Who Uses dbt
dbt users generally fall into two groups:
Analytics Engineers
These are people who sit between data engineering and data analysis. They clean and model data so that analysts can trust what they see in dashboards.
Data Engineers
These are people who build data pipelines. They use dbt to add the transformation layer on top of a pipeline that ingests raw data from APIs or databases.
dbt Core vs dbt Cloud
dbt comes in two flavors:
dbt Core
This is the free, open-source version you install on your computer or server. You run it from the command line using commands like dbt run and dbt test.
dbt Cloud
This is a paid web application built by dbt Labs. It adds a browser-based IDE, scheduled job runs, a documentation portal, and team collaboration features on top of dbt Core.
dbt Core dbt Cloud ----------- ----------- Free & open source Paid SaaS Command line only Browser IDE + CLI You manage infra Managed infra No scheduler built in Built-in scheduler
Warehouses dbt Supports
dbt connects to your warehouse using an adapter. Popular adapters exist for:
- Snowflake
- Google BigQuery
- Amazon Redshift
- Databricks
- PostgreSQL
- DuckDB (great for local learning)
- Microsoft Fabric / Azure Synapse
Key Terms to Know
Model
A .sql file that contains a SELECT statement. dbt turns this file into a table or view in your warehouse.
Project
A folder that contains all your dbt models, tests, seeds, and configuration files. It always contains a file named dbt_project.yml.
Run
The act of executing dbt run, which compiles and executes your models in the warehouse.
Test
A data quality check that dbt runs against your tables to ensure columns are not null, values are unique, or relationships between tables are intact.
Why dbt Became Popular
Before dbt, SQL transformations lived in dozens of scattered scripts. Nobody documented them. Changes broke things with no warning. dbt brought software engineering practices—version control, testing, documentation, and modular design—into the world of SQL analytics. Teams adopted it because it made their data work trustworthy and reproducible.
dbt now runs billions of models every month across thousands of companies. It became the standard tool for the analytics engineering discipline.
