はじめに
この記事では、Google Analytics 4 と BigQuery を連携させる方法で設定した GA4 の Bigquery エクスポートデータから dbt でデータウェアハウスを作成する際の Tips を紹介します。
DWH 設計
フラット化
GA4 の Bigquery エクスポートデータはネストされたフィールドを持つため、まずは分析効率向上のためフラット化から考えることをお勧めします。
GDPR 対応
GA4 を使用して EU からのデータを分析する場合、一般的には欧州連合の一般データ保護規則(General Data Protection Regulation、GDPR)が適用されるため、対応していない場合は適用除外されるよう日本国内のデータに絞って DWH を作成することをお勧めします。
dbt による DWH の更新
定期実行方法
dbt を定期的に自動実行することで、DWH のデータを最新の状態に保つことができます。具体的な定期実行の方法として、Google Cloud の Cloud Run Jobs を利用する方法をCloud Run Jobs で dbt を定期実行する方法で紹介しているのでそちらが参考になるかと思います。
DWH のデータ更新時のコスト削減
dbt で DWH の更新を行う際、Materialization 設定に'Table'や'View'を選択してしまうと、全データを毎回参照・更新するため、BigQuery のクエリコストや dbt の実行時間が無駄になる可能性があります。この問題を解消するために、'incremental'設定と組み合わせて特定期間分のデータのみを更新するように設定することができます。以下は'incremental'モデルを設定し、過去 7 日間のデータのみを対象にする記述方法のサンプル sql モデルです。
まとめ
この記事では、GA4 の Bigquery エクスポートデータから dbt でデータウェアハウスを作成する際の Tips を紹介しました。基本的には GA4 のネストフィールドのフラット化、dbt の定期実行、そして過去の特定期間分のデータのみを更新する設定により、効率的なデータウェアハウスの構築と運用が可能になるかと思います。
参考

備考
Hakky ではエンジニアを募集中です!まずは話してみたいなどでも構いませんので、ぜひお気軽に採用ページからお問い合わせくださいませ。
