dbtプロジェクトのカラムレベルリネージを生成する場合、無償版のdbt Coreでは生成機能が提供されておらず有償版のdbt Cloudやサードパーティー製品を使う必要があります。数あるサードパーティー製品のうち、「dbt-colibri」は無償かつオンプレ (リネージ生成用に別途クラウドサービスを使わない1) で生成できる特徴が魅力に感じたので本記事で紹介します。
dbt-colibriの特徴
dbt-colibriは次の特徴を備えており、有償製品・クラウドの利用が制限されている環境や手軽にリネージを確認・共有したいケースで特に有用です。
- 無償で利用可能なOSS (https://github.com/b-ned/dbt-colibri)
- オンプレでカラムレベルリネージを生成
- リネージの共有が簡単
リネージの生成には、dbtのコンパイル結果やDWH上に実体化されたテーブル・ビューから収集したメタデータのみを使用します。リネージ生成用に別途クラウドサービスを使うことはありません。
また、リネージはスタンドアロンのHTML形式で生成されるため共有も簡単です。次のリンクで公式のデモが公開されておりますので、お試しください。インタラクティブにモデル・カラムリネージや各モデルのメタデータ (モデルの種類、カラム一覧、ソースコードなど) を参照できます。
次の表は、カラムレベルリネージを生成するための製品をいくつかピックアップして比較しています。ほかの製品では有償だったりリネージ生成用途に別途クラウドサービスが必要だったりするので、それらの利用が難しい環境や手軽にリネージを確認したいケースではdbt-colibriが候補の1つになると思います。
| 製品 | dbt Labs公式 | リネージ生成用途のクラウドサービス未使用 | 無償 | 備考・製品URL |
|---|---|---|---|---|
| dbt Cloud | Yes | No | No | |
| dbt Fusion (β版) | Yes | Yes | Limited | 組織内のユーザ数が 15 人を超える場合は有償2 |
| dbt Power User | No | No | Yes | https://github.com/AltimateAI/vscode-dbt-power-user |
| dbt-colibri | No | Yes | Yes | https://github.com/b-ned/dbt-colibri |
dbt-colibriの使用方法
使用方法も簡単です。事前にdbtのモデルをDWH上に実体化したうえで、次の4コマンドを実行するとカラムレベルリネージを生成します。
# インストール
pip install dbt-colibri
# リネージ生成のためのメタデータ作成
dbt compile
dbt docs generate
# リネージ生成
colibri generate
生成先のパスはdbtプロジェクト下のdist/index.htmlになります。スタンドアロンのHTMLなので任意の場所に移動・複製してWebブラウザでの閲覧やほかの方への共有が可能です。
注意点として、事前にdbtのモデルをテーブルやビューとして実体化する必要があります。dbt docs generateコマンドがテーブル・ビューからメタデータを収集、ローカルに作成し、これをdbt-colibriが使用するためです。実体化していないモデルがあると、そのモデルのカラムリネージが欠落します。
仕様
2025年10月現在最新版のv0.2.7では、次のdbtアダプターをサポートしています。
- Snowflake
- BigQuery
- Redshift
- duckDB
- Postgres
- Databricks
- Athena
- Trino
生成したHTMLから次の情報をインタラクティブに確認できます。
- モデルリネージ
- カラムリネージ
- プレビュー段階ですが、各カラムの加工を「Pass Through (加工なし)」「Rename」「Transformation (式・関数による加工)」「Unknown (そのほか)」の4種類に分類して表示することも可能です
- モデルの種類 (ソース、テーブル、ビューなど)
- モデルのカラム一覧
- モデルのソースコードおよび、そのコンパイル結果
- モデルのdescriptionプロパティ
- など
例えばdbtモデル
SELECT
Col1
, Col2 AS Col2_renamed
, CASE WHEN Col1 = 0 THEN Col3 ELSE Col4 END AS Col5
FROM {{ ref('example_model1') }}
からは次のリネージが生成されます。
おわりに
本記事では、無償かつオンプレでdbtのカラムレベルリネージを生成可能なdbt-colibriを紹介しました。特に次のようなユースケースでは有力な選択肢となり得るので、リネージ生成方法検討やdbtのモデル読み込みの際の参考にしていただければ幸いです。
- セキュリティポリシーなどによりクラウドサービスの利用が制限されている環境
- リネージを無償・手軽に確認・共有したい場合
参考
dbt-colibri 公式ドキュメント
