DEV Community

Cover image for What is dbt and Why is it in Every Data Engineering Job Listing?
Neha Christina
Neha Christina

Posted on

What is dbt and Why is it in Every Data Engineering Job Listing?

If you've been in data for more than five minutes recently, you've heard of dbt.

It shows up in job listings constantly. Data engineers rave about it. But nobody ever explains what it actually does in plain English.

This post fixes that.


What is dbt?

dbt stands for data build tool. It transforms your raw data into clean, analysis-ready tables — inside your data warehouse.

Here's the analogy that makes it click:

Your data warehouse (Snowflake, BigQuery, Redshift) is the kitchen. Raw data is the ingredients. dbt is the recipe book — it tells the kitchen exactly how to transform those raw ingredients into clean, ready-to-eat tables.

Three things make dbt different from just writing SQL yourself:

You write SQL — dbt handles the rest. No new language to learn. If you know SELECT, you can write dbt models.

Built-in testing. Data quality checks that run automatically. Bad data gets caught before it reaches dashboards.

Auto-generated documentation. dbt builds a full documentation site from your code and YAML descriptions, so your whole team knows what every table means.


The Problem dbt Solves

Before dbt, data teams had a messy set of problems.

SQL everywhere with no structure. Analysts copy-pasted the same transformation logic into 10 different dashboards. When the logic changed, you had to update it in 10 places.

No way to test your data. You only found out your data was wrong when a stakeholder spotted something odd in a report.

Zero documentation. Nobody knew what the revenue column actually meant or where it came from. Institutional knowledge lived in people's heads.

No version control. SQL lived inside BI tools, not in Git. Changes weren't tracked. You couldn't review them, roll them back, or collaborate on them properly.

dbt was built specifically to solve all four of these problems.


How dbt Works

A dbt model is just a .sql file. You write a SELECT statement, save it, and dbt turns it into a table or view in your warehouse.

-- models/customers.sql
SELECT
  customer_id,
  COUNT(orders.id) AS total_orders
FROM {{ ref('raw_customers') }}
LEFT JOIN {{ ref('raw_orders') }} USING (customer_id)
GROUP BY 1
Enter fullscreen mode Exit fullscreen mode

The {{ ref() }} syntax is how dbt knows which models depend on each other. It builds a dependency graph automatically — so if raw_customers needs to be built before customers, dbt figures that out without you having to specify it.

Then you just run:

dbt run    # builds all your models
dbt test   # runs all your data tests
Enter fullscreen mode Exit fullscreen mode

That's it. dbt compiles your SQL, runs it against your warehouse, and creates the tables.


5 dbt Terms You'll Hear Everywhere

Models — SQL files that define a transformation. Each one becomes a table or view in your warehouse.

Sources — Your raw tables, declared in YAML so dbt knows where the data comes from and can test it.

Tests — Checks like not_null, unique, accepted_values — run automatically with dbt test.

Docs — An auto-generated documentation site built from your models and YAML descriptions. Searchable, linkable, always up to date.

Lineage graph — A visual map showing how data flows through all your models. dbt builds this automatically from your ref() calls.


dbt Core vs dbt Cloud

There are two ways to use dbt:

dbt Core is free and open source. You run it from your terminal or CI/CD pipeline (GitLab, GitHub Actions, etc.). You get full control and all the core features. You manage the infrastructure yourself.

dbt Cloud is the managed platform from the company behind dbt. It adds a browser-based IDE, scheduling, CI/CD, and a polished UI. There's a free tier for individuals, with paid plans for teams.

For most engineers starting out, dbt Core is the right place to begin.


Should You Learn dbt?

Yes. Here's why:

It's in thousands of job listings for data engineer, analytics engineer, and data analyst roles right now.

If you know SQL, you already know 80% of dbt. The learning curve is much lower than people expect.

It makes your SQL reviewable, testable, and version controlled — exactly how software engineers treat their code.

It's used by Airbnb, GitLab, JetBlue, and thousands of data teams worldwide.

And dbt Core is completely free. You can start today.


How to Get Started

Install dbt Core:

pip install dbt-snowflake   # or dbt-bigquery, dbt-redshift
Enter fullscreen mode Exit fullscreen mode

Then follow the official quickstart at docs.getdbt.com — it's one of the best pieces of technical documentation out there.


Does your team use dbt? Drop a comment below 👇

Follow me on Instagram at https://www.instagram.com/techqueen.codes for visual SQL, Python and Snowflake tips every week 🔥

Top comments (0)