Data ScienceAdvanced

dbt and the Modern Data Stack

Analytics engineering: models, tests, docs and deployment with dbt.

Taught by Sabina Tamang · Data Engineer

What you'll learn

  • Explain where dbt sits in an ELT stack and set up a project with dbt Core and a warehouse adapter
  • Structure models into staging, intermediate and mart layers connected with source() and ref()
  • Add generic, singular and unit tests so bad data fails the build before it reaches a dashboard
  • Choose the right materialisation and write incremental models and snapshots that scale
  • Generate documentation and lineage, and write reusable Jinja macros and packages
  • Deploy through dev, CI and production environments using slim CI with state comparison

About this course

Analytics engineering is the discipline of turning raw warehouse tables into tested, documented, version-controlled data models, and dbt is its standard tool. This advanced course is for analysts and data engineers who write SQL confidently and want to build a production-grade dbt project on the modern data stack. You will set up dbt Core against a warehouse, structure staging, intermediate and mart models with ref and source, add schema and unit tests, choose materialisations and write incremental models, capture history with snapshots, generate documentation and lineage, write Jinja macros, and ship changes through CI with slim builds and environment promotion. Examples use DuckDB so everything runs locally, and the same project deploys unchanged to Snowflake, BigQuery, Redshift or Databricks. Prerequisites are solid SQL, basic Git and familiarity with a cloud warehouse.

Course content

6 lessons
  1. 1The Modern Data Stack and Where dbt FitsELT, cloud warehouses, and the transformation layer dbt owns between loaders and BI tools.Preview
  2. 2Project Setup, Models and ref()Initialising a dbt project, layering staging to marts, and wiring models with source() and ref().
  3. 3Testing Data QualityGeneric, singular and unit tests that make bad data fail the build instead of the dashboard.
  4. 4Materialisations, Incremental Models and SnapshotsChoosing view, table, incremental or ephemeral, and capturing history with SCD Type 2 snapshots.
  5. 5Documentation, Macros and PackagesGenerating a docs site with lineage, writing Jinja macros, and reusing community packages.
  6. 6Environments, CI and DeploymentDev, CI and production targets, slim CI with state comparison, and a GitHub Actions workflow.