dbt

dbt Analytics Engineer Exam: Scope, Scoring, and Registration Essentials

2026-04-19
NicheeLab Editorial Team

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).

Exam Overview and Policy Check

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.

  • Format: online proctored, multiple-choice (including case-based questions)
  • Scope: modeling, tests and documentation, operations (CI and production), incremental processing and snapshots, Jinja, macros, and packages
  • Product neutrality: centered on dbt Core, with Cloud-specific topics (Jobs, environments, Deferral, Artifacts) also in scope
  • Prerequisites: SQL and DWH fundamentals, Git/GitHub flow, and basic CLI usage
  • Always check the latest official requirements: https://www.getdbt.com/certifications/analytics-engineer-certification-exam
DomainKey topicsReal-world frequencyExam frequency
Modeling / DAGref/source, staging -> intermediate -> marts, materializations (view/table/incremental/ephemeral)HighHigh
Tests / Documentationschema and singular tests, source tests, the docs site, and exposuresHighHigh
Operations / CI and Productiondbt build, node selectors, state and deferral, jobs and scheduling, artifactsMedium-HighHigh
Incremental / Snapshotsunique_key, merge strategies, partitioning, snapshot strategiesMediumMedium-High
Macros / PackagesJinja, macros, variables, packages, dispatchMediumMedium

dbt development-to-production flow (conceptual diagram)

defer to prod artifactssourcesstaging (stg)intermediate (int)martstests & docsCI (PR) buildprod scheduled runs

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 prod

Detailed Exam Scope

Modeling 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.

  • Dependencies and naming conventions for ref() and source() (roles of stg, int, marts)
  • Selector syntax: + (include children/parents), @ (neighborhood selection), state:modified, tag:, source:, and more
  • Materializations: when to use view, table, incremental, or ephemeral
  • Tests: generic vs singular, source tests, and test selection (e.g., test_type:generic)
  • Documentation: model and column descriptions, docs generate, and the responsibility boundary of exposures
  • Operations: the scope of dbt build, --defer in CI, jobs and environments, and reading artifacts

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 safely

Scoring, Question Format, and Time Allocation

Score 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.

  • Common question stems: choose, most appropriate, minimum execution scope, avoid reprocessing
  • Discriminators: the boundary between dbt build and run/test, combining state with --defer, and the meaning of + and @
  • Answer DWH-dependent specifics based on the official Docs (watch for differences across Snowflake, BigQuery, and Redshift)
  • For design questions, work backwards from SLAs, observability, and future operational debt

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.orders

Registration, Exam Procedure, and Test Day Flow

To 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.

  • Check the latest requirements on the official exam page and run a system check ahead of time
  • Make sure your name on the ID matches the name on your account exactly
  • Before the exam, tidy up peripherals and background apps (disable notifications and sync tools)
  • Understand the rules for late arrivals, interruptions, and retakes ahead of time

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 deferral

Study Plan (2-4 Weeks) and Frequently Tested Points

Week 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.

  • Be able to clearly state what dbt build covers (seeds, models, snapshots, tests)
  • Understand the intent of state:modified and --defer (run a PR against the full production DAG)
  • Keep unique_key consistent with your test strategy (especially for incremental and snapshots)
  • The responsibility boundaries between schema.yml documentation and exposures
  • When each materialization fits, and the side effects of switching (including --full-refresh)

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]

Bridging Real-World Work and the Exam

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.

  • In CI, combine build with state/deferral to avoid unnecessary full recomputes
  • For incremental, make unique_key and the update boundary explicit. Understand the impact of full refresh
  • Use documentation and exposures to make dependencies and ownership visible, securing auditability and observability
  • Switch between separating run and test versus running them together via build, depending on the situation
  • Approach macros and packages with reuse and standardization in mind, starting with the smallest amount of customization

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.json

Check Your Understanding

Analytics 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.)

  1. A. dbt build --select state:modified+ --defer --target prod
  2. B. dbt run --select state:modified --defer --target prod && dbt test
  3. C. dbt compile --select state:modified+ --defer
  4. D. dbt build --select +state:modified --no-defer

正解: 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.

Frequently Asked Questions

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.

Check what you learned with practice questions

Practice with certification-focused question sets

無料で問題を解いてみる
Author

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.


Related articles
dbt

dbt Models: SQL-Defined Transformation Units (2026)

Model fundamentals — SELECT-based definitions, naming, refs,...

dbt

dbt Analytics Engineering Exam: Complete Guide (2026)

Pass the AE Certification — scope, weighting, sample questio...

dbt

dbt Cloud vs dbt Core: Feature & Cost Comparison (2026)

Honest comparison of dbt Cloud vs. dbt Core — IDE, scheduler...

dbt

dbt Project Structure: models/seeds/macros Layout (2026)

Recommended dbt project layout — models, seeds, macros, snap...

dbt

dbt_project.yml Explained: Every Config (2026)

Every dbt_project.yml setting that matters — paths, vars, ma...

Browse all dbt articles (101)
© 2026 NicheeLab All rights reserved.