【ディービーティー】

dbt とは?

💡 SQLを書ける人がデータエンジニアになれる魔法のツール
📌 このページのポイント
dbt - SQLだけでデータ変換パイプラインを構築 ELTの中でdbtが担当する範囲 E 抽出 L 読込 T 変換(dbtの領域) SELECT文でモデルを定義するだけ モデル定義 SELECT文 = テーブル ref()で依存関係を記述 Jinja テンプレート対応 .sql ファイル テスト NOT NULL チェック ユニーク制約 カスタムテスト .yml ファイル ドキュメント DAG可視化 カラム説明 自動生成Webサイト dbt docs generate
dbtのELTにおける位置づけと主要機能
ひよこ ひよこ

dbtってETLツールとは違うの?

ペンギン先生 ペンギン先生

dbtはELTの「T」だけを担当するツールだよ。データの抽出(E)と読み込み(L)は別のツールに任せて、ウェアハウスに入った後の変換処理に集中するんだ

ひよこ ひよこ

なんでSQLだけでいいの?Pythonは使わないの?

ペンギン先生 ペンギン先生

dbtの哲学は「SQLを書ける人なら誰でもデータパイプラインを作れる」ということなんだ。SELECT文を書くだけでテーブルビューが自動で作られるから、Pythonが書けないアナリストでも活躍できるよ

ひよこ ひよこ

テストって何をテストするの?

ペンギン先生 ペンギン先生

たとえば「このカラムにNULLがないか」「値がユニークか」「外部キーが参照先に存在するか」みたいなデータ品質のチェックだよ。YAMLで定義するだけで自動実行されるから超便利なんだ

ひよこ ひよこ

ドキュメントも自動で作れるの?

ペンギン先生 ペンギン先生

そう、dbt docsコマンドを実行すると、モデル間の依存関係をDAGで可視化したWebサイトが自動生成されるよ。カラムの説明をYAMLに書いておけばそれも反映されるんだ

ひよこ ひよこ

dbt CloudとCoreって何が違うの?

ペンギン先生 ペンギン先生

dbt CoreはオープンソースのCLIツールで無料だよ。dbt Cloudはそれに加えてWeb IDE、ジョブスケジューラ、CI/CD機能がついたSaaS版だね。チームで使うならCloudが便利だけど、個人やCI/CDを自前で組める組織ならCoreで十分だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「dbt」って出てきたら「SQLでデータ変換パイプラインを作るツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「data build tool」 = データ構築ツール
💬 ソフトウェアのビルドツールのように、データ変換もビルドするという考え方から生まれた名前だよ
← 用語集にもどる