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. Which dbt function is used to reference a source table inside a model SQL file? {{ source('schema', 'table') }}
  3. Which config allows you to set a threshold so a test only fails if MORE than N rows are returned? error_if
  4. Which materialization type creates a permanent, physically stored table in the data warehouse on every run? table
  5. Which command initializes a new dbt project in your working directory? dbt init
  6. Why should 'SELECT *' be avoided in dbt models for performance? Because it retrieves unnecessary columns
  7. What does the `quoting` config on a source control? Whether column names are enclosed in quotes in generated SQL
  8. Which dbt source property lets you override the actual database table name that a source points to? identifier
  9. Which Jinja statement would you use to set a local variable inside a dbt model? {% set my_var = 'value' %}
  10. What is the default materialization type for dbt models when none is explicitly configured? view
  11. Which materialization type is used in dbt to improve performance by only updating new or changed records? Incremental
  12. Which SQL technique improves performance by reducing the size of result sets before joins? Filter rows before joins
  13. What config key specifies the column(s) used to match existing rows in an incremental merge strategy? unique_key
  14. Which practice improves incremental model performance by avoiding unnecessary comparisons? Use a unique_key in incremental config
  15. Which dbt Core command compiles SQL without executing it against the warehouse? dbt compile
  16. Which accepted_values test parameter makes the test case-insensitive? case_sensitive: false
  17. Which file defines the packages and dependencies required by a dbt project? packages.yml
  18. Which directory stores dbt snapshot files by default? snapshots/
  19. Where are dbt documentation files generated by default? target/
  20. Which directory in a dbt project is typically used to store static CSV data for loading into the warehouse? data/
  21. Which dbt command is used to preview generated documentation in a local browser? dbt docs serve
  22. Which YAML key is used to define generic tests on a column inside a schema.yml file? tests
  23. Which dbt macro generates a series of comma-separated column expressions from a list? dbt_utils.star()
  24. What is the purpose of the 'macros/' directory in a dbt project? Houses reusable Jinja-based SQL snippets
  25. What is the purpose of writing descriptions in dbt models and columns? To describe data models for users and developers
  26. In a dbt Cloud job, what does enabling 'Generate docs' do? Runs `dbt docs generate` to refresh the catalog artifact after the run
  27. Which command is used to install dbt packages listed in `packages.yml`? dbt deps
  28. In dbt, what is a 'dispatch' namespace used for in macro resolution? Allowing packages to override built-in macros with adapter-specific versions
  29. What Jinja construct lets you loop over a list and generate repeated SQL fragments in dbt? {% for item in list %} ... {% endfor %}
  30. What dbt command runs all tests defined in your project? dbt test
Turn these facts into recall: