SQL을 사용한 Snowflake Connector for Google Analytics Aggregate Data 구성¶
Google Analytics Aggregate Data용 Snowflake Connector에는 커넥터 약관 이 적용됩니다.
이 항목에서는 SQL을 사용하여 Snowflake Connector for Google Analytics Aggregate Data 를 구성하는 방법에 대한 정보를 제공합니다.
참고
Snowflake Connector for Google Analytics Aggregate Data 는 일반적으로 Snowsight 를 사용하여 구성됩니다. SQL 구성은 고급 구성 방법으로 간주되므로 커넥터 구성의 기본 세부 사항을 잘 아는 사용자만 사용해야 합니다.
SQL 문을 사용한 설치는 지원되지 않으며 Snowsight 를 통해 설치해야 합니다.
SQL 문을 사용하여 커넥터를 구성하려면 다음 작업을 완료합니다.
웨어하우스, 데이터 소유자 역할, 대상 데이터베이스 를 준비합니다.
커넥터를 구성 합니다.
연결 구성을 설정 합니다.
커넥터 구성을 마무리 합니다.
참고
커넥터를 구성하려면 커넥터 설치 데이터베이스의 PUBLIC 스키마에 정의된 저장 프로시저를 사용해야 합니다.
이러한 저장 프로시저를 호출하기 전에 세션의 해당 데이터베이스를 선택합니다.
예를 들어 해당 데이터베이스의 이름이 snowflake_connector_for_google_analytics_aggregate_data
인 경우 다음 명령을 실행합니다.
USE DATABASE snowflake_connector_for_google_analytics_aggregate_data;
웨어하우스, 데이터 소유자 역할, 대상 데이터베이스 준비하기¶
커넥터 애플리케이션에 지정된 웨어하우스에 대한 사용 권한과 작업 실행 권한을 부여합니다.
USE ROLE accountadmin; CREATE WAREHOUSE google_analytics_aggregate_data_warehouse WITH WAREHOUSE_SIZE = 'X-Small'; GRANT USAGE ON WAREHOUSE google_analytics_aggregate_data_warehouse TO APPLICATION snowflake_connector_for_google_analytics_aggregate_data; GRANT EXECUTE TASK, EXECUTE MANAGED TASK ON ACCOUNT TO APPLICATION snowflake_connector_for_google_analytics_aggregate_data;
커넥터가 수집을 수행하려면 이러한 권한이 필요합니다.
대상 데이터베이스 및 스키마를 만듭니다.
CREATE DATABASE google_analytics_aggregate_data_dest_db; CREATE SCHEMA google_analytics_aggregate_data_dest_db.google_analytics_aggregate_data_dest_schema;
수집된 데이터는 대상 스키마에 저장됩니다. 기존 데이터베이스와 스키마를 사용할 수도 있습니다.
대상 데이터베이스에 필요한 권한 부여를 애플리케이션에 추가합니다.
USE ROLE accountadmin; GRANT USAGE ON DATABASE google_analytics_aggregate_data_dest_db TO APPLICATION snowflake_connector_for_google_analytics_aggregate_data; GRANT USAGE ON SCHEMA google_analytics_aggregate_data_dest_db.google_analytics_aggregate_data_dest_schema TO APPLICATION snowflake_connector_for_google_analytics_aggregate_data; GRANT CREATE TABLE ON SCHEMA google_analytics_aggregate_data_dest_db.google_analytics_aggregate_data_dest_schema TO APPLICATION snowflake_connector_for_google_analytics_aggregate_data; GRANT CREATE VIEW ON SCHEMA google_analytics_aggregate_data_dest_db.google_analytics_aggregate_data_dest_schema TO APPLICATION snowflake_connector_for_google_analytics_aggregate_data;
이 애플리케이션에는 보고서 데이터에 대한 테이블을 만들고 보고서 뷰를 생성하기 위한 권한이 필요합니다.
데이터 소유자 역할을 만들고 필요한 권한을 추가합니다.
USE ROLE accountadmin; CREATE OR REPLACE ROLE google_analytics_aggregate_data_resources_provider; GRANT USAGE ON DATABASE google_analytics_aggregate_data_dest_db TO ROLE google_analytics_aggregate_data_resources_provider; GRANT USAGE ON SCHEMA google_analytics_aggregate_data_dest_db.google_analytics_aggregate_data_dest_schema TO ROLE google_analytics_aggregate_data_resources_provider; GRANT USAGE ON WAREHOUSE google_analytics_aggregate_data_warehouse TO ROLE google_analytics_aggregate_data_resources_provider; GRANT APPLICATION ROLE snowflake_connector_for_google_analytics_aggregate_data.data_reader TO ROLE google_analytics_aggregate_data_resources_provider;
커넥터 구성¶
웨어하우스 이름, 대상 데이터베이스 및 스키마, 데이터 소유자 역할을 전달하여
CONFIGURE_CONNECTOR
프로시저를 호출합니다.USE ROLE accountadmin; CALL CONFIGURE_CONNECTOR( PARSE_JSON('{"warehouse": "GOOGLE_ANALYTICS_AGGREGATE_DATA_WAREHOUSE", "destination_database": "GOOGLE_ANALYTICS_AGGREGATE_DATA_DEST_DB", "destination_schema": "GOOGLE_ANALYTICS_AGGREGATE_DATA_DEST_SCHEMA", "data_owner_role": "GOOGLE_ANALYTICS_AGGREGATE_DATA_RESOURCES_PROVIDER"}') );
참고
CONFIGURE_CONNECTOR에 전달되는 값은 대/소문자를 구분하며 UI에 표시된 대로 전달해야 합니다(예: SHOW 명령에 표시된 대로).
GA4에 연결하는 데 필요한 Snowflake 오브젝트를 만듭니다.¶
연결에 대한 보안 통합을 만들려면 다음 옵션 중 하나를 따르십시오.
참고
서비스 계정을 사용하는 것이 좋습니다.
서비스 계정을 사용하는 경우 키 파일이 필요합니다. 만드는 방법에 대한 자세한 내용은 Google Cloud에 대한 서비스 계정 인증 구성 섹션을 참조하십시오. 키 파일의 세부 정보를 사용하여 보안 통합을 만듭니다.
CREATE SECURITY INTEGRATION snowflake_connector_for_google_analytics_aggregate_data_security_integration type = api_authentication auth_type = oauth2 oauth_client_id = '000000000000000000000' oauth_token_endpoint = 'https://oauth2.googleapis.com/token' enabled = true oauth_allowed_scopes = ('https://www.googleapis.com/auth/analytics.readonly') oauth_assertion_issuer = '<value of client_email from the JSON key file>' oauth_grant='JWT_BEARER' oauth_client_secret = '<value of private_key from the JSON key file with no delimiters or newlines>';
OAuth2를 사용 중인 경우, 동의 화면과 클라이언트 자격 증명을 구성해야 합니다. 이를 수행하는 방법에 대한 자세한 내용은 Google Cloud에 대한 OAuth 인증 구성 섹션을 참조하십시오. 이제 보안 통합을 만들어야 합니다.
CREATE OR REPLACE SECURITY INTEGRATION snowflake_connector_for_google_analytics_aggregate_data_security_integration type = api_authentication auth_type = oauth2 oauth_client_id = '<value of gcp oauth client_id>' oauth_client_secret = '<value of gcp oauth secret>' oauth_token_endpoint = 'https://oauth2.googleapis.com/token' OAUTH_AUTHORIZATION_ENDPOINT = 'https://accounts.google.com/o/oauth2/auth?access_type=offline&prompt=consent' OAUTH_ALLOWED_SCOPES = ('https://www.googleapis.com/auth/analytics.readonly') enabled = true;
보안 통합을 사용하여 시크릿을 만듭니다.
USE ROLE accountadmin; CREATE DATABASE connectors_secret; CREATE SCHEMA connectors_secret.snowflake_connector_for_google_analytics_aggregate_data; USE SCHEMA connectors_secret.snowflake_connector_for_google_analytics_aggregate_data; CREATE OR REPLACE SECRET secret type = oauth2 api_authentication = snowflake_connector_for_google_analytics_aggregate_data_security_integration;
참고
이 비밀번호는 보안 통합의 자격 증명을 사용하여 생성된 액세스 토큰을 안전하게 저장합니다.
커넥터 애플리케이션에 시크릿 관련 권한을 제공합니다.
USE ROLE accountadmin; GRANT USAGE ON DATABASE connectors_secret TO APPLICATION snowflake_connector_for_google_analytics_aggregate_data; GRANT USAGE ON SCHEMA connectors_secret.snowflake_connector_for_google_analytics_aggregate_data TO APPLICATION snowflake_connector_for_google_analytics_aggregate_data; GRANT READ ON SECRET connectors_secret.snowflake_connector_for_google_analytics_aggregate_data.secret TO APPLICATION snowflake_connector_for_google_analytics_aggregate_data;
oauth2 인증을 사용하는 경우 토큰을 생성합니다. 다음 코드로 생성된 링크를 사용합니다.
SELECT SYSTEM$START_OAUTH_FLOW('connectors_secret.snowflake_connector_for_google_analytics_aggregate_data.secret');
oauth2 화면으로 리디렉션됩니다. 필요한 권한 부여를 수락하면 엔드포인트로 리디렉션되며 이로써 oauth2 흐름이 완료됩니다.
외부 액세스를 구성합니다.
USE ROLE accountadmin; USE SCHEMA connectors_secret.snowflake_connector_for_google_analytics_aggregate_data; CREATE NETWORK RULE network_rule mode = EGRESS type = HOST_PORT value_list = ( 'analyticsadmin.googleapis.com:443', 'analyticsdata.googleapis.com:443' ); CREATE EXTERNAL ACCESS INTEGRATION google_analytics_aggregate_data_external_access_integration allowed_network_rules = (connectors_secret.snowflake_connector_for_google_analytics_aggregate_data.network_rule) allowed_authentication_secrets = ('CONNECTORS_SECRET.OAUTH.SNOWFLAKE_CONNECTOR_FOR_GOOGLE_ANALYTICS_AGGREGATE_DATA') enabled = true; GRANT USAGE ON INTEGRATION snowflake_connector_for_google_analytics_aggregate_data_external_access_integration TO APPLICATION snowflake_connector_for_google_analytics_aggregate_data;
참고
커넥터는 외부 액세스 통합을 사용하여 Google Analytics APIs와 통신합니다. 네트워크 규칙은 허용되는 호스트 목록을 제어합니다.
연결 구성 설정¶
외부 액세스 통합, 시크릿의 전체 경로, 보안 통합을 전달하는
SET_CONNECTION_CONFIGURATION
프로시저를 호출합니다.USE ROLE accountadmin; CALL SET_CONNECTION_CONFIGURATION( PARSE_JSON('{"external_access_integration": "SNOWFLAKE_CONNECTOR_FOR_GOOGLE_ANALYTICS_AGGREGATE_DATA_EXTERNAL_ACCESS_INTEGRATION", "secret": "CONNECTORS_SECRET.SNOWFLAKE_CONNECTOR_FOR_GOOGLE_ANALYTICS_AGGREGATE_DATA.SECRET", "security_integration": "SNOWFLAKE_CONNECTOR_FOR_GOOGLE_ANALYTICS_AGGREGATE_DATA_SECURITY_INTEGRATION"}') );
참고
SET_CONNECTION_CONFIGURATION에 전달되는 값은 정규화되지 않은 대문자 식별자이어야 합니다.
커넥터 구성 마무리¶
FINALIZE_CONNECTOR_CONFIGURATION
프로시저를 호출합니다.USE ROLE accountadmin; CALL FINALIZE_CONNECTOR_CONFIGURATION( PARSE_JSON('{}') );
프로세스가 성공적으로 완료되면 수집 구성을 시작할 수 있습니다. 자세한 내용은 Snowflake Connector for Google Analytics Aggregate Data 인스턴스에 대한 데이터 수집 설정 섹션을 참조하십시오.