dbt for Data Analytics & Engineering

My full course to help you

build production data pipelines with dbt

All video lessons are free on YouTube
Supporter Access unlocks structure, guided practice, and community

Unlock Full Access
Video Poster Image

Pricing

Course Outline

Course Timeline Accordion
0️⃣ Course Intro
⏱️ 19 mins📚 3 Lessons
▾
Course Intro
⏱️ 7 mins📦 3 concepts
▾
Welcome
⏱️ 3 mins
What You'll Build
⏱️ 2 mins
Support & Help
⏱️ 2 mins
What is dbt
⏱️ 7 mins📦 4 concepts
▾
The Problem
⏱️ 2 mins
How dbt Works
⏱️ 2 mins
How dbt Runs
⏱️ 2 mins
The dbt Family
⏱️ 1 min
Data & Project Intro
⏱️ 5 mins📦 3 concepts
▾
Project Overview
⏱️ 2 mins
The Dataset
⏱️ 2 mins
Types of Data
⏱️ 1 min
1️⃣ dbt Basics
⏱️ 2 hrs 36 mins📚 8 Lessons
▾
Tool Setup
⏱️ 18 mins📦 6 concepts
▾
VS Code install
⏱️ 3 mins
Terminal setup
⏱️ 3 mins
Git install
⏱️ 3 mins
What is an environment
⏱️ 3 mins
uv install
⏱️ 3 mins
DuckDB CLI install
⏱️ 3 mins
dbt Setup
⏱️ 41 mins📦 8 concepts
▾
Setup Project
⏱️ 6 mins
Project Anatomy
⏱️ 5 mins
Profiles YAML
⏱️ 5 mins
Inspection Commands
⏱️ 5 mins
Execution Commands
⏱️ 5 mins
Compile & Clean Commands
⏱️ 5 mins
dbt show
⏱️ 5 mins
Teardown
⏱️ 5 mins
Models
⏱️ 17 mins📦 4 concepts
▾
Get the data
⏱️ 5 mins
First model
⏱️ 4 mins
DuckDB UI
⏱️ 4 mins
First commit
⏱️ 4 mins
Dependencies & Jinja
⏱️ 21 mins📦 3 concepts
▾
Hardcoding & ref()
⏱️ 7 mins
Jinja intro
⏱️ 7 mins
dbt --select
⏱️ 7 mins
Properties
⏱️ 14 mins📦 2 concepts
▾
Sources
⏱️ 7 mins
Models
⏱️ 7 mins
Docs & the DAG
⏱️ 20 mins📦 4 concepts
▾
dbt docs
⏱️ 5 mins
The DAG
⏱️ 5 mins
Multiple ref()
⏱️ 5 mins
dbt Extension
⏱️ 5 mins
Materializations
⏱️ 12 mins📦 4 concepts
▾
View vs Table
⏱️ 3 mins
Model config()
⏱️ 3 mins
Project Defaults
⏱️ 3 mins
Materialization Options
⏱️ 3 mins
Tests - pt 1
⏱️ 13 mins📦 5 concepts
▾
Why Tests
⏱️ 3 mins
Generic Test - not_null
⏱️ 3 mins
dbt build
⏱️ 3 mins
Types of Tests
⏱️ 2 mins
Generic Test - unique
⏱️ 2 mins
🚀 Ship & Automate — Project 1
⏱️ 31 mins📚 2 Lessons
▾
Ship & Automate
⏱️ 17 mins📦 5 concepts
▾
Project Goals
⏱️ 4 mins
Push to GitHub
⏱️ 4 mins
Prod Target
⏱️ 3 mins
GitHub Actions
⏱️ 3 mins
Query It Live
⏱️ 3 mins
Showcase
⏱️ 14 mins📦 3 concepts
▾
Draft the README
⏱️ 5 mins
Docs & Pages
⏱️ 5 mins
Share on LinkedIn
⏱️ 4 mins
2️⃣ Advanced dbt
⏱️ 4 hrs 32 mins📚 12 Lessons
▾
To the Cloud
⏱️ 16 mins📦 6 concepts
▾
Advanced Chapter Topics
⏱️ 3 mins
Project Kickoff
⏱️ 3 mins
Databricks Signup
⏱️ 3 mins
Databricks Tour
⏱️ 3 mins
Ingest Data
⏱️ 2 mins
dev & prod Catalogs
⏱️ 2 mins
Local Setup
⏱️ 20 mins📦 6 concepts
▾
Setup Repo
⏱️ 4 mins
Databricks Profile
⏱️ 4 mins
Create Project
⏱️ 3 mins
Test the Setup
⏱️ 3 mins
SQLTools (Optional)
⏱️ 3 mins
Commit the Setup
⏱️ 3 mins
Data Modeling
⏱️ 28 mins📦 5 concepts
▾
The Three Layers
⏱️ 6 mins
Sources
⏱️ 6 mins
Jobs Model
⏱️ 6 mins
Skills Model
⏱️ 5 mins
Properties YAML
⏱️ 5 mins
Jinja Pt.2
⏱️ 28 mins📦 5 concepts
▾
Analyses Folder
⏱️ 6 mins
Loops
⏱️ 6 mins
Filters
⏱️ 6 mins
Conditionals
⏱️ 5 mins
Clean Benefits Column
⏱️ 5 mins
Macros Pt.1
⏱️ 23 mins📦 4 concepts
▾
Macros Intro
⏱️ 6 mins
Custom Macros
⏱️ 6 mins
Install a Package
⏱️ 6 mins
Override Built-in Macros
⏱️ 5 mins
Macros Pt.2
⏱️ 18 mins📦 2 concepts
▾
Salary Cleanup w/ SQL
⏱️ 9 mins
Macro - parse_salary()
⏱️ 9 mins
The Star Schema
⏱️ 23 mins📦 6 concepts
▾
What We're Building
⏱️ 4 mins
Intermediate Model
⏱️ 4 mins
Fact Table
⏱️ 4 mins
Seeds
⏱️ 4 mins
Dimension Tables
⏱️ 4 mins
Bridge Table
⏱️ 3 mins
Analyses
⏱️ 13 mins📦 3 concepts
▾
Analyses vs Models
⏱️ 5 mins
In-Demand Skills
⏱️ 4 mins
Highest-Paying Skills (BONUS)
⏱️ 4 mins
Tests Pt.2
⏱️ 26 mins📦 4 concepts
▾
Tests Refresher
⏱️ 7 mins
Generic Tests pt.2
⏱️ 7 mins
Custom Generic Tests
⏱️ 6 mins
Test-Driven Cleaning
⏱️ 6 mins
Tests Pt.3
⏱️ 16 mins📦 3 concepts
▾
Tests Refresher
⏱️ 6 mins
Singular Tests
⏱️ 5 mins
Unit Tests
⏱️ 5 mins
Snapshots
⏱️ 36 mins📦 3 concepts
▾
Slowly Changing Dimensions
⏱️ 12 mins
Walkthrough Manual “Snapshot”
⏱️ 12 mins
Build the Snapshot
⏱️ 12 mins
Incremental Models
⏱️ 25 mins📦 3 concepts
▾
Incremental Intro
⏱️ 9 mins
Incremental Build
⏱️ 8 mins
Full Refresh
⏱️ 8 mins
🏗️ Ship & Orchestrate — Project 2
⏱️ 26 mins📚 2 Lessons
▾
Ship & Orchestrate
⏱️ 14 mins📦 3 concepts
▾
Project 2 Intro
⏱️ 5 mins
Push to GitHub
⏱️ 5 mins
Databricks Job
⏱️ 4 mins
Showcase
⏱️ 12 mins📦 4 concepts
▾
Draft the README
⏱️ 3 mins
Docs & Pages
⏱️ 3 mins
Share on LinkedIn
⏱️ 3 mins
What to Learn Next
⏱️ 3 mins

