Snowflake Connector for Google Analytics Raw Data 가 수집한 데이터에 액세스하기

이 항목에서는 Snowflake 계정에서 Google Analytics의 원시 데이터에 액세스하는 방법을 설명합니다.

이 항목의 내용:

동기화를 위해 구성된 BigQuery의 각 속성에 대해 Snowflake Connector for Google Analytics Raw Data 는 다음을 생성합니다.

  • 속성 이름과 동일한 이름을 가진 ANALYTICS_propertyId 테이블. 이 테이블에는 원시 일일 데이터가 포함됩니다. 테이블의 각 레코드는 별도의 행에 저장되고 Google Analytics 이벤트 데이터는 VARIANT 유형의 단일 열에 저장됩니다.

  • 위 테이블의 이벤트 데이터를 별도의 열로 매핑하는 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 Analytics 데이터에 액세스하는 권한 부여하기

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

평면화된 데이터에 액세스하기

데이터가 포함된 각 테이블의 경우 커넥터는 원시 데이터의 평면화된 뷰를 생성합니다. 뷰의 이름은 접미사가 __view 인 테이블의 이름입니다. 예를 들어 analytics_12345 라는 테이블의 경우 커넥터는 dest_db.dest_schema.analytics_12345__view 뷰를 생성합니다.

참고

ingestion_completeFALSE 인 행에 대한 뷰가 없습니다.

다음은 dest_db.dest_schema.analytics_12345__view 뷰의 데이터를 검색하는 SELECT 문의 출력 예입니다. 이 예에서 analytics_12345 테이블에는 EVENT_DATE, EVENT_TIMESTAMP, EVENT_NAME, EVENT_PREVIOUS_TIMESTAMP 라는 값이 있는 VARIANTraw 가 있습니다.

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