So you want to test your dbt Analytics Engineering knowledge before exam day. These dbt analytics engineering practice questions 2026 cover the highest-yield topics on the exam. Not flashcard trivia.Real scenario-based questions that force you to reason about materializations, dependencies, testing, and governance. These 20 practice questions cover the highest-yield domains on the exam. Each one includes a detailed explanation of why the correct answer is right and why the distractors fail. Lets get into it. ## Practice Questions ### Question 1 A mart model fct_orders currently queries analytics_dev.stg_orders directly by hard-coding the schema and table name. The team is preparing to promote this model to production. What is the best change before promoting? A) Add a source freshness check to stg_orders B) Replace the hard-coded reference with ref('stg_orders') C) Create a new exposure for the mart model D) Add a not_null test on the order_id column Answer: B ref() resolves the correct relation per target environment and records the DAG dependency. Hard-coding a development schema is brittle and will break in production. Source freshness checks data freshness, it does not connect dbt model dependencies. Tests and exposures are good practices but do not fix the hard-coded reference problem. ### Question 2 A dbt model processes five years of immutable web event data. New rows arrive every hour. Historical rows never change. Full table rebuilds take over an hour and are too expensive to run daily. Which materialization is most appropriate? A) View B) Table C) Incremental D) Ephemeral Answer: C An incremental model processes only new records on each run, using an is_incremental() filter. This is the standard pattern for large append-only datasets. A view would re-run the full query every time it is queried. A table would rebuild all five years on every run. Ephemeral would duplicate the expensive work into every downstream model. ### Question 3 A dashboard depends on mart_revenue and should appear in the dbt project lineage as a downstream dependency with an owner assigned. What should be configured? A) A model contract on mart_revenue B) An exposure pointing to the dashboard C) A source freshness check on mart_revenue D) A relationships test between mart_revenue and the dashboard Answer: B Exposures document downstream assets and ownership. They appear in dbt lineage and documentation. Contracts enforce model schema shape. Source freshness checks data freshness. Neither represents a downstream dashboard relationship. ### Question 4 An int_payments_enriched model is an internal transformation that combines two staging models. Downstream mart models never reference it directly. Which materialization avoids persisting unnecessary storage while keeping the logic reusable? A) View B) Table C) Ephemeral D) Incremental Answer: C Ephemeral models are inlined as CTEs into referencing models. They do not persist in the warehouse. This is ideal for internal transformations that are not queried directly. A table would persist data nobody queries. A view would recompute on every query. Incremental adds maintenance complexity for no benefit here. ### Question 5 A source table loaded by a third-party connector sometimes arrives late, causing downstream models to process stale data. Which dbt feature should be configured to detect this? A) A singular test on the source table B) A not_null test on the source table C) Source freshness with warn and error thresholds D) An exposure on the source table Answer: C Source freshness checks how recent the data in a source table is. You can configure warn and error thresholds. Singular tests and not_null tests validate data content, not arrival timing. Exposures document downstream consumers, not source data freshness. ### Question 6 A model has a column customer_id that must never be null because downstream joins depend on it. Which test is the most direct validation? A) accepted_values B) not_null C) relationships D) unique Answer: B not_null directly validates that the column contains no null values. accepted_values checks that values fall within an allowed set. relationships validates referential integrity. unique checks for duplicate values. None of these directly validate non-null constraints. ### Question 7 A team wants their CI pipeline to only test models that changed since the last production build, without rebuilding expensive upstream models. Which two concepts are most relevant? A) tag:nightly and --exclude B) state:modified+ and --defer C) result:fail and dbt retry D) source freshness and dbt build Answer: B state:modified+ selects models that changed since the last recorded state. --defer uses the previous manifest to resolve refs without rebuilding upstream models. This is the standard slim CI pattern. tag:nightly requires manual tagging. result:fail and retry are for re-running failures, not for CI efficiency. ### Question 8 A dbt model fails during compilation. The error message shows a relation not found. The model was working yesterday. Which layer should be investigated first? A) Cluster scaling in the data warehouse B) YAML syntax and model dependencies C) Source data freshness D) BI dashboard refresh schedules Answer: B A "relation not found" error during compilation indicates a missing dependency, usually from a missing or incorrectly named ref() or source(). Check YAML syntax, model names, and dependencies first. Cluster scaling and source freshness are runtime issues. Dashboard schedules are unrelated to dbt compilation. ### Question 9 A model orders has a column status that must be one of: pending, processing, shipped, cancelled, returned. Which test validates this assumption? A) not_null B) relationships C) accepted_values D) unique Answer: C accepted_values tests that all values in a column fall within a specified list. This is the standard test for enum-like columns. not_null checks for nulls. relationships checks referential integrity. unique checks for duplicates. ### Question 10 A mart model is consumed by several downstream teams who depend on a stable column structure. The owning team needs to make a breaking schema change in the future. Which combination of features provides a controlled migration path? A) Model contracts and versions B) Ephemeral materialization and exposures C) not_null tests and source freshness D) Tags and selectors Answer: A Contracts enforce the current column structure at build time. Versions allow the team to introduce a new version of the model while deprecating the old one, giving downstream teams time to migrate. Ephemeral materialization does not address schema stability. Tests and freshness validate data, not migration paths. ### Question 11 After a dbt run, the stg_events model is skipped, int_events fails, and mart_events is also skipped. What is the most likely cause? A) mart_events has a YAML syntax error B) The DAG dependency was broken because int_events failed C) The warehouse ran out of compute resources D) A source freshness check failed on stg_events Answer: B dbt respects DAG dependencies. If int_events fails, its downstream children (mart_events) are skipped. Then stg_events was skipped -- but that seems backwards. Re-reading: stg_events is skipped means it was already up to date or the run started mid-DAG. The key lesson: when a mid-pipeline model fails, all downstream models are skipped. The fix starts at the failed node. ### Question 12 A dbt model includes Jinja logic that should only apply during incremental runs. Which condition correctly guards this logic? A) {% if incremental %} B) {% if is_incremental() %} C) {% if var('is_incremental') %} D) {% if target.name == 'prod' %} Answer: B is_incremental() is the built-in dbt macro that returns True when an incremental model is processing new records (not during a full refresh). This is the standard guard for incremental-specific logic. The other options are not valid dbt patterns. ### Question 13 A small reference mapping file (200 rows of country codes and names) needs to be loaded into the warehouse and referenced by multiple dbt models. Which dbt resource type is most appropriate? A) Source table B) View model C) Seed D) Incremental model Answer: C Seeds are CSV files stored in the dbt project that are loaded into the warehouse by dbt seed. They are designed for small static reference files. Sources reference tables that already exist in the warehouse (loaded by other processes). Views and incremental models are transformation resources, not data loading tools. ### Question 14 A production dbt run fails. The team wants to re-run only the models that failed in the previous run, without re-running successful models. Which command or selector should they use? A) dbt run --exclude tag:success B) dbt retry C) dbt run --select result:pass D) dbt build --full-refresh Answer: B dbt retry re-runs only the models that failed in the previous run, using the run results artifact. result:pass would select successful models (the opposite of what is wanted). --exclude tag:success requires manual tagging. --full-refresh rebuilds all incremental models from scratch. ### Question 15 A model dim_customers is consumed by multiple teams across different dbt projects. The owning team wants to communicate that this model is stable and intended for cross-project use. Which access setting is most appropriate? A) Private B) Public C) Ephemeral D) Internal Answer: B Public access indicates a model is stable and intended for consumption by other projects. Private access signals that a model is internal to its project and should not be referenced externally. Ephemeral is a materialization, not an access level. ### Question 16 A staging model needs to reference a raw events table that was loaded into the warehouse by an Airbyte connector. The table does not exist in any other dbt model YAML. What should be created? A) A new mart model wrapping the raw table B) A source definition in the staging model YAML C) An exposure for the Airbyte connector D) A package for the raw tables Answer: B Sources define raw tables that already exist in the warehouse. The staging model should use source('raw_events', 'events_table') to reference it. This documents the raw table, enables source testing, and enables source freshness checks. Wrapping in a mart model skips the staging layer. Exposures document downstream consumers, not raw tables. ### Question 17 A team adds a relationships test to a YAML file for the first time. dbt parse now fails before any SQL is submitted. What should be investigated first? A) Warehouse query performance B) Cluster configuration C) YAML syntax and indentation D) Source data quality Answer: C A parse failure before SQL execution means the dbt project files cannot be parsed. The most common cause is YAML syntax errors, specifically indentation or formatting. Warehouse performance, cluster configuration, and data quality are runtime concerns, not parse-time issues. ### Question 18 A model compiles and runs successfully, but the compiled SQL contains a hard-coded warehouse name that differs from the target warehouse. Which dbt feature was likely bypassed? A) Tests B) ref() or source() C) Snapshots D) Exposures Answer: B If compiled SQL hard-codes a warehouse or schema name, the model likely used a raw database object name instead of ref() or source(). These dbt abstractions resolve the correct relation at compile time based on the target configuration. Bypassing them loses environment portability. ### Question 19 A BI team needs to know which dbt models power their Looker dashboards. Which feature makes this relationship visible in dbt documentation and lineage? A) Model contracts B) Source freshness C) Exposures D) Macros Answer: C Exposures define downstream dependencies (dashboards, ML models, applications) and their owners. They appear in the dbt DAG, documentation, and lineage. Source freshness checks data arrival times. Contracts enforce schema shape. Macros are reusable SQL functions. None of those document downstream BI relationships. ### Question 20 A large incremental model needs to be fully recalculated once due to a logic change. Historical rows were processed with the old logic and need to be overwritten. What should the engineer run? A) dbt compile B) dbt run --full-refresh C) dbt run --select tag:backfill D) dbt test Answer: B --full-refresh forces incremental models to rebuild from scratch instead of processing only new records. This is the standard approach when incremental logic changes and historical rows need to be recalculated. dbt compile only renders SQL without executing. dbt test validates data but does not transform it. ## FAQ ### How many questions are on the dbt Analytics Engineering exam? 65 questions in 2 hours. The passing score is 65 percent, which means roughly 42 out of 65 questions correct. ### What is the exam format? Scenario-based multiple choice. Each question describes a project situation and asks which dbt-native approach is best. ### Do I need hands-on dbt experience? Yes. Reading documentation alone is not sufficient. Build a real dbt project with sources, models, tests, and snapshots. Break things and debug them. The exam tests practical reasoning. ### Is the exam specific to Snowflake/BigQuery/Redshift? No. The exam tests dbt platform concepts that are warehouse-agnostic. But you should understand how dbt interacts with data warehouses generally. ### What is the best way to study? Build a real dbt project covering all seven domains. Then practice scenario questions to develop the decision-making speed you need for the exam. ### Where can I practice? Cert-Pass offers free practice questions at cert-pass.com/exams/dbt-dbt-analytics-engineering. Full prep with 1000+ questions and explanations starts at EUR 29. Test yourself with more free dbt practice questions at cert-pass.com/exams/dbt-dbt-analytics-engineering. Full prep with 1000+ questions, explanations, topic practice, and mock exams starts at EUR 29.
calendar_todayMay 30, 2026
schedule11 min read
visibility2 views
dbt Analytics Engineering Practice Questions 2026: 20 Realistic Examples
Test your dbt knowledge with 20 realistic practice questions. Covers materializations, ref vs source, testing, debugging, governance, and state.
dbt
analytics-engineering
practice-questions
exam-prep
certification
school
Cert-Pass Editorial Team
Cloud certification experts helping IT professionals pass their exams with confidence.