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