dbt for analytics engineers: tested models in your warehouse

Model raw data into clean, documented tables with dbt Core: sources, refs, tests, unit tests, incremental models and snapshots

8 ratings 2,310 students Sample

Created by Tomas Herrera

  • Updated September 2026
  • English
  • Intermediate

What you will learn

  • Structure a dbt project into staging, intermediate and mart layers
  • Declare sources and build models with ref so dependencies are explicit
  • Add data tests and unit tests that catch broken logic before it ships
  • Build incremental models that stay correct when late data arrives
  • Track history with snapshots for slowly changing dimensions
  • Generate documentation and review lineage before changing a model

Course content

6 sections, 26 lessons, 4h 14m total

How dbt thinks 5 lessons · 48 min
  • Video: What dbt is and where it sits Preview 9 min
  • Article: Your first project: sources, models and ref Preview 13 min
  • Article: Layers and naming conventions 10 min
  • Article: Tests that protect your numbers 11 min
  • Quiz: Check your understanding 5 min
Sources, seeds and freshness 4 lessons · 38 min
  • Video: Source freshness checks 9 min
  • Video: Seeds for small reference data 8 min
  • Article: Deduplicating messy raw data 11 min
  • Video: Handling time zones and timestamps 10 min
Modelling for analysis 4 lessons · 42 min
  • Video: Facts and dimensions in practice 12 min
  • Article: Monthly recurring revenue as a model 13 min
  • Video: Ephemeral, view, table: picking materialisations 9 min
  • Video: Writing readable SQL with CTEs 8 min
Incremental models and snapshots 4 lessons · 43 min
  • Article: Incremental models from first principles 12 min
  • Video: Late arriving data and lookback windows 10 min
  • Video: The microbatch strategy 10 min
  • Article: Snapshots for slowly changing dimensions 11 min
Jinja, macros and packages 4 lessons · 36 min
  • Video: Jinja basics without the mess 9 min
  • Video: Writing your first macro 10 min
  • Article: Using dbt-utils and dbt-expectations 9 min
  • Video: Target aware behaviour 8 min
Running dbt as a team 5 lessons · 47 min
  • Video: Documentation people actually read 9 min
  • Article: Slim CI with state and defer 12 min
  • Video: Model contracts and versions 10 min
  • Video: Scheduling dbt in production 10 min
  • Quiz: Final check 6 min

Requirements

  • Solid SQL including joins and GROUP BY
  • Basic command line and Git usage
  • Python 3.10 or newer installed for dbt Core

Description

dbt turns the SQL your team already writes into a proper software project: version controlled models, dependencies resolved for you, tests that run on every change and documentation generated from the code. This course teaches dbt Core the way analytics engineering teams use it day to day.

The project

We start with raw tables from a small online subscription business: customers, plans, payments and events. By the end you will have a layered project with staging models, intermediate logic and marts that a BI tool can read, plus tests and docs that tell the next person what each table means.

  • Sources, refs and the DAG dbt builds from them
  • Generic data tests, singular tests and unit tests
  • Incremental models, including the microbatch strategy
  • Snapshots for slowly changing dimensions
  • Packages, macros and Jinja used with restraint

Tools and setup

Examples run on DuckDB through the dbt-duckdb adapter, so you can follow along on a laptop for free. Every concept transfers directly to Snowflake, BigQuery, Databricks, Redshift or PostgreSQL, and I point out adapter differences where they matter. We use dbt Core 1.9 or newer from the command line.

Who this course is for

  • Analysts who write SQL and want it versioned and tested
  • Data engineers who own warehouse models
  • Teams adopting dbt who want shared conventions from day one

Instructor

Tomas Herrera

Data engineer teaching Airflow, dbt and warehouse modelling with real, testable pipelines

  • 4.4 instructor rating
  • 15 reviews
  • 4,150 students
  • 2 courses
  • Sample

I build batch data pipelines for a living: ingestion jobs, orchestration with Apache Airflow, and warehouse models in dbt that analysts can trust on Monday morning.

My courses follow the same order I use at work. First we make a pipeline run, then we make it fail loudly, then we make it boring. Boring is the goal: idempotent tasks, clear ownership, tests that catch bad data before a dashboard does.

I keep lessons short and code heavy. Every course ships with a repository you can run on a laptop with Docker, and I update it when Airflow or dbt release changes that affect what you write.

View profile

Student reviews

4.4 8 ratings
5 star 50%
4 star 38%
3 star 13%
2 star 0%
1 star 0%
Ana R. Sep 26, 2026
Sample

Slim CI saved us money

State comparison and defer cut our CI runs from forty minutes to six. The explanation was step by step and easy to copy.

Hannah W. Sep 16, 2026
Sample

The grain lesson changed my habits

I now write the grain of every model before I write SQL. It caught two fan out bugs in our MRR model in the first week.

Ravi S. Aug 28, 2026
Sample

Unit tests explained properly

I had ignored dbt unit tests because the docs felt abstract. The worked example with failed payments made them obvious.

Olga M. Aug 3, 2026
Sample

Great on incremental models

The lookback window and microbatch lessons were the most useful part for our large events table. The Jinja section felt a little short.

Tunde B. Jun 27, 2026
Sample

Runs entirely on DuckDB

Being able to follow everything on my laptop without a warehouse account made it easy to practise in the evenings.

Clara D. May 3, 2026
Sample

Clear conventions for teams

We adopted the staging, intermediate and marts layout and the folder level configs straight from this course.

Mehmet K. Feb 10, 2026
Sample

Good, but I wanted more Snowflake

Content is accurate and clear. I would have liked more adapter specific notes for Snowflake, since that is what we use at work.

Joel T. Dec 2, 2025
Sample

Solid intermediate course

Not for total beginners, but if you know SQL well this is a very efficient way to learn dbt properly.

$54.99 Enroll now
SampleSample catalog: the instructors, courses, reviews and stats on this site are demo content.