This article walks through the dbt Analytics Engineer exam from the NicheeLab perspective along three axes — scope, scoring, and registration — and lays out a practical study approach that builds exam readiness and real-world skills at the same time.
Exam specifications and rules can change. Always check the official documentation and exam page: dbt Docs (https://docs.getdbt.com/) and the certification page (https://www.getdbt.com/certifications/analytics-engineer-certification-exam).
The dbt Analytics Engineer exam is built around scenario-based multiple-choice questions that cut across dbt Core/Cloud concepts, modeling, testing, documentation, and operations (CI and production). Questions tie directly to real-world decisions: command behavior, node selectors, materializations, source management, and test strategy.
Duration, question count, passing score, fees, retake policy, and validity periods may change, so always confirm the latest on the official exam page. Many candidates take the exam after completing learning content such as dbt Fundamentals, but the mandatory requirements may vary over time.
The target audience is analytics engineers, data analysts, and data engineers who routinely work on ELT modeling on a DWH or lakehouse, and who run dbt in tandem with Git and CI.
| Domain | Key topics | Real-world frequency | Exam frequency |
|---|---|---|---|
| Modeling / DAG | ref/source, staging -> intermediate -> marts, materializations (view/table/incremental/ephemeral) | High | High |
| Tests / Documentation | schema and singular tests, source tests, the docs site, and exposures | High | High |
| Operations / CI and Production | dbt build, node selectors, state and deferral, jobs and scheduling, artifacts | Medium-High | High |
| Incremental / Snapshots | unique_key, merge strategies, partitioning, snapshot strategies | Medium | Medium-High |
| Macros / Packages | Jinja, macros, variables, packages, dispatch | Medium | Medium |
dbt development-to-production flow (conceptual diagram)
Commonly used dbt commands (behavior overview)
dbt deps # fetch packages
dbt seed # build seed tables from CSV
dbt run # run models (tests not included)
dbt test # run tests only
dbt build # run seeds/models/snapshots and tests together
# Example for PR CI (defer to main's artifacts)
dbt build --select state:modified+ --defer --target prodModeling centers on choosing between ref and source correctly, the three-layer staging/intermediate/marts pattern, and picking the right materialization (view/table/incremental/ephemeral). DAG dependency resolution combined with selector syntax (+, @, tag:, config:, state:) also shows up often.
For tests, you need to distinguish generic tests in schema.yml (not_null, unique, relationships, accepted_values, etc.) from singular custom SQL tests. Documentation (model descriptions, column descriptions, docs generate/serve, and exposures) is also tested from a practical standpoint.
Operations focuses on what dbt build actually does, how to leverage state comparison and deferral, running the minimum set in PR CI, jobs and schedules, and the uses of artifacts (manifest and run_results). For incremental models, understanding unique_key and merge strategy, partition boundaries, and the side effects of switching to --full-refresh keeps you on safe ground.
Typical incremental model layout (Snowflake/BigQuery)
{{ config(
materialized='incremental',
unique_key='order_id',
incremental_strategy='merge',
on_schema_change='append_new_columns'
) }}
with src as (
select * from {{ source('app', 'orders') }}
)
select
order_id,
customer_id,
order_ts,
total_amount
from src
{% if is_incremental() %}
where order_ts > (select coalesce(max(order_ts), '1900-01-01') from {{ this }})
{% endif %}
-- Key points:
-- Align unique_key with your tests (unique/not_null)
-- For full refresh, explicitly use --full-refresh to switch safelyScore breakdowns and passing thresholds are updated periodically. Modeling, tests, and operations usually carry the largest weights, followed by incremental/snapshots and macros/packages. If an official scoring breakdown is published, prioritize that over anything else.
Questions include design-decision scenarios (which materialization or command to pick) and behavior checks (selector syntax, state and deferral, test execution scope). For time allocation, keep your per-question time consistent. On long scenarios, mark the design constraints (DWH, SLAs, whether recomputation is allowed) first to narrow down the options.
If the multiple-choice format has no penalty for wrong answers, mark something even when you're unsure rather than leaving it blank. Save 5-10 minutes at the end for review.
Practical patterns for selector usage
# Validate changes and downstream in CI (defer to prod)
dbt build --select state:modified+ --defer --target prod
# Only models under a specific tag and their tests
dbt build --select tag:finance --resource-type model
# Re-run nodes related to failed tests
dbt build --select result:error
# Neighborhood selection (@) to include surrounding nodes
dbt build --select @marts.ordersTo register, create an account on the dbt certification site and pick a time slot. Fees, exam windows, ID requirements, system checks, and the retake policy are all spelled out during the registration flow.
On exam day, meet the platform's requirements — a quiet private room, stable network, webcam, microphone, etc. — and follow the platform's instructions. What you can bring in (notes, external monitor, etc.) is governed by the platform's terms.
Reschedules, cancellations, retake waiting periods, attempt limits, validity, and renewal requirements all follow the official page's rules. Organization-level registration, voucher payment, and receipt availability should be confirmed there as well.
Exam preparation checklist (example)
- Account created and payment completed
- Exam date added to calendar with a 30-minute reminder
- System check completed (network, camera, microphone)
- Final review of official requirements (ID, terms, retakes)
- Just before the exam, review key points on selectors, state, and deferralWeek 1: go end-to-end through the official tutorial and lock down ref/source, the three-layer pattern, schema tests, and the docs basics. In CI, get a feel for the scope of dbt build versus run/test.
Week 2: drill incremental and snapshot models, state/deferral, and combinations of selectors. Reproduce the minimum 'changes + downstream' run in PR CI, deferring to production artifacts.
Weeks 3-4: build your own mock scenarios and verbalize your design choices (materialization, key design, recomputation strategy). Close any gaps with the official Docs and iterate on your weak areas.
Example schema.yml (tests, documentation, and an exposure)
version: 2
models:
- name: fct_orders
description: Orders fact table. Grain is one row per order.
columns:
- name: order_id
description: Order ID (unique)
tests:
- not_null
- unique
- name: customer_id
tests:
- not_null
sources:
- name: app
schema: raw
tables:
- name: orders
columns:
- name: order_id
tests:
- not_null
exposures:
- name: revenue_dashboard
type: dashboard
url: https://bi.example.com/dash/revenue
depends_on:
- ref('fct_orders')
owner:
name: Analytics Team
email: [email protected]In real work, the keys are running the minimum set in PRs, isolating root causes on failure, reading artifacts (run_results and manifest), and recomputation strategies that don't destabilize production. The exam asks about the same decisions.
Trap answers include approaches that look convenient but ignore reprocessing cost or SLAs, misreading the DAG or selectors, and mismatches between tests and materialization. Always thinking 'verify with the minimum change, then ship to production safely' helps you sidestep wrong answers.
Typical dbt Cloud Job configuration (excerpt)
name: PR CI (defer to prod)
environment: dev
steps:
- dbt deps
- dbt build --select state:modified+ --defer --target prod
- dbt docs generate
triggers:
pull_request: true
schedule: false
artifacts:
exposure: true
upload: run_results.json, manifest.jsonAnalytics Engineer
問題 1
You want to validate the models changed in a PR and their downstream nodes with the minimum scope, deferring to production artifacts to fill in missing dependencies. Which command is most appropriate? (Assume state is already correctly configured.)
正解: A
In CI, dbt build is the right choice because it validates seeds, models, snapshots, and tests together. state:modified+ targets the changed nodes and their downstream, and --defer --target prod delegates to production artifacts to resolve missing dependencies. B separates run and test, which is prone to gaps. C does not execute anything. D uses +state:modified (parents-direction) and disables defer, which contradicts the intent.
Are there any mandatory prerequisites for taking the exam?
Prerequisites can change over time. Completing learning content such as dbt Fundamentals is generally recommended but is usually not required. Always check the latest requirements on the official page (https://www.getdbt.com/certifications/analytics-engineer-certification-exam).
What about validity periods and recertification?
Validity periods and recertification requirements (renewal exams, retake intervals, etc.) may be updated. A fixed period such as 24 months is common, but always verify the latest official policy.
What about fees, payment methods, and receipts?
Exam fees, currency, vouchers, and receipt availability follow the exam platform's terms. Organization-level purchases and bulk arrangements may also be available. Confirm the latest information when registering.
Practice with certification-focused question sets
無料で問題を解いてみるNicheeLab Editorial Team
NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.
dbt Models: SQL-Defined Transformation Units (2026)
Model fundamentals — SELECT-based definitions, naming, refs,...
dbt Analytics Engineering Exam: Complete Guide (2026)
Pass the AE Certification — scope, weighting, sample questio...
dbt Cloud vs dbt Core: Feature & Cost Comparison (2026)
Honest comparison of dbt Cloud vs. dbt Core — IDE, scheduler...
dbt Project Structure: models/seeds/macros Layout (2026)
Recommended dbt project layout — models, seeds, macros, snap...
dbt_project.yml Explained: Every Config (2026)
Every dbt_project.yml setting that matters — paths, vars, ma...