Why does it exist?
前回に引き続き、dbt記事の第2弾。
Why does it exist?の記事を要約+和訳する。
1. Analytics code should be version controlled
The Before Times
データサイエンティストは、クエリを個人のマシンに保存するか、せいぜいストアドプロシージャとしてリポジトリにチェックするだけ。
Today
分析コードを共有のgitリポジトリで共同作業しています。お互いのコード変更をレビューし、本番環境にマージする前に品質テストを行う。
2. Analytics code should have quality assurance
The Before Times
またデータ変換の処理に関するテストが不足していたため、データパイプラインの作成・保守を行う際問題がしばしば生じた。
Today
dbtテストを導入するため、バグの発生を事前に検知することができるようになった。
3. Analytics code should be modular
The Before Times
データ分析を行う人々が指標やフィルタリングなど各々の基準で定義づけを行なっていた。コーデの共有が難しい状況。
Today
統一されたコードベースで作業を行う。一つのモデルが複数のモデルのベースとなる。SQLに加えてJinjaのようなテンプレート言語を使用することでよりモジュール化されたSQLを利用することができる。
4. Analytics should use environments
The Before Times
アナリストは本番環境を利用してテストを行なっていた。そのため本番環境が壊れないように祈ることが往々にしてあった。
Today
本番環境・開発環境を切り替えることで、変更や追加を開発・テスト・レビューを行える。また本番環境にコミットする前に変更結果の内容を確認できるため安全な運用が可能になる。
5. Analytics code should be designed for maintainability
The Before Times
新しいデータの追加で既存のデータモデルが壊れることがある。また通知機能を設定していなければ、アラートもなることがない。
Today
モジュール化されていくことで、データソースを追加した際、単体かつ個別に切り分けて結果を確認することができる。
まとめ
dbtを通じて、コードのバージョン管理・テストの逐次実行・モジュールとして切り分けることで管理が容易になると言った利点がありそう。