Konfigurieren des Snowflake Connector for Google Analytics Raw Data mit SQL¶
Der Snowflake Connector für Google Analytics Raw Data unterliegt den Nutzungsbedingungen für Konnektoren.
Unter diesem Thema finden Sie Informationen zum Konfigurieren des Snowflake Connector for Google Analytics Raw Data über SQL.
Bemerkung
Die Snowflake Connector for Google Analytics Raw Data-Konfiguration erfolgt in der Regel über Snowsight. SQL-Konfiguration ist eine fortgeschrittene Konfigurationsmethode und sollte nur von Personen verwendet werden, die mit den zugrunde liegenden Details der Konfiguration von Konnektoren vertraut sind.
Um den Konnektor mit SQL-Anweisungen zu konfigurieren, gehen Sie wie folgt vor:
Bereiten Sie ein Warehouse, eine Dateneigentümerrolle und eine Zieldatenbank vor.
Erstellen Sie Snowflake-Objekte, die für die Verbindung zur GCP erforderlich sind.
Bemerkung
Um den Konnektor bereitzustellen und die Verbindung zu konfigurieren, müssen Sie gespeicherte Prozeduren verwenden, die im PUBLIC-Schema der Datenbank definiert sind, die als Instanz der Konnektor-Installationsdatenbank dient.
Bevor Sie diese gespeicherten Prozeduren aufrufen, wählen Sie diese Datenbank als die für die Sitzung zu verwendende Datenbank aus.
Wenn diese Datenbank beispielsweise snowflake_connector_for_google_analytics_raw_data
heißt, führen Sie den folgenden Befehl aus:
USE DATABASE snowflake_connector_for_google_analytics_raw_data;
Warehouse, Dateneigentümerrolle und Zieldatenbank vorbereiten¶
Erteilen Sie der Konnektor-Anwendung die Berechtigung zur Nutzung des angegebenen Warehouses und zum Ausführen von Aufgaben.
USE ROLE accountadmin; CREATE WAREHOUSE google_analytics_raw_data_warehouse with warehouse_size = 'X-Small'; GRANT USAGE ON WAREHOUSE google_analytics_raw_data_warehouse TO APPLICATION snowflake_connector_for_google_analytics_raw_data; GRANT EXECUTE TASK ON ACCOUNT TO APPLICATION snowflake_connector_for_google_analytics_raw_data; GRANT EXECUTE MANAGED TASK ON ACCOUNT TO APPLICATION snowflake_connector_for_google_analytics_raw_data;
Erstellen Sie die Rolle des Dateneigentümers.
USE ROLE accountadmin; CREATE OR REPLACE ROLE google_analytics_raw_data_resources_provider; GRANT CREATE DATABASE ON ACCOUNT TO ROLE google_analytics_raw_data_resources_provider; GRANT USAGE ON WAREHOUSE google_analytics_raw_data_warehouse TO ROLE google_analytics_raw_data_resources_provider; GRANT ROLE google_analytics_raw_data_resources_provider TO USER ADMIN;
Erstellen Sie die Zieldatenbank und das Zielschema.
Sie können auch eine vorhandene Zieldatenbank und ein vorhandenes Schema verwenden, was besonders hilfreich ist, wenn Sie den Konnektor erneut installieren.
USE ROLE google_analytics_raw_data_resources_provider; CREATE DATABASE google_analytics_raw_data_dest_db; CREATE SCHEMA google_analytics_raw_data_dest_db.google_analytics_raw_data_dest_schema;
Weisen Sie der Anwendung die erforderlichen Berechtigungen für die Zieldatenbank zu.
USE ROLE accountadmin; GRANT USAGE ON DATABASE google_analytics_raw_data_dest_db TO APPLICATION snowflake_connector_for_google_analytics_raw_data; GRANT USAGE ON SCHEMA google_analytics_raw_data_dest_db.google_analytics_raw_data_dest_schema TO APPLICATION snowflake_connector_for_google_analytics_raw_data; GRANT CREATE TABLE ON SCHEMA google_analytics_raw_data_dest_db.google_analytics_raw_data_dest_schema TO APPLICATION snowflake_connector_for_google_analytics_raw_data; GRANT CREATE VIEW ON SCHEMA google_analytics_raw_data_dest_db.google_analytics_raw_data_dest_schema TO APPLICATION snowflake_connector_for_google_analytics_raw_data;
(Optional) Übertragen Sie die Eigentümerschaft von Tabellen und Sichten im Zielschema
Wenn der Konnektor neu installiert wurde und ein früheres Zielschema wiederverwendet wird, muss die Eigentümerschaft aller Tabellen und Ansichten im Zielschema auf den Konnektor übertragen werden. Der Konnektor benötigt die Eigentümerschaft, um Berechtigungszuweisungen für Objekte im Schema zu verwalten und vereinfachte Ansichten neu zu erstellen, wenn das Schema der aufgenommen Tabelle geändert wird.
Um die Eigentümerschaft zu übertragen, rufen Sie die Funktion
SYSTEM$GRANT_OWNERSHIP_TO_APPLICATION
auf.USE ROLE accountadmin; CALL SYSTEM$GRANT_OWNERSHIP_TO_APPLICATION(<connector_app>, true, <destination_database>, <destination_schema>);
SYSTEM$GRANT_OWNERSHIP_TO_APPLICATION
ist eine von Snowflake bereitgestellte Systemfunktion, die es ermöglicht, die Eigentümerschaft von Tabellen und Ansichten in einer bestimmten Datenbank oder einem bestimmten Schema an die Anwendung zu übertragen. Es wird nur die Eigentümerschaft von Standardtabellen und Standardansichten übertragen, d. h. die Eigentümerschaft von dynamischen Tabellen, externen Tabellen, materialisierten Ansichten usw. wird nicht übertragen.Diese Funktion hat die folgenden Signatur:
SYSTEM$GRANT_OWNERSHIP_TO_APPLICATION(<to_app>, <should_copy_grants>, <from_database>, <from_schema>)
Wobei:
to_app
Gibt den Namen der Anwendung an, auf die die Eigentümerschaft von Objekten übertragen werden soll.
should_copy_grants
Wenn
TRUE
, dann kopieren Sie die bestehenden Berechtigungszuweisungen, andernfalls widerrufen Sie sie. Das Kopieren von Berechtigungszuweisungen erfordert die BerechtigungMANAGE GRANTS
für den Aufrufer.from_database
Name der Datenbank, die die Objekte enthält, deren Eigentümerschaft geändert werden soll.
from_schema
(Optional) Name des Schemas, das die Objekte enthält, deren Eigentümerschaft geändert werden soll. Wenn kein Schema angegeben ist, wird die Eigentümerschaft an Tabellen und Ansichten in allen Schemas der angegebenen Datenbank übertragen. Objekte in verwalteten Schemas werden bei der Übertragung der Eigentümerschaft ausgelassen.
Um die Funktion auszuführen, muss der Aufrufer eine der folgenden Bedingungen erfüllen:
Hat die Berechtigung
MANAGE GRANTS
(z. B. die Rolle ACCOUNTADMIN oder SECURITYADMIN) oderHat die Rolle, die Eigentümer der Anwendungsinstanz ist, und die Rolle, Eigentümer aller Objekte ist, um die Eigentümerschaft zu übertragen. Objekte, bei denen die Eigentümerschaft fehlt, werden von der Funktion ausgelassen.
Zum Beispiel, um die Eigentümerschaft auf den Konnektor zu übertragen, der:
Wurde installiert als
snowflake_connector_for_google_analytics_raw_data
Verwendet das Schema namens
dest_db.dest_schema
für die Google Analytics-Daten in Snowflake
Führen Sie den folgenden Befehl aus:
USE ROLE accountadmin; CALL SYSTEM$GRANT_OWNERSHIP_TO_APPLICATION('snowflake_connector_for_google_analytics_raw_data', true, 'dest_db', 'dest_schema');
Weisen Sie bei Bedarf der Rolle, die zuvor die Daten besaß, die Anwendungsrolle
DATA_READER
zu, um zu verhindern, dass bestehende Pipelines, die diese Daten verwenden, unterbrochen werden:GRANT APPLICATION ROLE <connector_app>.DATA_READER TO ROLE <previous_data_owner_role>;
Beachten Sie, dass die Anwendungsrolle
DATA_READER
so lange keine Berechtigungen für Tabellen und Ansichten im Zielschema hat, bis die ProzedurPROVISION_CONNECTOR
ausgeführt wurde.
Konnektor bereitstellen¶
Rufen Sie die Prozedur
PROVISION_CONNECTOR
auf.Übergeben Sie den Namen des Warehouses, die Zieldatenbank und das Zielschema sowie die Dateneigentümerrolle. Bei diesen Werten wird zwischen Groß- und Kleinschreibung unterschieden.
CALL PROVISION_CONNECTOR( 'GOOGLE_ANALYTICS_RAW_DATA_WAREHOUSE', 'GOOGLE_ANALYTICS_RAW_DATA_DEST_DB.GOOGLE_ANALYTICS_RAW_DATA_DEST_SCHEMA', 'GOOGLE_ANALYTICS_RAW_DATA_RESOURCES_PROVIDER' );
Für Verbindung zur GCP erforderliche Snowflake-Objekte erstellen¶
Erstellen Sie eine Sicherheitsintegration für Ihr Dienstkonto.
Zuerst benötigen Sie eine Schlüsseldatei für das Dienstkonto. Weitere Informationen zum Erstellen dieser Datei finden Sie unter Konfigurieren der Dienstkonto-Authentifizierung für Google Cloud Platform (GCP).
CREATE SECURITY INTEGRATION google_analytics_raw_data_security_integration type = api_authentication auth_type = oauth2 oauth_client_id = '<value of client_id from the JSON key file>' oauth_token_endpoint = 'https://oauth2.googleapis.com/token' enabled = true oauth_allowed_scopes = ( 'https://www.googleapis.com/auth/bigquery.readonly', 'https://www.googleapis.com/auth/cloudplatformprojects.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>';
Erstellen Sie mithilfe der Sicherheitsintegration ein Geheimnis.
CREATE DATABASE google_analytics_raw_data_connector_secret; CREATE SCHEMA google_analytics_raw_data_connector_secret.oauth; USE SCHEMA google_analytics_raw_data_connector_secret.oauth; CREATE OR REPLACE SECRET google_analytics_raw_data type = oauth2 api_authentication = google_analytics_raw_data_security_integration;
Weisen Sie der Konnektoranwendung Geheimnis-bezogene Berechtigungen zu.
GRANT USAGE ON DATABASE google_analytics_raw_data_connector_secret TO APPLICATION snowflake_connector_for_google_analytics_raw_data; GRANT USAGE ON SCHEMA google_analytics_raw_data_connector_secret.oauth TO APPLICATION snowflake_connector_for_google_analytics_raw_data; GRANT READ ON SECRET google_analytics_raw_data_connector_secret.oauth.google_analytics_raw_data TO APPLICATION snowflake_connector_for_google_analytics_raw_data;
Konfigurieren Sie den externen Zugriff.
Beachten Sie, dass bei der an
allowed_authentication_secrets
übergebenen Pfadangabe zum Geheimnis die Groß-/Kleinschreibung unterschieden wird.USE SCHEMA google_analytics_raw_data_connector_secret.oauth; CREATE NETWORK RULE google_analytics_raw_data_allow_rule mode = EGRESS type = HOST_PORT value_list = ( 'www.googleapis.com', 'bigquery.googleapis.com', 'bigquerystorage.googleapis.com', 'cloudresourcemanager.googleapis.com', 'oauth2.googleapis.com' ); CREATE EXTERNAL ACCESS INTEGRATION google_analytics_raw_data_external_access_integration allowed_network_rules = (google_analytics_raw_data_allow_rule) allowed_authentication_secrets = ('GOOGLE_ANALYTICS_RAW_DATA_CONNECTOR_SECRET.OAUTH.GOOGLE_ANALYTICS_RAW_DATA') enabled = true; GRANT USAGE ON INTEGRATION google_analytics_raw_data_external_access_integration TO APPLICATION snowflake_connector_for_google_analytics_raw_data;
Verbindung zur GCP konfigurieren¶
Rufen Sie die Prozedur
CONFIGURE_CONNECTION
auf.Übergeben Sie den Namen der Integration für den externen Zugriff, den vollständigen Pfad zum Geheimnis sowie den Namen der Sicherheitsintegration. Bei diesen Werten wird zwischen Groß- und Kleinschreibung unterschieden.
CALL CONFIGURE_CONNECTION( 'GOOGLE_ANALYTICS_RAW_DATA_EXTERNAL_ACCESS_INTEGRATION', 'GOOGLE_ANALYTICS_RAW_DATA_CONNECTOR_SECRET.OAUTH.GOOGLE_ANALYTICS_RAW_DATA', 'GOOGLE_ANALYTICS_RAW_DATA_SECURITY_INTEGRATION' );
Überprüfen Sie den Verbindungsstatus.
CALL CONNECTION_STATUS();
Wenn es keine Fehler gibt, können Sie mit Einrichten der Datenaufnahme für Ihren Snowflake Connector for Google Analytics Raw Data fortfahren, um Ihre Google Analytics-Eigenschaften zu aktivieren.