Learning path
dbt learning path: everything to study, topic by topic
Comprehensive dbt (data build tool) assessment covering project structure, models, sources, materializations, testing, documentation, Jinja/macros, incremental strategies, model governance, CI/CD, dbt Cloud, Semantic Layer, MetricFlow, dbt Mesh, unit testing, Python models, and analytics engineering best practices.
Short answer
To learn dbt, work through 6 modules and 46 topics in the order they build on each other. It starts with dbt Fundamentals, then moves on to Data Modeling & Materializations and Testing & Documentation. Use the map as a checklist, or measure your level and study only what is missing.
What you will study
Topics are grouped by module. Open one to see its objectives and key concepts.
1 · dbt Fundamentals5 topics
Project Structure
dbt_project.yml configuration, directory layout (models/, seeds/, macros/, tests/, snapshots/, analyses/), profiles.yml, and project-level settings
Objectives
- Set up a dbt project with correct directory structure
- Configure dbt_project.yml and profiles.yml
Key concepts
- dbt_project.yml
- profiles.yml
- directory layout
- model-paths
- target-path
- clean-targets
dbt Models
SQL and Python model files, model configurations, config blocks, model naming conventions, and the model compilation process
Objectives
- Create dbt models with proper configuration
- Understand how dbt compiles models into SQL
Key concepts
- SQL model
- Python model
- config block
- model compilation
- target schema
- model naming
ref() and DAG
ref() function for model dependencies, DAG construction and visualization, model selection syntax, upstream and downstream dependencies
Objectives
- Build model dependencies with ref() and navigate the DAG
- Use model selection syntax to run subsets of models
Key concepts
- ref()
- DAG
- model dependencies
- upstream
- downstream
- dbt run --select
Sources
source() function, source definitions in YAML, source freshness checks, loaded_at_field configuration, warn_after and error_after thresholds
Objectives
- Configure dbt sources with freshness monitoring
- Use source() to reference raw data tables
Key concepts
- source()
- source freshness
- loaded_at_field
- warn_after
- error_after
- source YAML
Seeds & Analyses
CSV seed files for static reference data, seed configuration, analyses for ad-hoc SQL queries, and when to use seeds vs sources
Objectives
- Load reference data using dbt seeds
- Know when to use seeds vs sources for static data
Key concepts
- dbt seed
- CSV files
- seed configuration
- analyses
- column_types
- seeds vs sources
2 · Data Modeling & Materializations4 topics
Materializations
Table, view, incremental, and ephemeral materializations; custom materializations; choosing the right materialization for different use cases
Objectives
- Choose appropriate materializations based on data volume and query patterns
- Understand performance implications of each materialization
Key concepts
- table
- view
- incremental
- ephemeral
- custom materialization
- materialization trade-offs
Modeling Layers & Naming
Staging, intermediate, and mart layers; naming conventions (stg_, int_, fct_, dim_); one-source-per-staging-model rule; model organization patterns
Objectives
- Organize dbt models into proper layers following analytics engineering conventions
- Apply naming conventions that communicate model purpose
Key concepts
- staging layer
- intermediate layer
- mart layer
- stg_ prefix
- fct_ and dim_ prefixes
- one-source-per-staging
YAML Configuration
Schema YAML files (_schema.yml), model properties, column descriptions, config inheritance (project > directory > model), meta properties
Objectives
- Write schema YAML files with model and column properties
- Understand config inheritance and override behavior
Key concepts
- _schema.yml
- model properties
- column descriptions
- config inheritance
- meta
- tags
Model Selection & Graph Ops
Model selection syntax (+ and @ operators), tags, paths, graph operators, dbt ls, state-based selection, intersection syntax
Objectives
- Use dbt's selection syntax to run specific subsets of models
- Combine selectors with intersection and union operators
Key concepts
- select syntax
- + operator
- @ operator
- tag selector
- path selector
- intersection
3 · Testing & Documentation8 topics
Generic Tests
Built-in generic tests (unique, not_null, accepted_values, relationships), test configuration, test severity, where clause for tests
Objectives
- Apply generic tests to ensure data quality
- Configure test severity and conditional filters
Key concepts
- unique
- not_null
- accepted_values
- relationships
- test severity
- where config
Custom & Singular Tests
Singular tests in tests/ directory, custom generic tests as macros, test macros with arguments, dbt_utils test helpers
Objectives
- Write custom tests for complex data validation rules
- Create reusable generic test macros
Key concepts
- singular tests
- custom generic tests
- test macros
- dbt_utils tests
- test arguments
- test SQL
Documentation
doc() blocks, markdown descriptions, dbt docs generate, dbt docs serve, auto-generated documentation site, persist_docs config
Objectives
- Generate and maintain dbt documentation
- Use doc() blocks for reusable descriptions
Key concepts
- doc()
- markdown descriptions
- dbt docs generate
- dbt docs serve
- persist_docs
- documentation site
Exposures & Metrics
Exposures for downstream dependencies (dashboards, ML models), metrics definitions, semantic layer, exposure owners, and maturity levels
Objectives
- Define exposures to track downstream consumers of dbt models
- Understand the role of metrics and the semantic layer
Key concepts
- exposures
- metrics
- semantic layer
- exposure owner
- maturity
- downstream consumers
dbt Unit Tests
dbt unit tests in YAML, expected output definitions, mocking refs with input fixtures, test execution, and differences from data tests and schema tests
Objectives
- Write dbt unit tests with input fixtures and expected output
- Understand when to use unit tests vs data tests vs schema tests
Key concepts
- unit_tests YAML
- expected output
- mocking refs
- input fixtures
- test execution
- unit vs data tests
dbt Testing Strategies
Designing comprehensive dbt testing: custom generic tests, unit tests, contract tests, and test coverage strategies
Objectives
- Design a comprehensive testing pyramid for a dbt project with 100+ models
- Implement contract tests to prevent breaking changes in public models
Key concepts
- generic tests
- singular tests
- unit testing (dbt-unit-testing)
- contract tests
- test coverage
- dbt-expectations
- meta tests
dbt Expectations & Advanced Testing
dbt-expectations package for statistical and distributional tests, custom generic tests at scale, test coverage strategies, parameterized tests, and test orchestration patterns
Objectives
- Implement dbt-expectations tests for statistical data validation
- Design comprehensive test coverage strategies for large dbt projects
Key concepts
- dbt-expectations
- statistical tests
- distributional tests
- test coverage
- parameterized tests
- test orchestration
dbt Data Quality Monitoring
Freshness SLAs beyond source freshness, anomaly detection in transformation outputs, automated alerting pipelines, Elementary integration, and observability dashboards
Objectives
- Implement data quality monitoring with freshness SLAs and anomaly detection
- Integrate Elementary or similar tools for dbt observability dashboards
Key concepts
- freshness SLAs
- anomaly detection
- automated alerts
- Elementary
- observability dashboards
- data quality scores
4 · Advanced dbt9 topics
Jinja Templating
Jinja syntax in dbt (variables, control structures, filters), set and do blocks, whitespace control, compile-time vs run-time context
Objectives
- Write Jinja templates for dynamic SQL generation in dbt
- Understand compile-time vs run-time evaluation
Key concepts
- Jinja variables
- if/else
- for loops
- set/do blocks
- whitespace control
- compile-time context
Macros
Macro creation and invocation, macro arguments, return values, dispatch pattern for cross-database compatibility, adapter macros
Objectives
- Write reusable macros for DRY SQL patterns
- Use dispatch for cross-database compatibility
Key concepts
- macro definition
- macro arguments
- return()
- dispatch
- adapter macros
- caller()
Packages
packages.yml, dbt Hub, installing packages, dbt_utils, dbt_expectations, codegen, private packages from git, package version pinning
Objectives
- Install and use dbt packages for common patterns
- Manage package versions and dependencies
Key concepts
- packages.yml
- dbt Hub
- dbt_utils
- dbt_expectations
- codegen
- version pinning
Incremental Models
Incremental strategies (append, merge, delete+insert, insert_overwrite), is_incremental() macro, unique_key, lookback windows, full_refresh
Objectives
- Design efficient incremental models for large datasets
- Choose appropriate incremental strategies for different use cases
Key concepts
- is_incremental()
- unique_key
- merge strategy
- delete+insert
- insert_overwrite
- full_refresh
Snapshots
Type-2 slowly changing dimensions with dbt snapshots, timestamp and check strategies, snapshot configuration, invalidate_hard_deletes, snapshot freshness
Objectives
- Implement SCD Type-2 tracking using dbt snapshots
- Choose between timestamp and check strategies
Key concepts
- snapshot strategy
- timestamp strategy
- check strategy
- dbt_valid_from
- dbt_valid_to
- invalidate_hard_deletes
Hooks & Operations
Pre-hook and post-hook configurations, on-run-start and on-run-end hooks, operations (dbt run-operation), grant macros, warehouse-level operations
Objectives
- Use hooks for cross-cutting concerns like permissions and logging
- Implement run-operation for administrative tasks
Key concepts
- pre-hook
- post-hook
- on-run-start
- on-run-end
- run-operation
- grant macros
Python Models
dbt Python models using Snowpark or PySpark, DataFrame API usage, when to use Python vs SQL models, limitations, and environment dependencies
Objectives
- Write dbt Python models for complex transformations and ML pipelines
- Evaluate when Python models are preferable to SQL models
Key concepts
- dbt Python models
- Snowpark
- PySpark
- DataFrame API
- Python vs SQL
- Python model limitations
dbt Migration Patterns
Migrating from stored procedures and legacy ETL to dbt, phased adoption strategies, side-by-side validation, audit comparisons, and organizational change management for dbt adoption
Objectives
- Plan and execute a phased migration from legacy ETL to dbt
- Validate migrated dbt models against legacy pipeline outputs
Key concepts
- stored procedure migration
- legacy ETL migration
- phased adoption
- side-by-side validation
- audit comparison
- organizational adoption
dbt for Real-Time
Micro-batch incremental models, streaming integration patterns with Kafka/Kinesis, near-real-time transformation approaches, materialized views, and hybrid batch-streaming architectures
Objectives
- Design micro-batch incremental models for near-real-time data freshness
- Integrate dbt with streaming platforms in hybrid batch-streaming architectures
Key concepts
- micro-batch incremental
- streaming integration
- near-real-time
- materialized views
- hybrid architectures
- event-driven patterns
5 · Model Governance & Quality11 topics
Model Contracts & Versions
Model contracts for enforcing column types and constraints, model versioning for backward compatibility, contract enforcement, latest_version config
Objectives
- Enforce data contracts on dbt models for downstream reliability
- Version models for safe schema evolution
Key concepts
- model contracts
- columns constraints
- data_type enforcement
- model versions
- latest_version
- defined_in
Groups & Access Control
Model groups for ownership boundaries, access modifiers (private, protected, public), cross-group ref restrictions, model governance at scale
Objectives
- Implement model access control using groups
- Design governance boundaries for multi-team dbt projects
Key concepts
- groups
- access modifiers
- private models
- protected models
- public models
- cross-group references
Debugging & Error Handling
dbt debug command, compiled SQL inspection, log analysis, common error patterns, run_results.json analysis, node status interpretation
Objectives
- Debug failing dbt models using compiled SQL and logs
- Interpret run results for troubleshooting
Key concepts
- dbt debug
- compiled SQL
- target/compiled
- run_results.json
- log levels
- common errors
Semantic Layer
dbt Semantic Layer architecture, metrics definitions, semantic models, entities, dimensions, measures, and metric consistency across BI tools
Objectives
- Design semantic models with entities, dimensions, and measures
- Define metrics that ensure consistency across analytics tools
Key concepts
- metrics definitions
- semantic models
- entities
- dimensions
- measures
- metric consistency
dbt Mesh
dbt Mesh architecture for multi-project setups, cross-project references, model contracts for public interfaces, access modifiers, and groups for team boundaries
Objectives
- Design a dbt Mesh architecture for multi-team organizations
- Implement cross-project references with proper governance
Key concepts
- cross-project references
- dbt Mesh architecture
- model contracts
- access modifiers
- groups
- multi-project governance
Semantic Layer & MetricFlow
MetricFlow engine, derived metrics, cumulative metrics, conversion metrics, metric queries, Semantic Layer API, and BI tool integration
Objectives
- Define derived, cumulative, and conversion metrics using MetricFlow
- Query metrics through the Semantic Layer API
Key concepts
- MetricFlow engine
- derived metrics
- cumulative metrics
- conversion metrics
- metric queries
- SL API
Semantic Layer & Metrics
Building a semantic layer with dbt's MetricFlow and integrating with BI tools for consistent business metric definitions
Objectives
- Define semantic models and metrics with MetricFlow for consistent business definitions
- Integrate the dbt Semantic Layer with BI tools via JDBC/REST APIs
Key concepts
- MetricFlow
- semantic models
- dimensions
- measures
- saved queries
- BI integration
- metric consistency
- single source of truth
dbt Security & Data Lineage
Managing data lineage with dbt docs, column-level lineage, access policies, and integrating with data catalogs
Objectives
- Implement node access control (public/protected/private) for multi-team dbt projects
- Integrate dbt lineage with a data catalog for end-to-end observability
Key concepts
- column-level lineage
- dbt docs
- node access (public/protected/private)
- groups
- catalog integration
- data catalog
- lineage visualization
dbt Contracts & API Boundaries
Enforcing contracts between teams, versioned models for backward compatibility, breaking change detection, contract enforcement policies, and API-style model interfaces
Objectives
- Enforce inter-team API boundaries using dbt model contracts
- Implement versioned models with breaking change detection workflows
Key concepts
- model contracts
- versioned models
- breaking change detection
- contract enforcement
- API boundaries
- interface stability
dbt Multi-Project Architecture
dbt Mesh cross-project references, dependency management between projects, shared model libraries, project boundaries, and multi-project governance at scale
Objectives
- Design a multi-project dbt Mesh architecture with clear team boundaries
- Manage cross-project dependencies and shared model libraries at scale
Key concepts
- cross-project refs
- dbt Mesh
- project boundaries
- shared model libraries
- dependency management
- multi-project governance
dbt Governance & Compliance
PII tagging and classification, column-level lineage for compliance, audit logging of transformations, access controls for sensitive data, and regulatory reporting
Objectives
- Implement PII classification and governance controls in dbt pipelines
- Design audit-compliant data transformation workflows with lineage tracking
Key concepts
- PII tagging
- column-level lineage
- audit logging
- access controls
- regulatory compliance
- data classification
6 · Operations & CI/CD9 topics
CI/CD & Deployment
dbt Cloud CI jobs, slim CI with state comparison, GitHub Actions integration, environment promotion (dev, staging, prod), dbt build command
Objectives
- Implement CI/CD pipelines for dbt projects
- Use slim CI with state comparison for efficient builds
Key concepts
- slim CI
- state:modified
- dbt build
- CI jobs
- environment promotion
- defer flag
State & Artifacts
dbt artifacts (manifest.json, catalog.json, run_results.json, sources.json), state comparison, artifact-based selection, deferred runs
Objectives
- Leverage dbt artifacts for advanced CI/CD and monitoring
- Implement state-based model selection for efficient builds
Key concepts
- manifest.json
- catalog.json
- run_results.json
- state comparison
- deferred runs
- artifact parsing
Orchestration & Performance
dbt Cloud job orchestration, Airflow/Dagster integration, model parallelism, warehouse optimization, thread configuration, performance profiling
Objectives
- Orchestrate dbt runs within broader data pipelines
- Optimize dbt project performance at scale
Key concepts
- job orchestration
- Airflow integration
- Dagster integration
- threads
- model parallelism
- performance profiling
dbt Cloud
dbt Cloud IDE, job scheduler, CI/CD jobs, slim CI, dbt Explorer, environment management, and Cloud-specific features vs. dbt Core CLI
Objectives
- Navigate and use the dbt Cloud IDE for model development
- Configure dbt Cloud environments and CI/CD jobs
Key concepts
- dbt Cloud IDE
- scheduler
- CI/CD jobs
- slim CI
- dbt Explorer
- environments
dbt at Scale
Structuring large dbt projects: modularization, project splitting, dbt-core packages, and performance optimization
Objectives
- Architect a multi-project dbt setup using dbt Mesh and cross-project refs
- Optimize dbt run performance through parallelism and materialization tuning
Key concepts
- project modularity
- dbt packages
- dbt mesh
- cross-project refs
- model configs
- run parallelism
- incremental materialization strategies
dbt Cloud Orchestration
Orchestrating dbt Cloud jobs: job dependencies, CI/CD integration, slim CI, and monitoring with dbt Cloud APIs
Objectives
- Implement slim CI with dbt Cloud using state comparison to run only changed models
- Design job dependencies and webhook-triggered pipelines in dbt Cloud
Key concepts
- dbt Cloud jobs
- slim CI
- job triggers
- CI webhooks
- defer to production
- environment variables
- dbt Cloud API
dbt Performance Tuning
Model optimization techniques, incremental strategy selection for large datasets, warehouse-specific tuning (Snowflake clustering, BigQuery partitioning, Redshift sort keys), thread configuration, and build profiling
Objectives
- Optimize dbt model performance using warehouse-specific tuning strategies
- Profile and resolve build bottlenecks in large dbt projects
Key concepts
- model optimization
- warehouse-specific tuning
- clustering keys
- partitioning
- thread tuning
- build profiling
dbt CI/CD Advanced Patterns
Slim CI with state comparison, deferred runs against production artifacts, PR-based ephemeral environments, state:modified selectors, and multi-environment promotion pipelines
Objectives
- Implement slim CI pipelines with deferred runs for cost-efficient testing
- Design PR-based ephemeral environments with proper state management
Key concepts
- slim CI
- deferred runs
- state comparison
- PR environments
- multi-environment promotion
- artifact-based selection
dbt Cost Management
Warehouse cost attribution per model, query cost optimization strategies, build efficiency metrics, cost-aware materialization choices, and budget alerting
Objectives
- Implement per-model cost attribution and optimization strategies
- Design cost-efficient dbt builds with budget awareness and alerting
Key concepts
- cost attribution
- query cost optimization
- build efficiency
- cost-aware materializations
- budget alerting
- warehouse spend tracking
Levels: Junior, Mid, Senior, and Expert
Explain it in your own words
Graded by AI · no account · 1 questionNo options to guess from: you write, the AI grades against the topic's rubric and tells you what level your answer reads at.
Already studying dbt?
The assessment measures topic by topic, and your plan skips what you already know.
Open to read. An account is only needed to be measured.
Frequently asked questions
Where should I start studying dbt?
Start with dbt Fundamentals: Project Structure, dbt Models, and ref() and DAG. The map orders topics by what they depend on, so each one prepares the next.
How long does a full dbt assessment take?
A full assessment of this path takes about 45 minutes. Study time depends on where you start; a diagnostic shows which topics you can skip.
Do I need an account to use this page?
No. The map, objectives and key concepts are open. You only need an account to be measured, get your gap by topic and receive a plan.