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

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

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

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

Google Analyticsは3タイプの BigQuery エクスポートをサポートしています。
  • 毎日:Google アナリティクスは、 events_XXXXXX 形式で指定されたテーブルにデータをエクスポートします。テーブルの作成は1日1回、その日のすべてのイベントが収集された後に行われます。

  • Fresh Daily:Google アナリティクスは、 events_fresh_XXXXXX 形式で名前を付けたテーブルにデータをエクスポートします。テーブルの作成と更新はスケジュールに従って行われ、その頻度は最大で1時間に1回です。この機能はGoogleアナリティクス360をご利用のお客様のみ可用性です。

  • ストリーミング:Google アナリティクスは、一日中継続的にデータをエクスポートし、 events_intraday_XXXXXX 形式で名付けられたテーブルに保存します。

  • ユーザー:収集したイベントに関連するユーザーデータを含むGoogle Analyticsのエクスポート。テーブルは BigQuery に格納され、 users_XXXXXXpseudonymous_users_XXXXXX の形式で名前が付けられます。

コネクタはこれら 3 タイプのエクスポートをサポートし、 BigQuery で見つけたすべてのテーブルを、追加の構成を必要とせずに自動的にダウンロードします。

シンクテーブル

各プロパティについて、コネクタはイベントをプロパティ固有のテーブルに保存します。このテーブルは、コネクタ構成時に提供されるデータベースとスキーマに作成されます。

各プロパティに対して、どのエクスポートタイプが有効になっているかによって、最大4つのシンクテーブルが作成される可能性があります。テーブルの名前は以下の通りです。

  • ANALYTICS_<プロパティID>

  • ANALYTICS_INTRADAY_<プロパティID>

  • USERS_<プロパティID>

  • PSEUDONYMOUS_USERS_<プロパティID>

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

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

Fresj Dailyテーブル インジェスチョン

コネクタの取り込みが成功するたびに、リロードが継続的に作成され、最大96時間(テーブルが作成された日の24時間とデータ更新が発生する72時間)テーブルをリロードします。リロードは、インジェストが成功するたびに実行され、ディスパッチャが実行されるたびにトリガーされます。最終リロード日は、テーブル名と割り当てられた96時間期間に基づいて計算されます。

コネクタが一時停止した場合など、Fresh Dailyインジェストに追いつく必要がある場合、コネクタはすべてのテーブルを順次インジェストします。リロードが不要な場合、つまりテーブルの作成から96時間以上経過している場合は作成されません。

この機能はGoogleアナリティクス360をご利用のお客様のみ可用性です。 ENABLE_PROPERTIES または UPDATE_INGESTION_OPTIONS のプロシージャを使用して、Fresh Dailyエクスポートを手動で有効にすることができます。

日中のインジェスト

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

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

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

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

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

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

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

注釈

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

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

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

スケジューリング

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

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

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

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

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