dbt-Analytics-Engineering dbt Analytics Engineering Certification Exam Questions and Answers
You are working with git to version control the dbt logic.
Order these steps to add or modify transformations to your dbt project.

Your model has a contract on it.
When renaming a field, you get this error:
This model has an enforced contract that failed.
Please ensure the name, data_type, and number of columns in your contract match
the columns in your model's definition.
| column_name | definition_type | contract_type | mismatch_reason |
|-------------|------------------|----------------|-----------------------|
| ORDER_ID | TEXT | TEXT | missing in definition |
| ORDER_KEY | TEXT | | missing in contract |
Which two will fix the error? Choose 2 options.
You have just executed dbt run on this model:
select * from {{ source("{{ env_var('input') }}", 'table_name') }}
and received this error:
Compilation Error in model my_model
expected token ':', got '}'
line 14
{{ source({{ env_var('input') }}, 'table_name') }}
How can you debug this?
32. You are creating a fct_tasks model with this CTE:
with tasks as (
select * from {{ ref('stg_tasks') }}
)
You receive this compilation error in dbt:
Compilation Error in model fct_tasks (models/marts/fct_tasks.sql)
Model 'model.dbt_project.fct_tasks' (models/marts/fct_tasks.sql) depends on a node named 'stg_tasks' which was not found
Which is correct? Choose 1 option.
Options:
You want to run and test the models, tests, and snapshots you have added or modified in development.
Which will you invoke? Choose 1 option.
Options:
31. Your entire DAG looks like the image shown.

(Several stg_ models appear upstream, feeding into int_ and fct_ models.)
The question asks:
“Was this modeling rule violated?
Staging models dependent on other staging models”
You are working on a complex dbt model with many Common Table Expressions (CTEs) and decide to move some of those CTEs into their own model to make your code more modular.
Is this a benefit of this approach?
The new model can be documented to explain its purpose and the logic it contains.
Which two configuration items can be defined under models: in your dbt_project.yml file?
Choose 2 options.
Match the macro to the appropriate hook so that the correct execution steps comply with these rules:
macro_1() needs to be executed after every dbt run.
macro_2() needs to be executed after a model runs.
macro_3() needs to execute before every dbt run.
macro_4() needs to be executed before a model runs.

You wrote this test against your fct_orders model to confirm status filters were properly applied by a parent model:
{{
config(
enabled=true,
severity='error'
)
}}
select *
from {{ ref('fct_orders') }}
where status_code = 13
Which statement about this test is true?
The dbt_project.yml file contains this configuration:
models:
+grants:
select: ['reporter']
How can you grant access to the object in the data warehouse to both reporter and bi?
Given 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:
+materialized: table
…and this warning when compiling your project:
[WARNING]: Configuration paths exist in your dbt_project.yml file which do not apply to any resources.
There are 1 unused configuration paths:
- models.jaffle-shop
What is the root cause?
A run hook in the jaffle_shop project was defined with an incorrect regular expression.
A developer imports a package from a private repository called timeformat for use within their project.
Which statement is correct? Choose 1 option.
Options:



