The dbt Analytics Engineer certification measures whether you understand the full transformation lifecycle — SQL and data modeling at its core, extended with testing, documentation, and deployment.
This article maps the skill range and study-time estimates required to pass, grounded in concepts that are stable in the official documentation and structured as a plan you can run alongside day-to-day work.
dbt is not an "ETL tool" but a framework that runs SQL on a DWH and manages, tests, and documents the dependencies between models (tables/views). The certification assumes you have been writing this code, so people who work with SELECT/CTE and schema design daily will find it intermediate in difficulty.
On the other hand, if your SQL is beginner-level or you are unfamiliar with Git, Jinja, or DWH execution characteristics, it takes time to grasp what each question is really asking. This is not an exam you can pass by memorizing past questions — it evaluates whether you understand the principles that match the official documentation (ref/source, the role of tests, the assumptions behind incremental models, when to use snapshots, etc.).
What appears consistently on the exam is dbt's core APIs and operational principles. Beyond SQL, make sure you understand Jinja templating, defining tests and documentation, managing changes via Git, and the execution characteristics of the underlying DWH (cost, parallelism, permissions, schemas).
Rather than memorizing cloud- or DWH-specific commands, what gets tested is the dbt abstractions (models, sources, seeds, snapshots, macros, packages, ref/source/var/target, docs, lineage) and the criteria for choosing between them.
Stable areas that align with the official documentation include modeling, testing, documentation, source management, macros/Jinja, snapshots, incremental updates, package usage, selection syntax, and understanding environments and lineage.
Rather than memorizing individual features, what matters is being able to explain "which one would you choose" for a given use case. The table below summarizes representative tasks and how much study weight each domain deserves.
| Domain | Representative Tasks | Study Weight / Difficulty |
|---|---|---|
| Modeling / DAG | Layering stg/int/mart and managing dependencies via ref | High / Medium |
| Testing / Quality | unique/not_null/relationships and custom generic tests | High / Medium |
| Materialization | Choosing between view/table/incremental/ephemeral | Medium / Medium |
| Source Management | Defining sources, freshness, and applying seeds | Medium / Low-Medium |
| Change Management / CI | Git branches, state:modified selection, running dbt run + test on PRs | Medium / Medium |
| Snapshots | Capturing SCD-style change history | Medium / Medium |
If you have 1+ years of SQL experience and have used dbt: plan for 2-4 weeks (20-35 hours). Focus on practicing quality features (tests/docs) and materialization choices in your own repo and you will be in good shape.
If you know SQL but are shaky on dbt/Jinja/Git: plan for 4-6 weeks (40-60 hours). Work through the tutorials hands-on, build out snapshots, incremental models, and packages end-to-end, then move on to mock practice.
SQL beginners: plan for 8-10 weeks (80-100 hours). Spend the first half strengthening SQL and DWH fundamentals, and the second half progressing from dbt basics through full practice exercises.
The shortcut to combining exam prep with production work is keeping a clear staging -> intermediate -> marts layering and reducing dependencies at domain boundaries. Use selection syntax (--select state:modified+) so CI can safely run only the changed diff.
For environment separation (dev/staging/prod), use target in your schema and database names, deploying each PR to an isolated schema to make reviews easy.
dbt layering and CI execution flow (conceptual diagram)
Make your mock practice a "choose the approach from the requirement" format. If you need history tracking, snapshot; for low-latency dashboards, incremental + stronger tests; for ingesting external CSVs, seed. Check whether you can verbalize why you chose each approach.
On exam day, build the habit of first extracting the conditions in the question (update pattern, data freshness, dependency and recomputation cost, auditability), then mapping them to the lowest-cost dbt abstraction.
Small exercise: incremental model with tests and documentation
-- models/mart/orders_daily.sql
{{
config(
materialized='incremental',
unique_key='order_id',
on_schema_change='sync_all_columns'
)
}}
with src as (
select * from {{ source('sales', 'orders') }}
{% if is_incremental() %}
where updated_at > (select coalesce(max(updated_at), '1900-01-01') from {{ this }})
{% endif %}
)
select
order_id,
customer_id,
order_date::date as order_date,
total_amount,
updated_at
from src;
-- models/mart/_orders.yml
version: 2
models:
- name: orders_daily
description: 日次の受注スナップショット相当を増分で維持
columns:
- name: order_id
tests:
- not_null
- unique
- name: customer_id
tests:
- not_null
tests:
- dbt_utils.expression_is_true:
expression: "total_amount >= 0"
meta:
owner: analytics
Analytics Engineer
問題 1
An orders table has past rows updated in place. You want to retain history so you can audit when and how each column changed. Which dbt approach is most appropriate?
正解: A
When the requirement is to retain history of in-place updates and make it auditable, dbt's snapshot is the right fit. By setting a unique key and an update-tracking strategy, change diffs are managed automatically. Incremental is suited to maintaining the latest aggregated results, but for fully preserving and auditing column-level history, snapshot is the match.
Can I prepare for the exam using only dbt Core?
Yes. Using the CLI, you can build models, tests, docs, and snapshots end-to-end, and verify state selection and materialization behavior. dbt Cloud-specific features are convenient, but the core of the exam is dbt's abstractions and principles.
Do I need knowledge specific to a particular DWH (Snowflake/BigQuery/Redshift)?
The focus is on dbt's abstractions. That said, understanding the target DWH's SQL dialect and execution characteristics (permissions, cost, parallelism) helps with decision-making. It is safer to prioritize concepts that are stable in the official documentation over features that depend heavily on a specific platform.
Can I pass without hands-on experience?
It is possible with careful practice, but we recommend building a realistic mock repository and running dbt build (run+test+docs) through PR-based workflows. Practicing how to choose the right approach for each use case dramatically increases your pass rate.
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...