Chapter 10

dbt向けPythonライブラリのご紹介

dbt-tokyo
dbt-tokyo
2023.02.03に更新
このチャプターの目次

written by: Ken

昨今、dbt向けの便利なPythonライブラリが数多く開発されていますが、それらを探し当てることはなかなか大変ですよね。そこでBI, DataOps, Doc/Test, Transformationの4カテゴリーに分けてご紹介したいと思います。

BI

ツール名 概要
looker-gen dbtからLookMLを生成する。
dbt2looker dbtモデルからLookerのViewファイルを生成する。
dbt-superset-lineage dbtドキュメントとApache Supersetの連携。
dbt-metabase dbtからMetabaseへのモデルの同期。
dbt-exposures-crawler BIツールからdbtのExposuresを自動生成する(今の所サポートしているのはTableauのみ)

DataOps

ツール名 概要
dbt-dry-run BigQueryのdry run機能を利用して、実行前にクエリが有効であるかどうかを確認することができる。
py-dbt-cloud dbt Cloud v2 API向けのPython SDK。
pre-commit-dbt dbtプロジェクトの品質を維持するためのpre-commitのリスト。CIツール利用前提。
dbtenv dbtのバージョン管理ツール。Pythonの仮想環境やMacのHomebrew、Linux等において複数バージョンのdbtを自動的にインストールし切り替えてくれる。
dbt-streamlit dbt CloudユーザーにAdmin権限を付与することなく、各ユーザーのJobに関する情報を共有することができる。
dbt-helper dbtプロジェクトの開発およびデータウェアハウス管理を支援するコマンドラインツール。
dbt-container-skeleton コンテナ化されたdbtの完全な開発環境をブートストラップする。
cookiecutter-dbt 本番環境レベルのdbtプロジェクトを素早く立ち上げてくれる(フレームワーク)。
artifactable dbtプロジェクトの通知サービス。指定したモデルを追跡し、異常時にアラートを受け取ることができる。
airflow-dbt-python dbtを操作するためのAirflow operatorとhookを集めたライブラリ。airflow-dbt-pythonを使用してdbt変換パイプラインをエンドツーエンドで実行できる。
airflow-dbt dbtとの統合を容易にするためにAirflow operatorを集めたもの。
fzf-dbt ターミナルから対話的にdbtのモデルを検索することができる。
Terraform-dbt Cloud Module Terraform経由でdbt CloudにIACを導入。

Doc/Test

ツール名 概要
dbterd manifest.jsonからDBMLファイルを生成するCLI
dbt-osmosis 4つの機能が含まれているツール。①YAML管理自動化(上流モデルの情報を下流モデルのYAMLに自動伝搬) ②dbt-power-user for VS Codeなどのツールと統合し、IDEからインタラクティブなクエリやリアルタイムコンパイルを可能にするdbtサーバー ③streamlitベースのワークベンチ ④モデルに対し動的に差分実行する
dbt-coverage dbt Docsとテストに不足がないかカバー率を算出してくれるCLIツール。
tap-dbt-artifacts Meltano SDKでビルドされたdbt Artifacts用のSinger Tap。
oliver-twist dbtのDAGを監査し、サマリレポートを生成するDAG監査ツール。
dbt-unit-test dbtモデルで再利用される可能性のあるあらゆるコードのテストケースを簡単に書けるようにするツール。
dbt-test-coverage dbtプロジェクトにおけるテストカバレッジを表示するためのCLIツール。
dbt-sugar カラムやモデルのドキュメント追加、テストカバレッジやタグの強制といったタスクをCLIから直接実行できるようにするツール。
Demeter REST API(GraphQLエンドポイントを含む)を提供し、dbtのMetricsにクエリを投げることができる。
dbt-invoke dbtのYAMLファイルを作成、更新、削除してくれるCLI。
dbt-yaml-check YAMLで定義されたカラムがSQLにも存在するかどうかをチェックしてくれる。
data-diff 2つの異なるデータベース間で効率的に行を差分取得するためのコマンドラインツールとPythonライブラリ。
dbtc dbt Cloudの様々なAPIエンドポイントへの非公式なPythonインターフェース
pytest-dbt-core dbt プロジェクトをテストするためのpytestプラグイン。
dbt-erdiagram-generator dbtプロジェクトからER図を生成する。

Transformation

ツール名 概要
turbovault4dbt datavaultのモデルを自動生成するツール。
dbt-generator ベースモデルの生成や一括変換を支援してくれる。
dbt-coves Redshift、Snowflake、BigQueryのスキーマを解析し、必要なファイル(sql、yml)を自動生成してくれる。Airbyteとの連携も。
dbt-ml-preprocessing SparkのmllibやPythonのscikit-learnのような外部ライブラリを使わずに、データウェアハウス内にFeature Storeを構築する。
dbt-feature-store dbtプロジェクト内でFeature Storeを構築するためのマクロ。

今回ご紹介するものは以上です。気になるものがありましたら、ぜひ試してみてくださいね。
また「ここに載っていないけれど、こんなのもあるよ!」というものがありましたら、ぜひdbt-tokyoの #local-tokyo チャンネルで教えてください!