本記事は、NicheeLabの視点でdbt Analytics Engineer試験を「出題範囲・配点・申込」の3点から整理し、受験対策と実務スキル定着を同時に進めるための現実的な勉強法を示します。
最新の試験仕様・ルールは変更される場合があります。必ず公式ドキュメントと試験ページを確認してください:dbt Docs(https://docs.getdbt.com/)、認定試験ページ(https://www.getdbt.com/certifications/analytics-engineer-certification-exam)
dbt Analytics Engineer 試験は、dbt Core/Cloud の概念、モデリング、テスト、ドキュメント、運用(CI/本番運用)を横断的に問うシナリオ型の多肢選択問題が中心です。出題はコマンド挙動、選択記法、マテリアライゼーション、ソース管理、テスト戦略など、実務での意思決定に紐づきます。
所要時間、出題数、合格基準、受験料、再受験ポリシー、有効期限などは変更される可能性があるため、必ず公式の試験ページで最新を確認してください。多くの受験者が、dbt Fundamentals等の学習コンテンツを修了後に受験していますが、必須要件は時期により異なる場合があります。
対象者は、DWH/レイクハウス上でのELTモデリングや、Git/CIと連携したdbt運用に日常的に関わるアナリティクスエンジニア、データアナリスト、データエンジニアです。
| ドメイン | 主要トピック | 実務頻度 | 試験頻出の目安 |
|---|---|---|---|
| モデリング/DAG | ref/source、ステージング→中間→マート、マテリアライゼーション(view/table/incremental/ephemeral) | 高 | 高 |
| テスト/ドキュメント | schema/singularテスト、ソーステスト、ドキュメントサイト、exposures | 高 | 高 |
| 運用/CI・本番 | dbt build、選択記法、state/deferral、ジョブ/スケジューリング、アーティファクト | 中〜高 | 高 |
| 増分/スナップショット | unique_key、merge戦略、パーティション、スナップショット戦略 | 中 | 中〜高 |
| マクロ/パッケージ | Jinja、マクロ、variables、packages、dispatch | 中 | 中 |
dbt開発〜本番の流れ(概念図)
全体でよく使うdbtコマンド(挙動イメージ)
dbt deps # パッケージ取得
dbt seed # CSVからseedテーブル作成
dbt run # モデルを実行(テストは含まない)
dbt test # テストのみ実行
dbt build # seeds/models/snapshotsとテストを一括実行
# PR CIでの一例(mainの成果物へdefer)
dbt build --select state:modified+ --defer --target prodモデリングは、ref/sourceの正しい使い分け、ステージング・中間・マートの三層構成、マテリアライゼーション選択(view/table/incremental/ephemeral)が軸です。DAGの依存解決と選択記法(+、@、tag:、config:、state:)の組合せも頻出です。
テストはschema.ymlのgeneric(not_null/unique/relationships/accepted_values等)とsingular(SQLカスタム)を区別できること、ドキュメント(モデル記述、カラム記述、docs generate/serve、exposures)も実務観点から問われます。
運用では、dbt buildの意味、state比較とdeferralの活用、PR CIの最小実行、ジョブ/スケジュール、アーティファクト(manifest/run_results)の用途が焦点です。増分はunique_keyとmerge戦略、パーティション境界、完全再計算の切替(--full-refresh)と副作用を理解しておくと安全です。
増分モデルの典型構成(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 %}
-- ポイント:
-- unique_keyはテスト(unique/not_null)と整合させる
-- フルリフレッシュ時は --full-refresh を明示して安全に切替配点の内訳や合格基準は時期により更新されます。一般的には、モデリング/テスト/運用が大きめの比重を占め、増分/スナップショット、マクロ/パッケージがそれに続く構成が多いです。公式の配点表が提示されている場合はそれを最優先してください。
問題形式は、設計判断を問うシナリオ(どのマテリアライゼーション/コマンドを選ぶか)、挙動の正誤(選択記法、state/deferral、テスト実行範囲)など。時間配分は、1問にかける時間を一定化し、長文シナリオは設計制約(DWH、SLA、再計算可否)を先にマークして選択肢をふるいにかけます。
減点なしの多肢選択であれば、迷ったら捨てずにマーク。見直し時間を最後に5〜10分確保するのが無難です。
選択範囲指定の実務的パターン
# 変更点と下流をCIで検証(本番にdefer)
dbt build --select state:modified+ --defer --target prod
# 特定タグ配下のモデルとそのテストのみ
dbt build --select tag:finance --resource-type model
# 失敗したテストに関連するノードを再実行
dbt build --select result:error
# 近傍選択(@)で周辺ノードも対象に
dbt build --select @marts.orders申込は、dbtの認定サイトからアカウントを作成し、受験スケジュールを選択します。受験料、受験ウィンドウ、身分証明要件、動作環境チェック、再受験ポリシーは申込フロー内で明示されます。
当日は、静かな個室、安定したネットワーク、Webカメラ/マイク等の要件を満たし、受験プラットフォームの指示に従います。持ち込み可否(ノート、外部モニタ等)はプラットフォーム規約に準拠してください。
変更やキャンセル、再受験の待機期間、回数制限、有効期限・更新要件は公式ページの規定に従います。組織受験やバウチャー支払い、領収書の発行可否も同様に確認してください。
受験準備チェックリスト(例)
- アカウント作成・支払い完了
- 受験日時をカレンダー登録、30分前リマインダ
- システムチェック(ネット/カメラ/マイク)
- 公式要項の最終確認(身分証・規約・再受験)
- 試験直前は選択記法/state・deferralの要点を見直しWeek1は公式チュートリアルでエンドツーエンドに通し、ref/source、三層構成、schemaテスト、docsの基本を押さえます。CIではdbt buildの範囲とrun/testの違いを体感します。
Week2は増分・スナップショット、state/deferral、選択記法の組み合わせを重点的に演習。PR CIで「変更点+下流」の最小実行と、本番アーティファクトへのdeferを再現します。
Week3〜4は模擬シナリオを自作し、設計選択(マテリアライゼーション、キー設計、再計算戦略)を言語化。公式Docsで不明点を潰し込み、弱点領域を反復。
schema.yml の例(テストとドキュメント、exposure)
version: 2
models:
- name: fct_orders
description: 受注ファクト。注文の粒度は1行=1注文
columns:
- name: order_id
description: 受注ID(ユニーク)
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]実務では、PRでの最小実行、失敗時の原因切り分け、アーティファクトの参照(run_results/manifest)、本番の安定性を損なわない再計算戦略が鍵です。試験でも同様の意思決定が問われます。
選択肢のトラップは、便利そうでも再処理コストやSLAを無視したアプローチ、DAGや選択記法の解釈ミス、テストとマテリアライゼーションの不整合など。常に「最小変更で検証し、安全に本番へ」と考えると誤答を避けやすくなります。
dbt Cloud Jobの典型設定(抜粋イメージ)
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
PRで変更されたモデルとその下流を最小限に検証し、本番の成果物にdeferして欠けている依存を補いたい。最も適切なコマンドはどれか。(stateは適切に指定済みとする)
正解: A
CIでは seeds/models/snapshots とテストを一括で検証できる dbt build が適切。state:modified+ は変更ノードとその下流を対象にし、--defer --target prod で本番アーティファクトに委譲して不足依存を解決する運用が推奨される。Bはrunとtestの分離で漏れが生じやすく、Cは実行されない。Dは親方向の+指定かつdefer無効で意図に反する。
受験の必須前提条件はありますか?
時期により異なる場合があります。一般にはdbt Fundamentals等の学習コンテンツ修了が推奨ですが必須ではないことが多いです。最新の受験要項は公式ページ(https://www.getdbt.com/certifications/analytics-engineer-certification-exam)で確認してください。
有効期限や再認定はどうなりますか?
有効期限や再認定要件(更新試験や再受験の間隔など)は更新される可能性があります。一般的に一定期間(例:24か月など)が設けられるケースが多いですが、必ず公式の最新ポリシーを確認してください。
費用・支払い方法・領収書の発行は?
受験料や通貨、バウチャー、領収書の発行可否は試験プラットフォームの提供情報に従います。組織購入や複数名分の手配も可能な場合があります。申込時に最新情報を確認してください。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
dbt Model の基礎: SQL で定義する変換の最小単位
Analytics Engineer 向けに、dbt Model の定義、マテリアライゼーション、依存関係、インクリメン...
dbt Cloud と dbt Core の違いと選び方:Analytics Engineer 試験に効く要点
dbt Cloud と dbt Core の機能差を、実務と資格対策の両面から整理。スケジューリング、IDE、RBAC、...
dbt プロジェクト構造ガイド: models / seeds / macros の実務レイアウト
Analytics Engineer 向けに、dbt プロジェクトのディレクトリ構造と命名規約、dbt_project....
dbt_project.yml の読み方:主要設定と命名を最短で掴む
dbt_project.yml の必須キー、命名解決(database.schema.identifier)、設定優先度...
dbt profiles.yml と接続管理:環境別のベストプラクティス
dbt Core/Cloud で profiles.yml を用いて dev/stg/prod など環境別に接続を切り替...