ふくふくHukuhuku Inc.
SERIES

dbt ハンドブック:入門から本番運用まで

「変換は SQL + Git で書く」を実現する dbt を、最初の dbt run から、incremental・テスト・パッケージ・dbt Mesh・semantic layer まで体系的に。受託案件で繰り返し使ってきた現場ノウハウ込みで。

対象読者: データエンジニア / アナリティクスエンジニア / DWH 担当
シェア
15 記事
01EP.1 10分

dbt とは何か:「SQL + Git で変換を書く」が変えたもの

dbt は ELT の T (Transform) を、生 SQL + Jinja + バージョン管理で書く仕組み。BigQuery / Snowflake 等の DWH 上で動く。なぜこれが革命的だったのか、何が解決され、何が新たな課題になったかを 10 分で。

2026-05-10読む
02EP.2 11分

dbt Core vs dbt Cloud と環境セットアップ:どちらを選び、どう動かすか

dbt Core (OSS、無料、自前運用) と dbt Cloud (SaaS、有料、IDE/スケジューラ込み)。判断軸と、ローカルでの初回セットアップ手順を BigQuery / Snowflake で。

2026-05-10読む
03EP.3 12分

プロジェクト構造と最初の dbt run:staging → marts のレイヤを組む

dbt の標準プロジェクトレイアウト (staging / intermediate / marts) と命名規則。生データ → 整形 → 集計 の3層を実例で組み、初回 `dbt run` までを通す。

2026-05-10読む
04EP.4 10分

ref() と source() で依存関係を組む:dbt の核心

dbt の `ref()` `source()` は単なるテーブル参照ではなく、依存グラフを宣言する仕組み。これを正しく使うと環境切替・並列実行・lineage が自動で手に入る。具体例と落とし穴を整理。

2026-05-10読む
05EP.5 10分

materialization 4種の使い分け:view / table / incremental / ephemeral

model がどう DWH に物理化されるかを決める materialization。性能・コスト・鮮度のバランスで選ぶ判断軸。incremental は EP.11 で深掘り、本記事は 4 種の比較。

2026-05-10読む
06EP.6 12分

テストの書き方:4つの組込み + generic test + singular test

dbt の組込みテスト 4 種 (unique / not_null / accepted_values / relationships) と、自分で書く generic test / singular test の使い分け。CI で必ずブロックすべきテストの設計指針。

2026-05-10読む
07EP.7 9分

ドキュメント生成:schema.yml と dbt docs を本気で書く

dbt docs は 自動 lineage と model/カラム説明を 1 つの web UI にまとめる。description を真面目に書くと「これ何のテーブル?」問い合わせが激減する。書き方のコツと CI 必須化の手順。

2026-05-10読む
08EP.8 11分

macros:Jinja で SQL を再利用する

同じパターンの SQL を10個書きそうになったら macro を書こう。Jinja の基本構文と、現場で繰り返し作る代表的な macro 5 つ (PII マスキング / 期間集計 / pivot 等) を整理。

2026-05-10読む
09EP.9 10分

packages:dbt_utils と dbt-expectations を使い倒す

dbt_utils は標準装備したい SQL ヘルパー集、dbt-expectations は Great Expectations 風の検証群。よく使う関数を 15 個ピックアップして実例で。

2026-05-10読む
10EP.10 10分

seeds と snapshots:静的データと SCD Type 2

seeds は CSV を DWH にロードする仕組み (国コード等の小規模マスタに最適)。snapshots は変更履歴を残す SCD Type 2 を 1 設定で実現する強力機能。両者の使い分けと落とし穴。

2026-05-10読む
11EP.11 13分

incremental models:大規模ログの差分更新パターン

テーブルが 1 億行を超えると table materialization では時間とコストが破綻する。incremental の 4 つの戦略 (append / merge / delete+insert / insert_overwrite) と、各 DWH での違い。

2026-05-10読む
12EP.12 12分

CI/CD:Slim CI で安全にデプロイ、PR ごとに差分を検証

「PR で変更した model だけビルドしてテストして、本番に影響しない隔離スキーマで実行」を実現する Slim CI。GitHub Actions と dbt Cloud の両方で構築する手順。

2026-05-10読む
13EP.13 11分

dbt Mesh:大規模組織でプロジェクトを分割し、再利用する

model 数が 数千を超える組織で、1 つの dbt プロジェクトでは限界が来る。dbt Mesh はプロジェクト間で model を「公開・参照」する仕組み。Group / Access / Versioning の使い方。

2026-05-10読む
14EP.14📔 Colab 12分

Semantic Layer / Metrics:指標の正本管理で「数字の食い違い」をなくす

「営業の言う売上」と「経理の言う売上」が違う問題を構造的に解く。dbt の Semantic Layer + MetricFlow で metric を 1 ヶ所に定義、Looker / Tableau / Slack Bot から同じ定義で参照する設計。

2026-05-10読む
15EP.15 13分

アンチパターン10選:現場で本当に困る dbt の落とし穴

受託案件で繰り返し見てきた失敗 10 個。「全モデル table」「dbt おじさん化」「テスト 0 個」「source 直参照」「macro 過剰」など。それぞれの再現状況・気づくシグナル・処方箋を。

2026-05-10読む

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp