DBT Cheat Sheet 2026

The 30 highest-yield DBT facts, distilled from real exam questions. Print it, save it as a PDF, or study it here — free, no sign-up.

65 questions
90 min time limit
65% to pass
  1. Which command would you run to build all models in your dbt project? → dbt run
  2. What does the --empty flag do when used with dbt run? → Builds models with zero-row refs and sources to validate SQL cheaply
  3. Which dbt function is used to reference a source table inside a model SQL file? → {{ source('schema', 'table') }}
  4. Which config allows you to set a threshold so a test only fails if MORE than N rows are returned? → error_if
  5. Which materialization type creates a permanent, physically stored table in the data warehouse on every run? → table
  6. On an incremental model using the merge strategy, which config prevents duplicate records by updating existing rows? → unique_key
  7. Which materialization creates no object in the warehouse and inlines the model as a CTE in downstream models? → ephemeral
  8. Which command initializes a new dbt project in your working directory? → dbt init
  9. Why should 'SELECT *' be avoided in dbt models for performance? → Because it retrieves unnecessary columns
  10. What does the `quoting` config on a source control? → Whether column names are enclosed in quotes in generated SQL
  11. An incremental model must only process new rows on subsequent runs. Which Jinja construct correctly wraps the filter so it is skipped on the first build? → {% if is_incremental() %}
  12. Which dbt source property lets you override the actual database table name that a source points to? → identifier
  13. Which Jinja statement would you use to set a local variable inside a dbt model? → {% set my_var = 'value' %}
  14. What is the default materialization type for dbt models when none is explicitly configured? → view
  15. A model's tests fail during `dbt build`. What happens to its downstream models by default? → They are skipped
  16. Which materialization type is used in dbt to improve performance by only updating new or changed records? → Incremental
  17. Which SQL technique improves performance by reducing the size of result sets before joins? → Filter rows before joins
  18. What config key specifies the column(s) used to match existing rows in an incremental merge strategy? → unique_key
  19. Which dbt Cloud job setting keeps the docs site current after production runs? → Generate docs on run
  20. Which practice improves incremental model performance by avoiding unnecessary comparisons? → Use a unique_key in incremental config
  21. Which dbt Core command compiles SQL without executing it against the warehouse? → dbt compile
  22. Which accepted_values test parameter makes the test case-insensitive? → case_sensitive: false
  23. How can you document a macro and its arguments? → Add a macros: entry in a YAML file with description and arguments
  24. Why might a view-materialized model chain become slow? → Each downstream query re-executes all upstream view logic at query time
  25. Which syntax correctly defines a reusable doc block in a .md file? → {% docs order_status %} ... {% enddocs %}
  26. Which practice best keeps an incremental model from scanning the entire source on every run? → Wrapping a filter on a timestamp column inside an is_incremental() block
  27. Which file defines the packages and dependencies required by a dbt project? → packages.yml
  28. Which directory stores dbt snapshot files by default? → snapshots/
  29. Where are dbt documentation files generated by default? → target/
  30. Which directory in a dbt project is typically used to store static CSV data for loading into the warehouse? → data/
Turn these facts into recall:

What Practice Test Geeks adds beyond an AI chat for DBT

An AI chatbot can quiz you, but it can't reproduce the exam conditions or keep your record. Here you get:

  • A timed, full-length DBT mock exam — 65 questions in 90 minutes with a 65% pass mark, modeled on the official exam's question count and time limit, followed by a score report broken down by exam domain.
  • A fixed DBT question bank: the same test every attempt, so your score is comparable from one try to the next instead of changing with every regenerated quiz.
  • Progress saved on your device: completed tests, scores and missed questions stay in My Progress, so you can retake only what you got wrong.
  • DBT flashcards built from the same question bank.
  • Free DBT practice tests with the correct answer shown after each question.
Start the Timed DBT Mock Exam →
Was this helpful?

How this page was made: written with AI tools. We have not yet matched this exam's facts to an official source, so confirm fees, dates and rules with the exam body. Not reviewed by a subject-matter expert. Editorial policy