使用 SQL 配置 Snowflake Connector for Google Analytics Aggregate Data¶
Snowflake Connector for Google Analytics Aggregate Data 需遵守 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 配置服务账户身份验证。使用密钥文件中的详细信息创建安全集成:
如果您正在使用 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"}') );
备注
传递给 CONFIGURE_CONNECTOR 的值应为非限定的大写标识符。
完成连接器配置¶
调用
FINALIZE_CONNECTOR_CONFIGURATION
过程:USE ROLE accountadmin; CALL FINALIZE_CONNECTOR_CONFIGURATION( PARSE_JSON('{}') );
成功完成该过程后,可以开始引入配置。有关更多信息,请参阅 为 Snowflake Connector for Google Analytics Aggregate Data 实例设置数据引入。