Configuração do Snowflake Connector for Google Analytics Aggregate Data usando SQL

O Snowflake Connector para Google Analytics Aggregate Data está sujeito aos Termos do conector.

Este tópico fornece informações sobre o uso de SQL para configurar o Snowflake Connector for Google Analytics Aggregate Data.

Nota

O Snowflake Connector for Google Analytics Aggregate Data é normalmente configurado usando o Snowsight. A configuração de SQL é considerada um método de configuração avançado e deve ser usado somente por aqueles familiarizados com os detalhes subjacentes da configuração do conector.

Instalação usando instruções SQL não são compatíveis e devem ser feitas via Snowsight.

Para configurar o conector usando instruções SQL, conclua estas tarefas:

Nota

Para configurar o conector, você deve usar procedimentos armazenados definidos no esquema do banco de dados PUBLIC de instalação do conector.

Antes de chamar esses procedimentos armazenados, selecione esse banco de dados para a sessão.

Por exemplo, se esse banco de dados for nomeado snowflake_connector_for_google_analytics_aggregate_data, execute o seguinte comando:

USE DATABASE snowflake_connector_for_google_analytics_aggregate_data;
Copy

Preparação de um warehouse, uma função de proprietário de dados e um banco de dados de destino

  1. Conceda o uso em um warehouse especificado e permissões de execução de tarefas ao aplicativo do conector.

    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

    O conector precisa dessas concessões para executar a ingestão.

  2. Crie um banco de dados e um esquema de destino:

    CREATE DATABASE google_analytics_aggregate_data_dest_db;
    CREATE SCHEMA google_analytics_aggregate_data_dest_db.google_analytics_aggregate_data_dest_schema;
    
    Copy

    Os dados ingeridos são armazenados no esquema de destino. Você também pode usar um banco de dados e um esquema existentes.

  3. Adicione as concessões necessárias no banco de dados de destino ao aplicativo:

    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

    O aplicativo precisa de concessões para criar tabelas para dados de relatórios e para criar exibições de relatórios.

  4. Crie a função de proprietário dos dados e adicione as concessões necessárias:

    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

Configuração do conector

  • Chame o CONFIGURE_CONNECTOR procedimento, passando o nome do warehouse, do banco de dados e do esquema de destino e da função de proprietário dos dados:

    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

    Nota

    Valores passados para CONFIGURE_CONNECTOR diferenciam maiúsculas de minúsculas e devem ser passados conforme visto na UI (por exemplo, conforme visto no comando SHOW).

Criação de objetos Snowflake necessários para conexão com GA4

  1. Para criar uma integração de segurança para sua conexão, siga uma destas opções:

    Nota

    Usar uma conta de serviço é uma opção recomendada.

    Se você estiver usando uma conta de serviço, precisará do arquivo de chave. Para obter mais detalhes sobre como criar um, consulte Configuração da autenticação da conta de serviço para Google Cloud. Crie uma integração de segurança usando os detalhes do arquivo de chave:

    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

    Se estiver usando OAuth2, você precisa configurar uma tela de consentimento e credenciais do cliente. Para obter mais detalhes sobre como fazer isso, consulte Configuração da autenticação OAuth para Google Cloud. Depois, você precisa criar uma integração de segurança:

    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. Crie um segredo usando a integração de segurança:

    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

    Nota

    O segredo armazenará com segurança o token de acesso gerado usando as credenciais da integração de segurança.

  3. Forneça concessões relacionadas a segredos ao aplicativo do conector:

    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. Se você estiver usando autorização oauth2, gere um token. Utilize o link gerado pelo seguinte código:

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

    Você será redirecionado para a tela oauth2. Depois de aceitar as concessões necessárias, você será redirecionado para o ponto de extremidade, o que conclui o fluxo oauth2.

  5. Configure o acesso externo:

    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

    Nota

    O conector usa a integração de acesso externo para se comunicar com as APIs do Google Analytics. A regra de rede controla a lista de hosts permitidos.

Definição da configuração de conexão

  • Chame o procedimento SET_CONNECTION_CONFIGURATION, passando a integração de acesso externo, o caminho completo para o segredo e a integração de segurança:

    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

    Nota

    Valores passados para SET_CONNECTION_CONFIGURATION devem ser identificadores não qualificados e em letras maiúsculas.

Fornecimento da configuração do conector

  • Chame o procedimento FINALIZE_CONNECTOR_CONFIGURATION:

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

Depois que o processo for concluído com êxito, a configuração de ingestão poderá começar. Para obter mais informações, consulte Configuração da ingestão de dados para sua instância do Snowflake Connector for Google Analytics Aggregate Data.