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回、その日のすべてのイベントが収集された後に行われます。

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

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

  • ユーザー:収集したイベントに関連するユーザーデータを含むGoogleアナリティクスのエクスポート。テーブルは 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回の追加チェックが必要になるため、構成から生じるスケジュールよりも頻繁にスケジュールが実行されることになります。

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