DBT Analytics Engineering Lessons
31 lessons, one per exam-guide subdomain, in the order the guide teaches them. Every claim is cited to the official documentation.
Domain 1: Developing and optimizing dbt models
14 lessons · 45% of the exam
1.1Raw object dependencies with source() and ref()
Subdomain 1.1: Identifying and verifying any raw object dependencies
12 min read
1.2dbt materializations: view, table, incremental, ephemeral and materialized view
Subdomain 1.2: Understanding core dbt materializations
15 min read
1.3Modularity and DRY in dbt: layers, macros and packages
Subdomain 1.3: Conceptualizing modularity and how to incorporate DRY principles
16 min read
1.4dbt run, test, seed, snapshot and build: what each command executes
Subdomain 1.4: Using commands such as build, run, test, docs, show, snapshot, and seed
2 pages · 20 min read
1.5Layering dbt models into a clean DAG
Subdomain 1.5: Creating a logical flow of models and building clean DAGs
16 min read
1.6Configuring resources in dbt_project.yml
Subdomain 1.6: Defining configurations in dbt_project.yml
14 min read
1.7dbt packages: installing, pinning and overriding them
Subdomain 1.7: Using dbt Packages
15 min read
1.8Python models in dbt: the model() function, configuration and materializations
Subdomain 1.8: Creating Python Models
16 min read
1.9Granting access to dbt models with the grants config
Subdomain 1.9: Providing access to users to models with the "grants" config
13 min read
1.10Creating dbt snapshots in YAML
Subdomain 1.10: Creating snapshots in YAML
17 min read
1.11Choosing a dbt incremental strategy for your dataset
Subdomain 1.11: Selecting the optimal incremental strategy based on a dataset's characteristics
15 min read
1.12Schema-only dry runs with the dbt --empty flag
Subdomain 1.12: Validating model logic and schema definitions in dry-runs using the --empty flag
12 min read
1.13Running dbt models in sample mode with --sample
Subdomain 1.13: Running models in sample mode using the --sample flag
11 min read
1.14Microbatch incremental models in dbt
Subdomain 1.14: Understanding advanced dbt materializations such as microbatch
17 min read
Domain 2: Managing dbt models governance
3 lessons · 10% of the exam
2.1dbt model contracts: enforcing column names and data types
Subdomain 2.1: Adding contracts to models to ensure the shape of models
16 min read
2.2Creating model versions in dbt
Subdomain 2.2: Creating different versions of our models and deprecating the old ones
2 pages · 22 min read
2.3dbt constraints in YAML: enforcing data integrity in the warehouse
Subdomain 2.3: Defining constraints in YAML to enforce data integrity at the platform level
14 min read
Domain 3: Debugging data modeling errors
5 lessons · 16% of the exam
3.1Reading dbt error messages and logs
Subdomain 3.1: Understanding logged error messages
15 min read
3.2Troubleshooting dbt models with compiled SQL
Subdomain 3.2: Troubleshooting using compiled code
14 min read
3.3Troubleshooting dbt .yml compilation errors
Subdomain 3.3: Troubleshooting .yml compilation errors
13 min read
3.4Fixing a dbt model and testing the fix before merging
Subdomain 3.4: Developing and implementing a fix and testing it prior to merging
13 min read
3.5dbt flags: precedence, behavior change flags and flags in Jinja
Subdomain 3.5: Managing dbt behavior with flags
14 min read
Domain 4: Troubleshooting and optimizing dbt pipelines
2 lessons · 6% of the exam
Domain 5: Implementing dbt tests
3 lessons · 10% of the exam
5.1dbt tests: generic, singular, custom generic and unit tests
Subdomain 5.1: Using generic, singular, custom, custom generic, and unit tests on a wide variety of models and sources
18 min read
5.2Testing assumptions on dbt models and sources
Subdomain 5.2: Testing assumptions for dbt models and sources
15 min read
5.3Running dbt tests in development, CI and production
Subdomain 5.3: Implementing various testing steps in the workflow
15 min read
Domain 6: Implementing and maintaining external dependencies
2 lessons · 6% of the exam
Domain 7: Leveraging the dbt state
2 lessons · 6% of the exam