Configuration de Snowflake Connector for Google Analytics Aggregate Data via SQL¶
Snowflake Connector for Google Analytics Aggregate Data est soumis aux Conditions de connecteur.
Cette rubrique fournit des informations sur l’utilisation de SQL pour configurer Snowflake Connector for Google Analytics Aggregate Data.
Note
Snowflake Connector for Google Analytics Aggregate Data est généralement configuré via Snowsight. La configuration SQL est considérée comme une méthode de configuration avancée et ne doit être utilisée que par des personnes familiarisées avec les détails sous-jacents de la configuration du connecteur.
L’installation à l’aide d’instructions SQL n’est pas prise en charge et doit être effectuée via Snowsight.
Pour configurer le connecteur à l’aide d’instructions SQL, procédez comme suit :
Préparez un entrepôt, un rôle de propriétaire de données et une base de données de destination.
Créez les objets Snowflake nécessaires à la connexion à GA4.
Note
Pour configurer le connecteur, vous devez utiliser des procédures stockées définies dans le schéma PUBLIC de la base de données d’installation du connecteur.
Avant d’appeler ces procédures stockées, sélectionnez cette base de données pour la session.
Par exemple, si la base de données s’appelle snowflake_connector_for_google_analytics_aggregate_data
, exécutez la commande suivante :
USE DATABASE snowflake_connector_for_google_analytics_aggregate_data;
Préparation d’un entrepôt, d’un rôle de propriétaire de données et d’une base de données de destination¶
Accordez à l’application du connecteur le droit d’utiliser un entrepôt spécifié et d’exécuter des tâches :
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;
Le connecteur a besoin de ces droits pour pouvoir procéder à l’ingestion.
Créez une base de données et un schéma de destination :
CREATE DATABASE google_analytics_aggregate_data_dest_db; CREATE SCHEMA google_analytics_aggregate_data_dest_db.google_analytics_aggregate_data_dest_schema;
Les données ingérées sont stockées dans le schéma de destination. Vous pouvez également utiliser une base de données et un schéma existants.
Ajoutez à l’application les droits nécessaires sur la base de données de destination :
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;
L’application a besoin des droits pour pouvoir créer des tables pour les données des rapports et pour pouvoir créer les vues des rapports.
Créez le rôle de propriétaire de données et ajoutez les droits nécessaires :
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;
Configuration du connecteur¶
Appelez la procédure
CONFIGURE_CONNECTOR
, en transmettant le nom de l’entrepôt, la base de données et le schéma de destination et le rôle de propriétaire de données :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"}') );
Note
Les valeurs transmises à CONFIGURE_CONNECTOR sont sensibles à la casse et doivent être transmises telles qu’elles apparaissent dans l’UI (par exemple, telles qu’elles apparaissent dans la commande SHOW).
Créer les objets Snowflake nécessaires à la connexion à GA4¶
Pour créer une intégration de sécurité pour votre connexion, suivez l’une des options suivantes :
Note
Il est recommandé d’utiliser un compte de service.
Si vous utilisez un compte de service, vous avez besoin d’un fichier de clé. Pour des informations détaillées sur sa création, voir Configurer l’authentification du compte de service de Google Cloud. Créez une intégration de sécurité en utilisant les détails du fichier de clé :
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>';
Si vous utilisez OAuth2, vous devez configurer un écran de consentement et les identifiants de connexion du client. Pour des informations détaillées sur la manière de procéder, voir Configurer l’authentification OAuth pour Google Cloud. Vous devez ensuite créer l’intégration de sécurité :
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;
Créez un secret à l’aide de l’intégration de sécurité :
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;
Note
Le secret stockera en toute sécurité le jeton d’accès généré à l’aide des identifiants de connexion de l’intégration de sécurité.
Accordez à l’application du connecteur les droits associés au secret :
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;
Si vous utilisez l’autorisation oauth2, générez un jeton. Utilisez le lien généré par le code suivant :
SELECT SYSTEM$START_OAUTH_FLOW('connectors_secret.snowflake_connector_for_google_analytics_aggregate_data.secret');
Vous serez redirigé(e) vers l’écran oauth2. Après avoir accepté les droits requis, vous serez redirigé(e) vers le point de terminaison, ce qui termine le flux oauth2.
Configurez l’accès externe :
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;
Note
Le connecteur utilise l’intégration d’accès externe pour communiquer avec les APIs Google Analytics. La règle de réseau contrôle la liste des hôtes autorisés.
Définir la configuration de la connexion¶
Appelez la procédure
SET_CONNECTION_CONFIGURATION
, en transmettant l’intégration d’accès externe, le chemin d’accès complet au secret et l’intégration de sécurité :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"}') );
Note
Les valeurs transmises à SET_CONNECTION_CONFIGURATION doivent être des identificateurs incomplets, en majuscules.
Finaliser la configuration du connecteur¶
Appelez la procédure
FINALIZE_CONNECTOR_CONFIGURATION
:USE ROLE accountadmin; CALL FINALIZE_CONNECTOR_CONFIGURATION( PARSE_JSON('{}') );
Une fois le processus correctement terminé, la configuration de l’ingestion peut commencer. Pour plus d’informations, voir Configurer l’ingestion de données de votre instance Snowflake Connector for Google Analytics Aggregate Data.