メインコンテンツまでスキップ

Google Analytics 未加工データ コネクタの概念

Google Analytics 未加工データ コネクタを使用すると、 Databricks Lakeflowコネクト と Google BigQueryを使用して、Google Analytics 4(GA4)から未加工のイベントレベルのデータを取り込むことができます。

GA4の摂取はどのように作用するのですか?

まず、Google が提供するBigQuery API または UI を使用して、GA4 データを にエクスポートする必要があります。次に、Databricksは次のAPIを使用して BigQueryからのデータを消費します。

  • メタデータ操作(例えば、テーブルやスキーマの一覧表示)のためのBigQuery API
  • データ取り込みのためのBigQueryストレージAPI
  • スキーマ探索のためのクラウド リソース マネージャー API

コネクタデータモデル

GA4コネクタは、指定されたGA4プロパティから以下のテーブルを取り込むことができます。

  • events
  • events_intraday
  • users
  • pseudonymous_users

GA4にデータが到着する日ごとに、BigQueryに日付でパーティション分割されたテーブルが自動的に作成されます。BigQueryのテーブル名は<table_name>_YYYYMMDD形式です(例: events_20241024 )。

Lakeflowコネクト パイプラインの更新ごとに、コネクタは前回の更新以降の新しいテーブルを自動的に取り込みます。また、既存のテーブルの新しい行を最大 72 時間取り込みます。

コネクタの基本

  • パイプラインの初回実行時、コネクタは選択したテーブルについてBigQueryにエクスポートしたすべてのデータを取り込みます。
  • 以降のパイプライン実行では、コネクタは新しく挿入された行を取り込みますが、この記事で概説されている注意点が適用されます。
  • 更新と削除は取り込まれません。
  • 初回ロードでは、GA4/BigQueryプロジェクトに存在するすべての日付のデータが取得されます。
  • コネクタは、各行が一意であることを前提としています。Databricksは、予期せぬ重複データが存在する場合、正しい動作を保証できません。

ウィンドウとスケジュールを更新する

GA4は、テーブルが作成されてから最大72時間まで更新を継続できます。そのため、Databricksはこれらのテーブルの更新を72時間追跡し、取り込みます。コネクタは、72 時間の更新ウィンドウの後にテーブルへの更新を自動的に取り込みません (たとえば、GA4 が履歴データを再処理する場合)。

Lakeflowコネクト パイプラインは少なくとも 72 時間ごとに実行する必要がありますが、Databricks では毎日パイプラインを実行することをお勧めします。同期の頻度が低いと、コネクタがデータを再フェッチする必要が生じるリスクが高まります。

Databricksは、BigQueryのデフォルトのタイムトラベルウィンドウである7日間を維持することも推奨しています。これは摂取効率の向上に役立ちます。

テーブルレベルのデータモデル

eventsとevents_intradayテーブル

eventsテーブルとevents_intradayテーブルでは、Databricks の 1 行が BigQuery の 1 行に対応します。

events_intradayテーブルについては、 eventsテーブルに同じ日付のデータが利用可能になった後も、特定の日付のデータが存在するという保証はありません。これは、 events_intradayテーブルは、 eventsテーブルがその日に使用できる状態になるまでの暫定的な使用のみを目的としているためです。

ユーザーテーブル

usersテーブルからデータを取り込むために、コネクタはuser_idを主キーとして、 last_updated_dateをカーソルキーとして使用します。その結果、各usersテーブルからユーザーIDごとに1行のみを取り込みます。それは、 last_updated_dateが最大のエントリです。

宛先テーブルでユーザーIDごとに複数の行を保持するには、テーブル構成でSCDモードをタイプ2に設定してください。

匿名ユーザーテーブル

pseudonymous_usersテーブルからデータを取り込むために、コネクタはpseudo_user_idstream_idを主キーとして使用します。カーソルキーとしてlast_updated_dateを使用します。その結果、各pseudonymous_usersテーブルから擬似ユーザーIDごとに1行のみを取り込みます。それは、 last_updated_dateが最大のエントリです。

宛先テーブルでユーザーIDごとに複数の行を保持するには、テーブル構成でSCDモードをタイプ2に設定してください。