Course Resources

💽 Course Dataset — Raw Job Postings

This is the primary dataset used throughout the entire course. It contains a year of real-world data job postings (July 2025 to June 2026) scraped by my datanerd.tech pipeline, delivered as raw parquet files that you transform with dbt.

🔗 Step 1 — Grab the download script

From your project root, run this in your terminal (we do this together in Lesson 1.03):

Terminal
mkdir scripts
curl -sL -o scripts/download_data.py https://lukeb.co/dbt-data

💻 Step 2 — Download the data

Run the script once and 13 parquet files (~81MB) land in data/raw/:

Terminal
python scripts/download_data.py

Prefer to browse the files? Dataset release on GitHub 👉 https://github.com/lukebarousse/dbt_Analytics_Engineering_Course/releases/tag/dataset-v1

 

📊 Project 1 — Local dbt Pipeline


Build a full dbt pipeline on your laptop with DuckDB as the warehouse: raw parquet files in, one staging view and three mart tables out. Then push it to GitHub, where GitHub Actions rebuilds and tests it on a schedule and publishes the warehouse as a file anyone can query.

🔗 Project #1 Answer Key

👉 https://github.com/lukebarousse/dbt_Analytics_Engineering_Course/tree/main/project_1

 

🏗️ Project 2 — Production Cloud Pipeline


