Skip to content

What each core dbt command actually does

dbt provides a set of core commands that run, test, document, and inspect your project. Understanding when to use each command—and how they interact through selection syntax and the DAG—is essential for efficient development and CI workflows. dbt build is the most commonly tested command because it consolidates multiple steps into one graph-aware operation.

Must-know

  • dbt run executes models only (materializes them as tables/views), while dbt build runs models, tests, snapshots, and seeds together in DAG order, stopping downstream nodes if an upstream test fails.
  • dbt test executes schema tests (e.g., unique, not_null) and singular tests defined in the tests/data-tests folder, but does not build or refresh the underlying models first.
  • dbt seed loads CSV files from the seeds directory into the warehouse as tables, useful for static reference or lookup data, not for large or frequently changing datasets.
  • dbt snapshot captures point-in-time changes to mutable source tables using a defined strategy (timestamp or check), enabling type-2 slowly changing dimension tracking.
  • dbt docs generate compiles project metadata (including compiled SQL, column-level descriptions, and lineage) into a manifest and catalog, which dbt docs serve then renders as a browsable website.
  • dbt show compiles and previews the result set of a model or ad hoc SQL without materializing it in the warehouse, useful for quick debugging during development.
  • Selection flags like --select, --exclude, and graph operators (e.g., +model_name, model_name+) work across run, test, build, and snapshot to scope execution to specific parts of the DAG.
Check this objectiveFree · always available

You maintain this snapshot: {% snapshot orders_snapshot %} {{ config( target_schema='snapshots', unique_key='order_id', strategy='timestamp', updated_at='updated_at', ) }} select * from {{ source('erp', 'orders') }} {% endsnapshot %}A backend script updates the status column on some rows directly in the database without ever touching updated_at. Snapshot runs since then have not recorded those status changes. Which change to the config fixes this?

Your objective map0 tried · 0 right · 31 untouched

What you have tried across dbt Analytics Engineering's objectives, not a readiness score.

Coverage checked against the published exam guide on Aug 5, 2026.

These are independent practice questions, written against this certification's published exam guide. They are not the certification vendor's own questions, and not the real exam.