Snowflake Connector for Google Analytics Aggregate Data を使用した SQL の構成

このトピックでは、SQL を使用した Snowflake Connector for Google Analytics Aggregate Data の構成に関する情報を提供します。

注釈

Snowflake Connector for Google Analytics Aggregate Data は通常 |sf-web-interface|を使用して構成されます。SQL 構成は高度な構成メソッドとみなされ、コネクタ構成の基本的な詳細に精通している人によってのみ使用される必要があります。

SQL ステートメントを使用したインストールはサポートされておらず、 Snowsight を介してインストールする必要があります。

SQL ステートメントを使用してコネクタを構成するには、以下のタスクを実行します。

注釈

コネクタを構成するには、コネクタのインストールデータベースの PUBLIC スキーマで定義されているストアドプロシージャを使用する必要があります。

これらのストアドプロシージャを呼び出す前に、そのデータベースをセッションで使用するデータベースとして選択します。

たとえば、そのデータベースの名前が snowflake_connector_for_google_analytics_aggregate_data の場合は、次のコマンドを実行します。

USE DATABASE snowflake_connector_for_google_analytics_aggregate_data;
Copy

ウェアハウス、データ所有者ロール、保存先データベースを準備する

  1. 指定したウェアハウスでの使用権限とタスク実行権限をコネクタアプリケーションに付与します。

    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;
    
    Copy

    コネクタがインジェストを実行するには、これらの付与が必要です。

  2. 宛先データベースとスキーマを作成します。

    CREATE DATABASE google_analytics_aggregate_data_dest_db;
    CREATE SCHEMA google_analytics_aggregate_data_dest_db.google_analytics_aggregate_data_dest_schema;
    
    Copy

    インジェストされたデータは宛先スキーマに格納されます。既存のデータベースとスキーマを使用することもできます。

  3. 宛先データベースへの必要な権限の許可をアプリケーションに追加します。

    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;
    
    Copy

    アプリケーションには、レポートデータ用のテーブルを作成し、レポートビューを作成するための権限の許可が必要です。

  4. データ所有者ロールを作成し、必要な権限の許可を追加します。

    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;
    
    Copy

コネクタを構成する

  • 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"}')
    );
    
    Copy

    注釈

    CONFIGURE_CONNECTOR に渡される値は大文字と小文字が区別され、UI にあるように渡されるべきです(たとえば、SHOW コマンドにあるように)。

GA4 への接続に必要なSnowflakeオブジェクトを作成する

  1. 接続のセキュリティ統合を作成するには、以下のいずれかのオプションに従います。

    注釈

    サービスアカウントの使用がおすすめのオプションです。

    サービスアカウントを使用している場合は、キーファイルが必要です。キーファイルの作成方法の詳細については 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>';
    
    Copy

    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;
    
    Copy
  2. セキュリティ統合を使用してシークレットを作成します。

    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;
    
    Copy

    注釈

    このシークレットは、セキュリティ統合の認証情報を使用して生成されたアクセストークンを安全に保管します。

  3. コネクタアプリケーションにシークレット関連のアクセス許可を付与します。

    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;
    
    Copy
  4. oauth2認証を使用している場合は、トークンを生成します。以下のコードで生成されたリンクを使用します。

    SELECT SYSTEM$START_OAUTH_FLOW('connectors_secret.snowflake_connector_for_google_analytics_aggregate_data.secret');
    
    Copy

    oauth2 画面にリダイレクトされます。必要な権限の許可に同意すると、エンドポイントにリダイレクトされ、oauth2フローが完了します。

  5. 外部アクセスを構成する

    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;
    
    Copy

    注釈

    このコネクタは、外部アクセス統合を使用してGoogleアナリティクス 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"}')
    );
    
    Copy

    注釈

    SET_CONNECTION_CONFIGURATION に渡される値は、修飾されていない大文字の識別子でなければなりません。

コネクタの構成を完了する

  • FINALIZE_CONNECTOR_CONFIGURATION プロシージャを呼び出します。

    USE ROLE accountadmin;
    CALL FINALIZE_CONNECTOR_CONFIGURATION(
         PARSE_JSON('{}')
    );
    
    Copy

プロセスが正常に完了したら、インジェスチョンの構成を開始できます。詳細については、 Snowflake Connector for Google Analytics Aggregate Data インスタンスのデータインジェスチョンの設定 をご参照ください。