dbt の analyses と models の使い分け
dbt の analyses と models の使い分け
経緯
一時的な調査用のクエリといったアドホックなクエリは、analyses
で管理していた。
analyses
のクエリの数が数百を超えて、analyses
の参照しているモデルを変更した際に対応するのが大変になった。
analyses
の参照しているモデルの変更- モデル名の変更
- カラムの追加
- 抽出条件の変更
ほとんど使われていないクエリを管理するのは大変なので、過去のクエリは削除した。
過去のクエリを調べたいときは、GitHub
で検索すれば良いので、困ることはなさそう。
analyses をどう扱うか
analyses
は、下記のようなメリットがあるので、一旦作成するのは OK とした。
ref
やmacro
などを使えて、BigQuery
で直接書くより楽にクエリをかける- プルリクエストを作成してレビュー依頼できる
analyses と models の使い分け
上記を踏まえて、今後の analyses
と models
の使い分け方法を決めました。
analyses
アドホックなクエリの管理。
- 一時的に調査/レビューなどを行いたいクエリ
- 一定期間経ったあとに
analyses
のクエリを今後使うか見直して、必要なかったら削除- 使わないけど、残しておきたい場合は、
BigQuery
に移す - 使う場合は、
models
に移す
- 使わないけど、残しておきたい場合は、
models
モニタリングなどで利用しているモデルの管理。
- 現在利用しているモデル
- モニタリングしているモデル
- モニタリングしているモデルが参照しているモデル
- 今後も利用しそうなモデル
staging
モデル- データクレンジングしたモデル
- スタースキーマ(
fct_*
,dim_*
モデル)- 今後モニタリングで使えそうな、ベースとして使えそうなモデル