Build the pipeline again in the cloud on Databricks: models split into staging, intermediate, and marts layers ending in a star schema, snapshots that track history, and incremental models that only process new rows. A nightly Databricks job loads the raw data and builds prod with nobody at the keyboard.

🔗 Project #2 Answer Key

👉 https://github.com/lukebarousse/dbt_Analytics_Engineering_Course/tree/main/project_2

Supporter Resources

📝 Practice Problems

🧩 100+ Interview-Level Problems: Learn dbt faster with meticulously designed exercises spanning a range from easy to challenging
🔍 Detailed Solutions and Results: Every problem is accompanied by a comprehensive solution and your expected results

 

📺  Structured Video Lessons

 
🚢 Navigate with Ease: Jump instantly to any lesson or specific topic within the course – no more wasting time scrubbing through hours of video to find what you need
 
🧠 Focused Learning: Master concepts more effectively with dedicated, bite-sized videos for each distinct lesson, allowing for better concentration and easier review

 

 

🗒️ Lesson Notes & Cheat Sheets

📖 Structured Lesson Notes: Step-by-step walkthroughs for every topic, helping you follow along with each lesson and understand why models, tests, and pipelines are built the way they are
📋 Practical Cheat Sheets: Quick-reference guides for core dbt commands, Jinja and macros, testing, and data modeling concepts you’ll reuse across projects

 

✨ Certificate of Completion


🎖️ Certificate of Completion: Receive a certificate to validate your new skills and enhance your LinkedIn profile

🧑‍💻 Showcase Experience: Share how you used real-world data to help solve a problem for data professionals

 

Unlock Full Access

About the Instructor

Luke Barousse - Course Instructor

🌎 Real-world Experience with dbt
Builds data pipelines with tools like dbt, from a Global Fortune 500 company to MrBeast's team, and today for datanerd.tech, the job postings pipeline behind this course's dataset.
💡🤖 Sharing Knowledge about Data & AI
Guides a community of +600,000 data nerds in harnessing analytical tools to revolutionize their professional workflows.

🎓 Trusted Course Developer
Imparted wisdom to +30,000 learners on DataCamp in leveraging analytical tools to elevate their career efficiency.

100% Satisfaction Guarantee or Your Money Back

 

⏱️ If you don’t feel the course problems and notes help you learn this tool as it has for countless others, I’ll refund your money!

📫 Email me within 30 days of purchasing the course on why you are unsatisfied, and I’ll return the full purchase price to you ASAP.

FAQ

Unlock Full Access