dbt Analytics Engineering study plan
dbt Analytics Engineering · Give each week a clear focus.
8 weeks · About 7 hours per week
Data Modeling and Transformation with dbt
Explain how dbt turns a SELECT statement into a materialized relation (view/table/incremental/ephemeral) and when each is chosen.
Write a small dbt project with at least three models that ref each other to form a staging → intermediate → mart chain.
Configure a source and a model with unique and not_null tests, then run dbt build and interpret the results.
Distinguish ref, source, and var, and describe how dbt resolves them at compile time.
Your checkpoint
A runnable dbt project in a local warehouse (DuckDB or Postgres) where dbt build succeeds and produces a documented three-layer model chain.
Data Modeling and Transformation with dbt
Design a star schema (facts and dimensions) and justify grain decisions for each fact table.
Implement an incremental model with a correct is_incremental() filter and a unique_key, then rerun it to confirm no duplicates.
Use dbt_utils or a surrogate-key pattern to build a dimension with a stable key.
Explain the trade-offs of ephemeral models and CTE-heavy intermediate models in a multi-layer project.
Your checkpoint
An incremental fact model and a dimension model with surrogate keys, plus a one-page written grain and key strategy for the project.
Data Modeling and Transformation with dbt & Sources, Tests, and Data Quality
Define source freshness checks and configure warn/error thresholds for at least two sources.
Write singular tests (custom SQL) and generic tests (unique, not_null, relationships, accepted_values) and explain when each is appropriate.
Add a dbt_expectations or dbt_utils test to validate a range or row-count condition on a mart model.
Describe how test severity (warn vs error) affects dbt build and downstream models.
Your checkpoint
A tests layer in the project: source freshness, at least four generic tests, and two singular tests, all passing on a clean run.
Sources, Tests, and Data Quality
Configure a source in a YAML file with freshness, quoting, and column descriptions.
Use dbt source freshness and explain how it differs from a data test.
Implement a data-quality gate that fails the build when a critical test fails, and verify the failure path.
Document a strategy for handling late-arriving data and duplicates at the source layer.
Your checkpoint
A source configuration file with freshness thresholds and a demonstrated failing test that blocks a downstream model, captured in a short run log.
Documentation, Lineage, and Governance
Write model and column descriptions in schema YAML and generate the docs site with dbt docs generate.
Add exposures to document a downstream dashboard or report and verify it appears in the lineage graph.
Use dbt docs serve to trace lineage from a mart model back to its sources and identify orphan models.
Explain how the manifest and catalog power lineage and documentation in dbt.
Your checkpoint
A generated docs site with full model/column descriptions, at least one exposure, and a screenshot-free written lineage walkthrough of one mart model.
Documentation, Lineage, and Governance & Deployment, Orchestration, and Project Configuration
Configure project variables and environment-specific targets (dev/prod) in profiles and dbt_project.yml.
Set model-level configs (materialized, tags, schema) in dbt_project.yml and override them per model.
Use selectors or tags to run a subset of models and explain how state:modified works with deferral.
Describe a governance approach for model ownership, naming conventions, and deprecation.
Your checkpoint
A dbt_project.yml with dev/prod targets, tag-based selectors, and a written naming and ownership convention applied to the project.
Deployment, Orchestration, and Project Configuration
Set up a CI job (dbt Cloud or a CLI script) that runs dbt build on a pull request against a slim CI state.
Configure dbt deps, packages.yml, and a lockfile strategy for reproducible builds.
Explain how dbt run, dbt test, and dbt build differ and when to use each in a deployment pipeline.
Document a rollback and recovery approach for a failed production run.
Your checkpoint
A working CI configuration (YAML or script) that runs a slim dbt build on a branch and a short deployment runbook.
Data Modeling and Transformation with dbt & Sources, Tests, and Data Quality & Documentation, Lineage, and Governance & Deployment, Orchestration, and Project Configuration
Complete a timed 60-question mixed practice set across all four domains and log weak areas.
Re-implement one weak-area concept (e.g., incremental strategy or test severity) from memory.
Review the official dbt documentation pages for sources, tests, docs, and deployment configs.
Write a one-page cheat sheet of commands, config keys, and test types.
Your checkpoint
A scored practice set with a written remediation list and a one-page cheat sheet covering all four domains.
Milestones
Week 2: Can build a three-layer dbt project from scratch and explain materialization choices without notes.
Week 4: Can configure source freshness and tests that block a build, and explain the difference between freshness and data tests.
Week 6: Can generate docs with lineage and exposures, and configure dev/prod targets with tag-based selectors.
Week 8: Scores at least 75% on a mixed 60-question practice set and can explain every missed item.