Google アナリティクス 4 プロパティの BigQuery Export をデータソースとするデータ変換パイプラインの Dataform サンプルプロジェクト
このプロジェクトではパイプラインを大きく以下の4段階に分ける。この段階に応じて Dataform データセット定義ファイルのフォルダ分け、およびテーブル接頭辞を定める。
- データソース
- フォルダ:
definitions/source
- パイプラインの起点となるローデータを格納する。
- フォルダ:
- 中間データ
- フォルダ:
definitions/stage
- 加工・整形途中のデータを格納する。
- 基本的にパイプライン内部でのみ使用することとし、分析用途には使用しない。
- テーブル接頭辞
stg__
を付ける。
- フォルダ:
- データウェアハウス
- フォルダ:
definitions/warehouse
- 加工・整形済みデータを格納する。データマートに比べて粒度が細かく大規模なデータを持つ。
- アドホック分析におけるクエリ対象となる。また、データマートの上流テーブルとして再加工される。
- テーブル接頭辞
dwh__
を付ける。
- フォルダ:
- データマート
- フォルダ:
definitions/mart
- 集約・軽量化されたデータを格納する。データウェアハウスに比べて粒度が粗く小規模なデータを持つ。
- 目的に応じて作成される。
- テーブル接頭辞
dm__
を付ける。
- フォルダ:
このプロジェクトでは Google アナリティクス 4 プロパティの BigQuery Export の出力テーブルをデータソースとし、そこからページビューイベントを抽出・加工したデータセット dwh__google_analytics_pageview_events
と、さらにそれを集約した日次レポート dm__google_analytics_daily_traffic
を作成する。
定義されるデータセットは以下の4つ。各データセットの詳細についてはそれぞれの SQLX ファイル内のドキュメントを参照のこと。
- データソース:
events_*
- 中間データ:
stg__google_analytics_events
- ページビューイベント:
dwh__google_analytics_pageview_eventsdwh__google_analytics_pageview_events
- 日次トラフィックレポート:
dm__google_analytics_daily_traffic
このサンプルプロジェクトではウェブサイトのトラフィックデータ分析を想定しているため、ページビューイベントを抽出したデータセットを定義している。その他の分析(Eコマースやモバイルアプリの分析など)を行いたい場合はそれに適したデータセットを作成する。
このリポジトリを fork して以下の値を変更すれば、異なる Google アナリティクス 4 プロパティや異なる BigQuery プロジェクトに対して同じパイプラインを構築できる。
- Google アナリティクス 4 プロパティ ID:
includes/constants.js
のGA4_PROPERTY_ID
で指定 - Google アナリティクス 4 のエクスポート先 BigQuery プロジェクト ID:
includes/constants.js
のGA4_EXPORT_PROJECT_ID
で指定 - パイプラインのデプロイ先 BigQuery プロジェクト ID:
dataform.json
のdefaultDatabase
で設定、またはenvironments.json
で上書き - パイプラインのデプロイ先 BigQuery データセット ID:
dataform.json
のdefaultSchema
で設定、またはenvironments.json
で上書き