hene

hene.dev

dbt の analyses と models の使い分け

dbt の analyses と models の使い分け

経緯

一時的な調査用のクエリといったアドホックなクエリは、analyses で管理していた。 analyses のクエリの数が数百を超えて、analyses の参照しているモデルを変更した際に対応するのが大変になった。

  • analyses の参照しているモデルの変更
    • モデル名の変更
    • カラムの追加
    • 抽出条件の変更

ほとんど使われていないクエリを管理するのは大変なので、過去のクエリは削除した。 過去のクエリを調べたいときは、GitHub で検索すれば良いので、困ることはなさそう。

analyses をどう扱うか

analyses は、下記のようなメリットがあるので、一旦作成するのは OK とした。

  • refmacro などを使えて、BigQuery で直接書くより楽にクエリをかける
  • プルリクエストを作成してレビュー依頼できる

analyses と models の使い分け

上記を踏まえて、今後の analysesmodels の使い分け方法を決めました。

analyses

アドホックなクエリの管理。

  • 一時的に調査/レビューなどを行いたいクエリ
  • 一定期間経ったあとに analyses のクエリを今後使うか見直して、必要なかったら削除
    • 使わないけど、残しておきたい場合は、BigQuery に移す
    • 使う場合は、models に移す

models

モニタリングなどで利用しているモデルの管理。

  • 現在利用しているモデル
    • モニタリングしているモデル
    • モニタリングしているモデルが参照しているモデル
  • 今後も利用しそうなモデル
    • staging モデル
      • データクレンジングしたモデル
    • スタースキーマ(fct_*, dim_* モデル)
      • 今後モニタリングで使えそうな、ベースとして使えそうなモデル

参考

関連記事