dbt Analytics Engineering study materials
dbt Analytics Engineering study resources

dbt Analytics Engineering study plan

dbt Analytics Engineering · Give each week a clear focus.

8 weeks · About 7 hours per week

Week 1

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.

Week 2

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.

Week 3

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.

Week 4

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.

Week 5

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.

Week 6

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.

Week 7

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.

Week 8

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.