【ディービーティー】
dbt とは?
最終更新:
💡 SQLのモデルをつなぎ、変換をテスト・管理する
データ基盤上での変換処理をモデルとして管理し、テストやドキュメント生成を組み合わせるツール。SQLモデルを中心に、対応する環境ではPythonモデルも利用できる。
📌 このページのポイント
dbtってETLツールとは違うの?
中心になるのは、ELTのT、つまり取り込んだ後のデータ変換だよ。データ基盤上で、分析などに使うデータへ加工する。抽出や取り込みの道具と組み合わせて使うもので、dbtだけを置けば取り込みから全部完成するという意味ではないんだ。
テストって何をテストするの?
値がNULLでないか、重複していないか、参照する値が別のモデルにあるか、などを調べるデータテストがあるよ。YAMLなどで検査を定義し、dbt testで実行する。定義を書いた瞬間に検査が走るわけではないし、検査していない業務上の誤りまで全部防げるわけでもないんだ。
ドキュメントも自動で作れるの?
モデルや列の説明と、モデル間の関係を整理できるよ。ローカルではdbt docs generateでサイトを生成し、dbt docs serveで表示する。dbt v2の公式資料では、ホスト型のdbt platformで見る場合はCatalogを使うと説明されている。実行系や使う場所による違いも確認しよう。
dbt CloudとCoreって何が違うの?
以前のCloudとCoreだけで、今の利用形態すべてを説明するのは難しいね。現行資料はローカルのCLIと、開発やジョブの実行を支えるdbt platformを案内し、実行系もv1とv2に分けているよ。対応するデータ基盤や機能、運用方法を確認して選ぶ。
まとめ:ざっくりこれだけ覚えればOK!
「dbt」って出てきたら「SQLを中心にデータ変換をモデル化し、テストや説明も管理するツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「data build tool」 = データ構築ツール
💬 dbtはもともとdata build toolの略称として付けられた名前だよ
参考資料
- dbt Developer Hub: What is dbt? — framework, current versions and usage
- dbt Developer Hub: SQL models — definition, execution and configuration
- dbt Developer Hub: About ref function — references and execution graph
- dbt Developer Hub: Python models — supported platforms and execution
- dbt Developer Hub: Add data tests to your DAG
- dbt Developer Hub: About dbt docs commands — local documentation and platform Catalog
- dbt Labs: New era, new engine, and new names (2025)