dbt【data build tool】
dbtとは?

企業が収集する販売履歴や顧客情報、アクセスログといったデータは、そのままでは分析に使いにくい場合が多い。表記の揺れの統一、複数テーブルの結合、不要な列の除外など、分析に適した形へ加工する作業が必要になる。従来はETLツールや手書きのSQLスクリプトで対応することが多く、処理の順序や依存関係の管理が煩雑になりがちであった。dbtはこうした変換処理をSQLで記述し、実行順序や依存関係をツール側が自動的に解決する。
dbtでは、変換後のテーブルやビューを「モデル」と呼ぶ。モデルはSELECT文で定義し、モデル間の依存関係を設定すれば、dbtが適切な順序でデータウェアハウス上に作成する。処理はdbtを動かすマシンではなく、BigQueryやSnowflake、Redshiftといったデータウェアハウス側で実行される。Jinjaテンプレートエンジンを採用しており、変数やマクロをSQLに組み込んで処理を再利用できる。
Gitなどのバージョン管理ツールとの連携も想定した設計になっており、変換ロジックをコードとして履歴管理できる。誰がいつ何を変更したかを追跡でき、チームでの共同作業にも向いている。加えて、重複データや欠損値、主キーの一意性などを自動検査するテスト機能も備え、データ品質の維持を支援する。ドキュメント生成機能もあり、データ定義をブラウザ上で参照できる形式で自動出力できる。
提供形態はコマンドラインで動作する無償のオープンソース版「dbt Core」と、GUI操作画面や実行管理機能を備えた有償のクラウドサービス「dbt Cloud」の2種類がある。クラウド型データウェアハウスの普及とともに、変換処理を後工程で行う「ELT」(Extract/Load/Transform)という考え方が広まり、dbtの採用も拡大した。