About the Exam

Prepare for the dbt Analytics Engineering Certification certification from dbt Labs with 63 practice questions, community discussion, and detailed explanations.

How to Use This Practice Exam

  1. Browse — Read each question, select your answer, and reveal the explanation.
  2. Exam Mode — Simulate real exam conditions with a timed session and score report.
  3. Learn Mode — Spaced repetition schedules questions you struggle with for long-term retention.

Download the Full Exam PDF

Get every question and answer in a clean, printable PDF built for offline study. Purchase once, keep permanent access, and re-download the latest version anytime.

Last updated November 3, 2026 at 4:41 PM

Question status
Question sort
Questions per page

QuestionQ1

Verified

Which two statements are true about version controlling code using Git? Choose 2 options.

Choose two
Explanation

Git preserves a history of committed project snapshots, allowing developers to inspect recorded changes and restore code from an earlier commit. However, Git does not automatically record every edit: changes must be staged and committed to become part of the history. (git-scm.com)

Learn more

Community Discussion

No comments yet. Be the first to start the discussion!

QuestionQ2

Verified

Consider the following DAG:

app_data.detail_categories -> stg_detail_categories -> skills_with_details app_data.details -> stg_details -> lessons_with_details  

What would help make this DAG more modular? Choose 1 option.

Explanation

Examining lessons_with_details and skills_with_details can identify complex or reusable transformations that could be separated into an intermediate model. This can make the downstream models easier to read, maintain, and test without assuming that the staging models should be combined. (docs.getdbt.com)

Learn more

Community Discussion

No comments yet. Be the first to start the discussion!

QuestionQ3

Verified

Consider this dbt_project.yml:

name: "jaffle_shop"  
version: "1.0.0"  
config-version: 2  
profile: "snowflake"  
model-paths: ["models"]  
macro-paths: ["macros"]  
snapshot-paths: ["snapshots"]  
target-path: "target"  
clean-targets:  
  - "logs"  
  - "target"  
  - "dbt_modules"  
  - "dbt_packages"  
models:  
  jaffle_shop:  
    orders:  
      materialized: table  

When you execute dbt run, your models build as views rather than tables:

19:36:14 Found 1 model, 0 tests, 0 snapshots, 0 analyses, 179 macros, 0 operations, 0 seed files, 0 sources, 0 exposures, 0 metrics  
19:36:16 Concurrency: 1 threads (target='default')  
19:36:17 Finished running 1 view model in 3.35s.  
19:36:17 Completed successfully  
19:36:17 Done. PASS=1 WARN=0 ERROR=0 SKIP=0 TOTAL=1  

Could the following be a root cause of the model not being materialized as a table?

The target-path is incorrectly configured.

Explanation

The target-path controls where dbt writes artifacts; it does not determine whether a model is built as a table or a view. Materialization is controlled by model configuration, and models default to views when no applicable table configuration takes effect. (docs.getdbt.com)

Learn more

Community Discussion

No comments yet. Be the first to start the discussion!

QuestionQ4

Verified

A developer imports a package named timeformat from a private repository for use in their project.

Which statement is correct? Choose 1 option.

Explanation

The root project can override a package’s model configuration in dbt_project.yml. Setting models: timeformat: +schema: timeseries configures the custom schema for models in the timeformat package. By default, dbt combines the target schema with the custom schema name. (docs.getdbt.com)

Learn more

Community Discussion

No comments yet. Be the first to start the discussion!

QuestionQ5

Verified

You wrote the following test against your fct_orders model to verify that a parent model applied status filters properly:

\{\{  
config(  
enabled=true, severity='error'  
)  
\}\}  
select *  
from \{\{ ref('fct_orders') \}\}  
where status_code = 13  

Which statement about this test is correct?

Explanation

A singular dbt data test returns records that violate its assertion. Here, the query returns rows with status_code = 13, so those rows cause the test to fail under the default failure threshold. The configured severity reports the failure as an error. (docs.getdbt.com)

Learn more

Community Discussion

No comments yet. Be the first to start the discussion!
Know a question that should be here? Contribute to this exam
Back home