Accès aux données ingérées par le Snowflake Connector for Google Analytics Raw Data

Ce chapitre explique comment accéder aux données brutes de Google Analytics à partir de votre compte Snowflake.

Dans ce chapitre :

Pour chaque propriété de BigQuery configurée pour la synchronisation, le Snowflake Connector for Google Analytics Raw Data crée :

  • La table ANALYTICS_propertyId portant le même nom que le nom de la propriété. Cette table contient les données quotidiennes brutes. Chaque enregistrement de la table est stocké sur une ligne distincte et les données d’événements Google Analytics sont enregistrées dans une seule colonne de type VARIANT.

  • La vue ANALYTICS_propertyId__VIEW qui mappe les données d’événements de la table ci-dessus vers des colonnes distinctes.

  • La table ANALYTICS_INTRADAY_propertyId portant le même nom que le nom de la propriété. Cette table contient les données intrajournalières brutes.

  • La vue ANALYTICS_INTRADAY_propertyId__VIEW qui mappe les données d’événements intrajournalières de la table ci-dessus vers des colonnes distinctes.

Le propriétaire temporaire des tables et des vues ci-dessus est le Snowflake Connector for Google Analytics Raw Data. La propriété doit être transférée lors de la désinstallation du connecteur ; pour des informations détaillées, voir Désinstallation et réinstallation du Snowflake Connector for Google Analytics Raw Data.

Les sections suivantes expliquent comment accorder les privilèges d’accès à ces données et comment accéder aux données de ces tables et vues.

Octroi de privilèges pour l’accès aux données Google Analytics dans Snowflake

Une fois que le Snowflake Connector for Google Analytics Raw Data a synchronisé les données avec Snowflake, vous pouvez utiliser data_owner_role pour accéder aux données ou tout autre rôle s’il remplit les deux conditions suivantes :

  • Dispose du privilège USAGE sur la base de données et le schéma qui contiennent les données ingérées par le Snowflake Connector for Google Analytics Raw Data.

  • Dispose du rôle d’application DATA_READER, titulaire du privilège SELECT sur les tables ou les vues de ce schéma.

Par exemple, si vous avez configuré le Snowflake Connector for Google Analytics Raw Data de sorte à stocker les données dans la base de données dest_db et le schéma dest_schema, vous pouvez créer le rôle google_analytics_raw_data_reader_role et lui accorder les privilèges d’accès aux données.

L’exemple suivant montre comment accorder ces privilèges :

CREATE ROLE google_analytics_raw_data_reader_role;
GRANT USAGE ON DATABASE dest_db TO ROLE google_analytics_raw_data_reader_role;
GRANT USAGE ON SCHEMA dest_db.dest_schema TO ROLE google_analytics_raw_data_reader_role;
GRANT APPLICATION ROLE SNOWFLAKE_CONNECTOR_FOR_GOOGLE_ANALYTICS_RAW_DATA.DATA_READER TO ROLE google_analytics_raw_data_reader_role;
Copy

Accès aux données brutes

Pour chaque table BigQuery que vous synchronisez, le Snowflake Connector for Google Analytics Raw Data crée une nouvelle table portant le même nom dans la base de données et le schéma Snowflake utilisés pour stocker le Snowflake Connector for Google Analytics Raw Data.

Par exemple, si vous avez configuré le connecteur de sorte à stocker les données dans la base de données dest_db et le schéma dest_schema et à accéder aux données via le rôle my_role, et si vous avez configuré le connecteur de sorte à synchroniser la table analytics_12345 dans BigQuery, le connecteur crée la table nommée dest_db.dest_schema.analytics_12345.

Cette table contient des données brutes ingérées depuis BigQuery. La table contient les colonnes suivantes :

Nom de la colonne

Type de données

Description

raw

VARIANT

Données de l’enregistrement sous forme brute.

run_id

VARIANT

L’ID du processus asynchrone qui a ingéré les données.

source_table_date

DATE

Le nom de la table quotidienne à partir de laquelle le connecteur a ingéré les données dans la table.

ingestion_complete

BOOLEAN

Vrai si le connecteur a ingéré toutes les données de la table quotidienne, faux si une partie des données est encore en cours de téléchargement.

Voici un exemple de la sortie d’une instruction SELECT qui récupère les données de la table dest_db.dest_schema.analytics_12345 :

SELECT * FROM DEST_DB.DEST_SCHEMA.ANALYTICS_12345 LIMIT 5;

+---------------------------+--------------------------------------+--------------------+--------------------+
| RAW                       | RUN_ID                               |  SOURCE_TABLE_DATE | INGESTION_COMPLETE |
+---------------------------+--------------------------------------+--------------------+--------------------+
| { "app_info": null, ... } | f8edbf0e-1d0d-4ff5-9e5c-0e114b1fc44a |  2023-06-13        |  TRUE              |
| { "app_info": null, ... } | f8edbf0e-1d0d-4ff5-9e5c-0e114b1fc44a |  2023-06-13        |  TRUE              |
| { "app_info": null, ... } | f8edbf0e-1d0d-4ff5-9e5c-0e114b1fc44a |  2023-06-13        |  TRUE              |
| { "app_info": null, ... } | d949ab70-6a7e-47a5-b876-d7e33d701b0d |  2023-06-14        |  FALSE             |
| { "app_info": null, ... } | d949ab70-6a7e-47a5-b876-d7e33d701b0d |  2023-06-14        |  FALSE             |
+---------------------------+--------------------------------------+--------------------+--------------------+
Copy

Accès aux données aplaties

Pour chaque table contenant des données, le connecteur crée une vue aplatie des données brutes. Le nom de la vue est le nom de la table avec le suffixe __view. Par exemple, pour la table nommée analytics_12345, le connecteur crée la vue dest_db.dest_schema.analytics_12345__view.

Note

Il n’existe pas de vues pour les lignes où ingestion_complete est défini sur FALSE .

Voici un exemple de la sortie d’une instruction SELECT qui récupère les données de la vue dest_db.dest_schema.analytics_12345__view. Dans cet exemple, la table analytics_12345 comporte la colonne VARIANT raw avec les valeurs nommées EVENT_DATE, EVENT_TIMESTAMP, EVENT_NAME et EVENT_PREVIOUS_TIMESTAMP.

USE ROLE MY_ROLE;
SELECT EVENT_DATE, EVENT_TIMESTAMP, EVENT_NAME, EVENT_PREVIOUS_TIMESTAMP
FROM DEST_DB.DEST_SCHEMA.ANALYTICS_12345__VIEW LIMIT 5;

+------------+--------------------------+-------------------+--------------------------+
| EVENT_DATE | EVENT_TIMESTAMP          | EVENT_NAME        | EVENT_PREVIOUS_TIMESTAMP |
+------------+--------------------------+-------------------+--------------------------+
| 2023-06-13 | 2023-06-13 18:27:20.775  | "page_view"       | null                     |
| 2023-06-13 | 2023-06-13 18:27:25.960  | "user_engagement" | null                     |
| 2023-06-13 | 2023-06-13 19:26:49.130  | "scroll"          | null                     |
| 2023-06-13 | 2023-06-13 18:27:51.135  | "page_view"       | null                     |
| 2023-06-13 | 2023-06-13 18:27:56.343  | "user_engagement" | null                     |
+------------+--------------------------+-------------------+--------------------------+
Copy