この記事はツクリンクアドベントカレンダー2023の14日目の記事になります!
はじめに
ツクリンクでは2023/12月現在で約8万社の顧客データを扱っており、今年から本格的な分析環境、データマートの構築に注力してきました。
データマート自体の改修だけでなく、運用するための構成についても様変わりしましたのでまとめてみようと思います。
初期の構成
初期の構成を簡単な図にしました。
基幹システムからのデータをためているBigQuery上のテーブルをデータウェアハウスとし、BigQuery内でデータマートの作成まで行っていました。
データマート作成用のSQLをBigQueryでスケジュール設定して登録するだけなので、非常にリーズナブルと言えるかと思います。
ただし、以下の不満点も見えてきました。
- 監視がほぼ人力
- その日のSQL実行がうまくいったかどうかを確認するには、BigQueryのWebページを確認する必要があります。もしかしたらgcloudコマンドとかでステータスを確認できるのかもしれませんが、そのためだけに環境を用意するのはちょっとやり過ぎている気がします。
- リリースも手作業
- せっかくgitでコード管理しているのに、リリースが手作業でした。masterブランチでgit pullするとリリースされるような仕組みが欲しくなりました。
Airflowを採用した構成
そもそもAirflowってなにかというと、ワークフロー管理ツールです。
詳しくはこちらにお任せします。
動作環境としてGCEを設置し、Airflowを導入しました。
Airflowで処理されるDAGではpython等のプログラミング言語で柔軟に処理を設定したり、様々なAPIと接続することができます。
今回はpyhtonで実行失敗時にSlackに通知が届くような処理を設定しました。
また、リリース作業はAirflowを稼働させているインスタンス内のmasterブランチでgit pullすればOKになるようにしました。
以下、簡単な図です。
実行失敗時には手作業でAirflowにアクセスし登録しているDAGの再実行が必要ではありますが、Airflow導入前よりもかなり自動化が進みました。
終わりに
データマートは日々使っていくことで成長するものです。
それは、データマートがどのようなデータを持つか、だけでなくその運用や構成にまで当てはまることだと思います。
現状を完成とは思わず、より良い形を目指していきたいと思います。