Snowflake Connector for Google Analytics Raw Data のデータインジェスチョンモデル

Snowflake connector for Google Analytics Raw Dataは、 コネクタ規約 に従うものとします。

このトピックでは、 Snowflake Connector for Google Analytics Raw Data がサポートするデータインジェスチョンモデルに関する情報を提供します。

Googleアナリティクスから BigQuery エクスポート

Googleアナリティクスは2種類の BigQuery エクスポートをサポートしています:
  • 毎日 - Googleアナリティクスは events_XXXXXX という名前のテーブルにデータをエクスポートします。テーブルは、その日のすべてのイベントが収集された後に1日1回作成されます。

  • ストリーミング - Googleアナリティクスは1日中継続的にデータをエクスポートし、 events_intraday_XXXXXX という名前のテーブルに保存します。

  • ユーザー - 収集したイベントに関連するユーザーデータを含むGoogle Analyticsのエクスポート。テーブルは、 users_XXXXXX および pseudonymous_users_XXXXXX という名前で BigQuery に保存されます。

コネクタは両方のタイプのエクスポートをサポートし、日次か日中かに関係なく BigQuery で見つけたすべてのテーブルを自動的にダウンロードします。追加の構成は必要ありません。

シンクテーブル

各プロパティについて、コネクタはイベントをプロパティ固有のテーブルに保存します。このテーブルは、コネクタ構成時に提供されるデータベースとスキーマに作成されます。各プロパティに対して、4つのテーブルが作成されます。日次エクスポート用が1つ、日中エクスポート用が1つ、ユーザーデータエクスポート用が2つで、それぞれ ANALYTICS_XXXXXXXXXANALYTICS_INTRADAY_XXXXXXXXXUSERS_XXXXXXXXXPSEUDONYMOUS_USERS_XXXXXXXXX という名前が付けられます。コネクタは、特定のGoogle Analyticsのエクスポート構成に関係なく、常に BigQuery 内の使用可能なすべてのテーブルをインジェストしようとします。

日次のデータインジェスチョン

コネクタは、テーブルが BigQuery に存在することを認識すると、1回の実行でテーブル全体をダウンロードします。Googleは、日次テーブルの更新はテーブルが作成されてから最大72時間後まで可能であることを警告しています。データの一貫性を確保するため、コネクタは72時間後にテーブルを再ロードします(正確な再ロード時間はコネクタのインジェスチョンスケジュール応じて異なることに注意してください)。テーブル作成後72時間経過後に行われた BigQuery の更新は、Snowflakeに反映されません。このようなテーブルは、 RELOAD_PROPERTY プロシージャのいずれかを使用して手動で再ロードできます。

日中のインジェスト

このコネクタは、過去の日中テーブル(BigQuery に存在する場合)のダウンロードと、現在も更新を受けている日中テーブルの継続的なインジェストをサポートします。

過去日については、コネクタは日中テーブルを日次テーブルと同じ方法でダウンロードします。全体として各テーブルをダウンロードし、現在の日付のデータに到達するまで1度に1つのテーブルをダウンrロードします。

コネクタは、日中テーブルが BigQuery 内の最後のテーブルであることを認識すると、テーブルの増分処理を開始します。つまり、一日中、一定の間隔(デフォルトでは8時間)で、テーブルから受信データのバッチをダウンロードします。

以下のいずれかに該当する場合:

  • 翌日のテーブルが BigQuery データセットに表示されました

  • 指定されたテーブルの最初のロードから24時間が経過

コネクタは指定された日中テーブルの最終インジェストを行い、次のインジェストに切り替わります。

注釈

イベントが10分以上遅れた場合、少数のイベントがインジェストされないことがあります。日中テーブルの増分ロードが完了するとすぐに、コネクタは失われたイベントがあるかどうかを確認し、失われたイベントがある場合は、Snowflakeと BigQuery 間のデータの一貫性を確保するためにテーブルの再ロードをスケジュールします。

ユーザーデータテーブルのインジェスチョン

ユーザーデータテーブルのインジェスチョンは、日次テーブルのインジェスチョンと同じメカニズムに基づいています。

スケジューリング

コネクタは、 BigQuery に新しいテーブルが存在するかどうかを確認し、次の場合にそれらのテーブル(または日中増分インジェスチョンの場合はその一部)をSnowflakeにインジェスチョンするようにスケジュールします。

  • 設定されたスケジュールに従ってタスクがトリガーされた場合
    • デフォルトでは8時間ごと

    • CONFIGURE_INGESTION_INTERVAL を使用すると、更新頻度を増やす/減らす必要がある場合にデフォルトの間隔値を変更できます。

  • コネクタが最後にスケジュールされたテーブルのインジェスチョンを終了した場合
    • 結果的に、1日に少なくとも1回のインジェスチョンが必要となり、少なくとも1回の追加チェックが必要になるため、構成から生じるスケジュールよりも頻繁にスケジュールが実行されることになります。

    • 特に、初期ロードが進行中で、インジェストするテーブルの数が多い場合、各テーブルをインジェストした後に、スケジューリングメカニズムがトリガーされます。