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で上書き