Modèle d’ingestion de données du Snowflake Connector for Google Analytics Raw Data

Snowflake Connector for Google Analytics Raw Data est soumis aux Conditions de connecteur.

Ce chapitre fournit des informations sur les modèles d’ingestion de données pris en charge par le Snowflake Connector for Google Analytics Raw Data.

Exportation de Google Analytics vers BigQuery

Google Analytics prend en charge deux types d’exportations BigQuery :
  • Quotidiennement - Google Analytics exporte les données vers des tables nommées events_XXXXXX. Les tables sont créées une fois par jour, après la fin de la journée, une fois que tous les événements de la journée en question ont été collectés.

  • Streaming - Google Analytics exporte les données en continu tout au long de la journée et les stocke dans une table nommée events_intraday_XXXXXX.

  • Utilisateurs - Exportation Google Analytics contenant des données utilisateur associées aux événements collectés. Les tables sont stockées dans BigQuery sous les noms users_XXXXXX et pseudonymous_users_XXXXXX.

Le connecteur prend en charge les deux types d’exportations et télécharge automatiquement toutes les tables qu’il trouve dans BigQuery, qu’elles soient quotidiennes ou intrajournalières. Aucune configuration supplémentaire n’est nécessaire.

Tables réceptrices

Pour chaque propriété, le connecteur enregistre les événements dans des tables propres à la propriété, qui sont créées dans une base de données et un schéma fournis lors de la configuration du connecteur. Pour chacune des propriétés, quatre tables sont créées : une pour l’exportation quotidienne, une pour l’exportation intrajournalière et deux pour les exportations de données utilisateur, nommées respectivement ANALYTICS_XXXXXXXXX, ANALYTICS_INTRADAY_XXXXXXXXX, USERS_XXXXXXXXX et PSEUDONYMOUS_USERS_XXXXXXXXX. Le connecteur essaiera toujours d’ingérer toutes les tables disponibles dans BigQuery, quelle que soit la configuration d’exportation Google Analytics spécifique.

Ingestion de table quotidienne

Le connecteur télécharge l’ensemble de la table en une seule fois lorsqu’il détecte que la table est présente dans BigQuery. Google met en garde sur le fait que les tables quotidiennes peuvent être mises à jour jusqu’à 72 heures après la création de la table. Pour garantir la cohérence des données, le connecteur recharge les tables au bout de 72 heures (notez que l’heure de rechargement exacte dépend de la planification d’ingestion du connecteur). Les mises à jour dans BigQuery effectuées 72 heures après la création de la table ne seront pas reflétées dans Snowflake. Ces tables peuvent être rechargées manuellement, via l’une des procédures RELOAD_PROPERTY.

Ingestion intrajournalière

Le connecteur prend en charge le téléchargement des tables intrajournalières historiques (si elles sont présentes dans BigQuery) et l’ingestion en continu des tables intrajournalières qui continuent à recevoir des mises à jour.

Pour les jours passés, le connecteur télécharge les tables intrajournalières de la même manière que les tables quotidiennes : chaque table est téléchargée en entier, une table à la fois, jusqu’à ce que le processus atteigne les données de la journée en cours.

Lorsque le connecteur détecte qu’une table intrajournalière est la dernière dans BigQuery, il commence à traiter la table de manière incrémentielle. Cela signifie qu’il télécharge les lots de données entrants de la table tout au long de la journée, à un intervalle constant, qui est de 8 heures par défaut.

Lorsque l’une des conditions suivantes est remplie :

  • Une table du lendemain est apparue dans l’ensemble de données BigQuery

  • 24 heures se sont écoulées depuis le premier chargement de la table en question

Le connecteur effectue une dernière ingestion pour la table intrajournalière en question et passe à la suivante.

Note

Il se peut qu’un petit nombre d’événements ne soient pas ingérés si les événements sont retardés de plus de 10 minutes. Immédiatement à la fin du chargement incrémentiel d’une table intrajournalière, le connecteur vérifie s’il existe des événements perdus et, si c’est le cas, planifie un rechargement de la table pour garantir la cohérence des données entre Snowflake et BigQuery.

Ingestion de tables de données utilisateur

L’ingestion de tables de données utilisateur est basée sur le même mécanisme que l’ingestion de tables quotidienne.

Planification

Le connecteur vérifie s’il existe de nouvelles tables dans BigQuery, puis planifie leur ingestion (ou leur ingestion partielle en cas d’ingestions intrajournalières incrémentielles) dans Snowflake lorsque :

  • La tâche est déclenchée en fonction d’une planification configurée
    • Par défaut, cette opération est effectuée toutes les 8 heures

    • En utilisant CONFIGURE_INGESTION_INTERVAL, vous pouvez modifier la valeur d’intervalle par défaut si vous avez besoin de mises à jour plus/moins fréquentes.

  • Le connecteur a terminé l’ingestion de la dernière table planifiée
    • Par conséquent, cela signifie que les planifications sont plus fréquentes que ce que prévoit la configuration, puisqu’il doit y avoir au moins une ingestion par jour, ce qui signifie au moins un contrôle supplémentaire.

    • En particulier, lorsqu’un chargement initiale est en cours et qu’il existe un grand nombre de tables à ingérer, après l’ingestion de chacune des tables, le mécanisme de planification est déclenché.