Snowflake Connector for Google Analytics Raw Data によりインジェストされたデータへのアクセス

このトピックでは、SnowflakeアカウントからGoogleアナリティクスの生データにアクセスする方法について説明します。

このトピックの内容:

同期用に構成はされた BigQuery の各プロパティに対して、 Snowflake Connector for Google Analytics Raw Data は次を作成します。

  • プロパティ名と同じ名前の ANALYTICS_propertyId テーブル。このテーブルには生の日次データが含まれています。テーブルの各記録は別々の行に保存され、Googleアナリティクスのイベントデータは VARIANT 型の1つの列に保存されます。

  • 上記のテーブルのイベントデータを個別の列にマッピングする ANALYTICS_propertyId__VIEW ビュー。

  • プロパティ名と同じ名前の ANALYTICS_INTRADAY_propertyId テーブル。このテーブルには日中の生データが含まれています。

  • 上記のテーブルの日中のイベントデータを個別の列にマッピングする ANALYTICS_INTRADAY_propertyId__VIEW ビュー。

上記のテーブルとビューの仮オーナーは Snowflake Connector for Google Analytics Raw Data です。所有権はコネクタのアンインストール中に譲渡する必要があります。詳細は Snowflake Connector for Google Analytics Raw Data のアンインストールと再インストール をご覧ください。

次のセクションでは、このデータにアクセスする権限を付与する方法と、これらのテーブルおよびビューからデータにアクセスする方法について説明します。

SnowflakeでのGoogleアナリティクスのデータにアクセスする権限の付与

Snowflake Connector for Google Analytics Raw Data がSnowflakeとデータを同期した後、 data_owner_role を使用してデータにアクセスしたり、以下の両方の条件を満たしていれば他のロールにアクセスしたりすることができます:

  • Snowflake Connector for Google Analytics Raw Data によりインジェストされたデータを含むデータベースとスキーマに対する USAGE 権限があります。

  • このスキーマ内のテーブルまたはビューに対して SELECT 権限を持つ DATA_READER アプリケーションロールで付与されます。

たとえば、データを dest_db データベースと dest_schema スキーマに格納するように Snowflake Connector for Google Analytics Raw Data を構成した場合は、 google_analytics_raw_data_reader_role ロールを作成し、データにアクセスする権限をそのロールに付与できます。

次の例は、これらの権限を付与する方法を示しています。

CREATE ROLE google_analytics_raw_data_reader_role;
GRANT USAGE ON DATABASE dest_db TO ROLE google_analytics_raw_data_reader_role;
GRANT USAGE ON SCHEMA dest_db.dest_schema TO ROLE google_analytics_raw_data_reader_role;
GRANT APPLICATION ROLE SNOWFLAKE_CONNECTOR_FOR_GOOGLE_ANALYTICS_RAW_DATA.DATA_READER TO ROLE google_analytics_raw_data_reader_role;
Copy

生データへのアクセス

同期する BigQuery テーブルごとに、 Snowflake Connector for Google Analytics Raw Data は Snowflake Connector for Google Analytics Raw Data を格納するために使用されるSnowflakeデータベースとスキーマに同じ名前の新しいテーブルを作成します。

たとえば、データを dest_db データベースと dest_schema スキーマに格納し、 my_role ロールを介してデータにアクセスするようにコネクタを構成した場合で、 BigQuery の analytics_12345 テーブルを同期するようにコネクタを構成した場合、コネクタは dest_db.dest_schema.analytics_12345 という名前のテーブルを作成します。

このテーブルには、 BigQuery から取り込まれた生データが含まれています。テーブルには次の列が含まれます。

列名

データ型

説明

raw

VARIANT

記録の生データ。

run_id

VARIANT

データをインジェストする非同期プロセスのID。

source_table_date

DATE

コネクタがデータをテーブルにインジェストした日次テーブルの名前。

ingestion_complete

BOOLEAN

コネクタが日次テーブルからすべてのデータをインジェストした場合はtrueで、一部のデータがまだダウンロード中である場合はfalseです。

以下は、 dest_db.dest_schema.analytics_12345 テーブルのデータを取得する SELECT ステートメントの出力例です。

SELECT * FROM DEST_DB.DEST_SCHEMA.ANALYTICS_12345 LIMIT 5;

+---------------------------+--------------------------------------+--------------------+--------------------+
| RAW                       | RUN_ID                               |  SOURCE_TABLE_DATE | INGESTION_COMPLETE |
+---------------------------+--------------------------------------+--------------------+--------------------+
| { "app_info": null, ... } | f8edbf0e-1d0d-4ff5-9e5c-0e114b1fc44a |  2023-06-13        |  TRUE              |
| { "app_info": null, ... } | f8edbf0e-1d0d-4ff5-9e5c-0e114b1fc44a |  2023-06-13        |  TRUE              |
| { "app_info": null, ... } | f8edbf0e-1d0d-4ff5-9e5c-0e114b1fc44a |  2023-06-13        |  TRUE              |
| { "app_info": null, ... } | d949ab70-6a7e-47a5-b876-d7e33d701b0d |  2023-06-14        |  FALSE             |
| { "app_info": null, ... } | d949ab70-6a7e-47a5-b876-d7e33d701b0d |  2023-06-14        |  FALSE             |
+---------------------------+--------------------------------------+--------------------+--------------------+
Copy

フラット化されたデータへのアクセス

データを含むテーブルごとに、コネクタは生データに対して2つのフラット化されたビューを作成します。ビューの名前は、接尾辞 __view が付いたテーブルの名前です。たとえば、 analytics_12345 という名前のテーブルの場合、コネクタは dest_db.dest_schema.analytics_12345__view ビューを作成します。

注釈

ingestion_completeFALSE である行のビューはありません。

以下は、 dest_db.dest_schema.analytics_12345__view ビューからデータを取得する SELECT ステートメントの出力例です。この例では、 analytics_12345 テーブルには VARIANTraw があり、 EVENT_DATEEVENT_TIMESTAMPEVENT_NAMEEVENT_PREVIOUS_TIMESTAMP という値が含まれています。

USE ROLE MY_ROLE;
SELECT EVENT_DATE, EVENT_TIMESTAMP, EVENT_NAME, EVENT_PREVIOUS_TIMESTAMP
FROM DEST_DB.DEST_SCHEMA.ANALYTICS_12345__VIEW LIMIT 5;

+------------+--------------------------+-------------------+--------------------------+
| EVENT_DATE | EVENT_TIMESTAMP          | EVENT_NAME        | EVENT_PREVIOUS_TIMESTAMP |
+------------+--------------------------+-------------------+--------------------------+
| 2023-06-13 | 2023-06-13 18:27:20.775  | "page_view"       | null                     |
| 2023-06-13 | 2023-06-13 18:27:25.960  | "user_engagement" | null                     |
| 2023-06-13 | 2023-06-13 19:26:49.130  | "scroll"          | null                     |
| 2023-06-13 | 2023-06-13 18:27:51.135  | "page_view"       | null                     |
| 2023-06-13 | 2023-06-13 18:27:56.343  | "user_engagement" | null                     |
+------------+--------------------------+-------------------+--------------------------+
Copy