dbt Analytics Engineer 認定は、モデリング設計、テスト戦略、Jinja/マクロ、依存関係の制御、そして dbt Cloud/CI 運用までを横断的に問います。合格だけでなく、実務での再現性を重視した学習計画が必要です。
本ガイドは、公式ドキュメントと dbt Learn を軸に、Snowflake/BigQuery/Databricks いずれでも再現できる最小構成のハンズオンを提示します。前提知識は SQL と基本的なデータモデリングです。
まずは公式シラバスの確認から始めます。dbt Labs の認定ページでは、出題ドメインと学習リソースの方向性が明示されています。数や配点は更新される可能性があるため、最新の試験範囲を参照してください。
安定して問われるトピックは、モデルのマテリアライゼーション、ソース管理、テスト(singular/schema)、スナップショット、Jinja/マクロ、セレクタと依存関係、ドキュメント化(docs generate/exposures)、および dbt Cloud のジョブ・環境・認証です。
学習の軸は、リファレンス(仕様)とチュートリアル(手順)の二層です。仕様は正確さ、チュートリアルは実装の手触りを補完します。両方を往復し、用語とコマンドの定義に常に立ち戻るのが近道です。
ドキュメントでは、materializations、tests、snapshots、selection syntax、adapter 特有の制約など、バージョンに依存しづらい概念を優先的に読み込みます。dbt Learn は Fundamentals を完走し、余力があればアドバンスドのセクション(マクロやパッケージ)へ進みます。
ベースとなる演習プロジェクトを一つ作り、同一の論理構成を任意の DWH(Snowflake/BigQuery/Databricks)で再現できるように設計します。スコープは staging → intermediate → marts の三層とし、sources、tests、snapshots、docs、selectors を必ず含めます。
CI/ジョブ運用はローカルから開始し、可能なら dbt Cloud に移行してパイプラインを再現します。初回はサンプル CSV(seed) と小さな実データを混在させると、依存関係と差分ビルドの癖を一度に体験できます。
| 観点 | 公式ドキュメント/リファレンス | dbt Learn(Fundamentals) | 実機ハンズオン |
|---|---|---|---|
| 目的 | 仕様の正確な理解と用語の統一 | 手順の流れを短時間で掴む | エラー処理・依存関係・実行時間の体感 |
| 進め方 | 機能→制約→例→注意点の順で精読 | 章末課題を必ず動かす | 小さく作り、差分を作ってビルドを繰り返す |
| 試験対応 | 用語定義・フラグ・セレクタの正答率が上がる | 手順問題・ベストプラクティスに強い | ケース問題・運用判断に強い |
| メリット | バージョンに強い知識が残る | 短時間で完走しやすい | 実務移行が最短 |
| 注意点 | 抽象的に感じることがある | 環境差異が出にくい | 環境構築に時間がかかる |
最小構成の dbt プロジェクト依存関係
モデルはマテリアライゼーションの選択(view/table/incremental/ephemeral)とスキーマ戦略(dev スキーマ分離、target 名称)をまず固めます。incremental はユニークキーと差分条件、スキーマ変更時の挙動を明示するのが安全です。
テストは schema.yml 中心に、not_null/unique/relationships を最初に配置します。singular テストは複雑なビジネスロジックに限定し、まずは標準テストで土台を作るのが合格最短です。
incremental モデルとテスト/snapshot の最小例
-- models/marts/fct_orders.sql
{{ config(
materialized='incremental',
unique_key='order_id',
incremental_strategy='merge',
on_schema_change='append_new_columns'
) }}
with src as (
select * from {{ ref('int_orders_enriched') }}
{% if is_incremental() %}
where updated_at > (select coalesce(max(updated_at), '1970-01-01') from {{ this }})
{% endif %}
)
select
order_id,
customer_id,
total_amount,
updated_at
from src;
# models/marts/schema.yml
version: 2
models:
- name: fct_orders
description: 受注のファクトテーブル。増分は updated_at で評価。
columns:
- name: order_id
tests: [not_null, unique]
- name: customer_id
tests:
- relationships:
to: ref('dim_customers')
field: customer_id
# snapshots/customers.sql
{% snapshot customers_snapshot %}
{{ config(
target_schema=target.schema,
unique_key='customer_id',
strategy='timestamp',
updated_at='updated_at'
) }}
select * from {{ source('src', 'customers') }}
{% endsnapshot %}本番を想定した差分実行では、selectors(state:modified、resource_type:...、tags、+ 依存)を組み合わせて、最小単位のビルドを行います。state 比較には直近の manifest.json を --state で渡す必要があります。
dbt build は run/test/docs/seed/snapshot の一貫実行を扱えます。合格の鍵は、どの場合に build を使い、どの単位で run や test を分割するかを文脈で判断できることです。
模試は自作で十分です。仕様の空欄補充(コマンド/フラグ/セレクタ)、ベストプラクティスの○×、ケース型の手順選択(どの順に run/test/docs を打つか)を混在させて作り、誤答の根拠を全て docs に戻して検証します。
当日は環境差異の知識に依存しすぎないのが安全です。アダプタ差異(例: 一部の incremental オプション)は存在しますが、試験は概念と dbt の標準 API に基づく判断が中心です。
Analytics Engineer
問題 1
差分ビルドを最小化したい。直前実行の manifest.json が artifacts/ にあり、変更済みノードとその下流のみを安全に再実行したい。適切なコマンドはどれか?
正解: A
state 比較には --state で前回のアーティファクトを指定し、変更ノードと下流を含めるには state:modified+ を使います。state は build/run/test いずれでも利用可能ですが、依存を含む一貫実行には build が適しています。
dbt Cloud を使わずに合格できますか?
可能です。ローカルの dbt Core と DWH の開発権限があれば、出題範囲の大半をカバーできます。Cloud 固有の UI 操作は頻出ではなく、概念(環境/ジョブ/認証/アーティファクト)の理解があれば対応可能です。
Snowflake/BigQuery/Databricks のどれで学ぶのが良いですか?
社内・個人で用意しやすいものを選べば十分です。学習内容は adapter 非依存の概念が中心です。incremental 戦略や権限周りに差異はありますが、最初は汎用的な設定(merge、unique_key、on_schema_change)を使い、公式ドキュメントで差分を確認してください。
マクロやパッケージはどの深さまで必要ですか?
試験では、Jinja の基本文法、ref/source、config、変数、シンプルなマクロの定義・呼び出し、packages.yml の導入とバージョン管理の理解が求められます。高度なメタプログラミングは優先度が下がるため、まずは基本 API の正確さを重視しましょう。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
dbt Model の基礎: SQL で定義する変換の最小単位
Analytics Engineer 向けに、dbt Model の定義、マテリアライゼーション、依存関係、インクリメン...
dbt Analytics Engineer 試験ガイド: 出題範囲・配点・申込の実務視点
dbt Analytics Engineer 認定の出題範囲、配点の考え方、申込から受験までの流れを、公式ドキュメントの...
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)、設定優先度...