In Tribune expert

Les plateformes Cloud telles que Google Cloud Plateform (GCP) sont devenues incontournables dans le monde de la Data. Les entreprises sont de plus en plus séduites par les services proposés. La variété de services, les coûts et la maintenance sont les principales raisons du succès de ces plateformes.

Certaines entreprises choisissent les plateformes Cloud pour la création ou la migration de Datamarts hébergés dans des systèmes traditionnels. Le cloud représente un moyen efficace de se développer sans avoir à investir dans une coûteuse infrastructure informatique. 

Dans cet article, nous souhaitons nous focaliser sur le processus de création et d’automatisation de Datamarts sous la plateforme GCP. Nous allons vous expliquer notre vision sur la collecte des données, la transformation de celles-ci, puis comment en tirer de la valeur grâce à la construction, l’automatisation et l’exploitation de Datamarts. Nous terminerons avec une partie visualisation en proposant une listes d’outils complémentaires à la plateforme Cloud de Google.

La collecte et le stockage des données

Pourquoi choisir Cloud Storage ?

Nous avons besoin d’un outil de stockage qui peut ingérer un grand volume de données provenant de multiples sources. Par exemple, il peut s’agir de données de navigation web, d’objets connectés, CRM, … et provenir de différentes sources telles que AWS S3 ou d’un système on-premise HDFS. Elles peuvent également être de types différents (fichiers plats, bases de données relationnelles, …).

Google Cloud Storage (GCS) est un service de stockage Google qui répond aux besoins de collecte et de stockage. Les raisons du choix de GCS sont multiples, en voici les principales :

  • Coût: GCS propose des classes de stockages à des prix différents selon les besoins d’accès et de disponibilités. Cela permet à l’utilisateur d’équilibrer les coûts,

  • Distribué : les données peuvent atteindre une grande volumétrie (Exa-octets) tout en conservant d’excellentes performances en lecture et écriture 

  • Flexibilité et Cohérence : Intégration native avec plusieurs services de GCP dont BigQuery,

  • Sécurisé.

Les méthodes d’ingestion des données sous GCS

Cloud Storage dispose de plusieurs systèmes d’ingestion de données. L’utilisateur choisit la méthode selon son besoin :

  • Data Transfer : Permet d’établir une connexion entre Cloud Storage et différents outils de stockage externes Cloud tel que AWS S3, Azure Storage mais aussi depuis des plateformes on-premise. Il permet le transfert de données volumineuses tous les jours à une fréquence donnée.

  • Transfer Appliance : Transfert de données à grande échelle hors connexion pour le rapatriement d’énormes volumétrie de données (>20To).

  • gsutil: Transfert de fichiers ponctuel ou manuel depuis sa machine.

  • PubSub et autres outils GCP : Il est aussi possible d’utiliser des outils tels que PubSub pour récupérer de la donnée issue de capteurs par exemple.

Le cas particulier de Google Analytics

Les données de navigation issues d’un compte Google Analytics 360 peuvent être importées directement dans BigQuery. Pour cela, Google met à disposition un connecteur afin de réaliser des exports quotidiens des données vers une table BigQuery. Il n’y a donc pas besoin de passer par Cloud Storage.

Du stockage de fichiers au Datamart analytique

Une fois les fichiers de données collectés, regardons comment nous pouvons en tirer de la valeur et les rendre exploitables par les équipes d’analyses. Cloud Storage n’étant pas une plateforme d’analyse mais bien de stockage, l’équivalent d’un système HDFS, il est impossible de requêter facilement ces fichiers. Nous exploiterons ici le trio Cloud Storage, Dataflow et BigQuery qui répondront à une majorité de vos besoins. Dataflow se chargera d’intégrer et d’enrichir les données sur Cloud Storage puis de les déposer dans BigQuery.

Dataflow pour la transformation de vos données

Dataflow est un puissant outil de traitement de données basé sur le SDK Open Source Apache Beam. Cet ETL intervient pour charger, transformer et enrichir les données d’un outil GCP à un autre. Il peut nettoyer les données, filtrer et joindre plusieurs sources de données entre elles puis les exporter où bon vous semble. Ses avantages sont nombreux :

  • Serverless : Il n’y a pas besoin de réserver et de préparer des serveurs de calcul, Dataflow automatise le provisionnement et la gestion des ressources pour vous. Vous ne payez ainsi que ce que vous utilisez.

  • Traitement en mode batch ou streaming : Dataflow peut intervenir en mode batch pour un traitement ponctuel, déclenché à une heure précise par un CRON Scheduler ou tout autre déclencheur (dépôt d’un fichier dans GCS par exemple). Il peut aussi fonctionner en mode streaming afin d’effectuer les traitements au plus vite dès que la donnée lui est envoyée d’un PubSub par exemple

  • Templates prêt à l’emploi : Une fois encore, Google nous facilite le développement en proposant des modèles de Pipeline de traitement basique sur les 2 modes (stream/batch) : GCS to BigQuery, BigQuery to BigQuery, PubSub to BigQuery, etc. Si les templates ne sont pas suffisants pour des projets plus complexes, vous pouvez réaliser vos propres Pipelines grâce aux API Python et Java. Voici quelques exemples de templates Dataflow disponibles, sans avoir besoin de réaliser une seule ligne de code…

Pour poursuivre notre exemple de Datamart, il serait ici possible de mettre en place une Pipeline Dataflow de type batch « Text Files on Cloud Storage to BigQuery ». Dès qu’un fichier est déposé sur GCS, le job Dataflow se déclenche afin de réaliser le nettoyage des données puis les dépose dans la table BigQuery prévue à cet effet. De plus, les lignes à erreurs, seront automatiquement mises de côté dans une seconde table afin de visualiser et corriger d’éventuels problèmes dans la Pipeline.

Cette approche est très intéressante quand les volumes de données à traiter sont importants. Dataflow permet donc de collecter toutes vos données afin de les centraliser dans BigQuery.

Ajouter de la valeur à vos données avec BigQuery

Comme évoqué précédemment, BigQuery assure parfaitement son rôle de Datawarehouse et risque rapidement de devenir la plateforme d’analyse préférée de vos Data Analysts. Ses nombreux avantages font de lui l’outil pivot de la stratégie menée par Google.

Vos données brutes déposées par Dataflow ou autres systèmes, restent bien souvent compliquées à travailler : multiples jointures avec les référentiels, nombreux filtres pas toujours évident à se souvenir, plusieurs colonnes disponibles pour une même information, etc. Pour ces raisons, des datamarts thématiques doivent être construits afin de faciliter le travail des analystes et de disposer rapidement des informations clés autour de vos clients, des performances de vos sites web, des ventes de vos produits, etc. Voici quelques exemples de datamarts possibles :

  • Datamart Clients : table niveau clients avec les chiffres d’affaires déclinés sur différentes périodes, informations socio-démo (âge, sexe, lieu d’habitation, CSP, etc.), informations de contactabilité (nombre de contacts, réactivité aux emails, etc.),

  • Datamart Navigation : Les données de navigation sont généralement complexes et très volumineuses. Il est possible de construire des tables fournissant différents KPI de votre site web ou application. Ces tables peuvent alimenter des reportings décisionnels ou être réutilisées dans le cadre d’analyses clients.

  • Datamart Produits : Pour chacun de vos produits, mise à disposition des informations propres au produit (type de produit, couleur, prix) mais aussi des informations sur les ventes : nombre de clients sur 1 an, chiffre d’affaires associé sur l’année, saisonnalité du produit, ruptures de stocks, etc.

Ces différents datamarts seront le socle de vos futures analyses, reportings, segmentations ou scoring clients. Ils vous feront gagner un temps de développement précieux ! Mais par où commencer ?

  1. Tout d’abord, il vous faudra créer l’ensemble des requêtes permettant d’obtenir les tables souhaitées de votre futur datamart,

  2. Faire valider ces scripts et les indicateurs calculés,

  3. Automatiser le calcul de ces tables afin de les rafraîchir tous les mois, tous les jours ou même en temps réel dès que les données sources sont actualisées.

Les deux premiers points étant propre à chaque entreprise, passons aux explications sur l’automatisation de vos scripts.

Actualisation automatique de vos datamarts

Les requêtes programmées à une date/heure précise

Les requêtes programmées reste la solution la plus simple pour effectuer une tâche récurrente dans BigQuery. Il suffit simplement d’écrire la requête dans la console BigQuery puis de choisir « Programmer une requête » dans la barre d’exécution. Vous pourrez simplement choisir la fréquence et l’heure d’actualisation de votre requête. Cette fonctionnalité, très pratique, répond principalement aux besoins utilisateurs mais n’est pas forcément adaptée aux tâches critiques de production. Par exemple, il n’est pas possible d’utiliser un gestionnaire de versionning de codes type Git pour mettre le code à l’abri de toutes mauvaises manipulations. Il faut aussi être sûr que votre table source ait bien été mise à jour avant de lancer votre script du jour.

Actualisation en temps réel de vos tables via Cloud Functions

L’autre solution pour automatiser vos scripts BigQuery est de passer par les Cloud Functions. Cloud Functions est un micro-service GCP permettant d’exécuter des jobs (Python, Go, NodeJS) à la volée sans avoir à gérer les ressources machines (création d’une VM, installation de Python et des packages, etc.). Ces Cloud Functions se déclenchent suite à un événement précis à paramétrer :

  • Modification d’un fichier sur Cloud Storage : Intéressant si on souhaite déclencher notre fonction dès qu’un fichier est ajouté dans Storage.

  • Mise à jour d’une table via un message PubSub : ce qui dans notre cas nous intéresse !

  • Envoie d’une requête HTML

Prenons l’exemple des données Google Analytics. Ces données sont directement déposées dans BigQuery, chaque matin entre 5h et 9h, parfois un peu plus tard. Avec les requêtes programmées, il faudrait prévoir une execution de la requête à 11h ou à midi pour être sûr que les données soient à jour ! Avec Cloud Functions, nous pouvons déclencher la requête dès que la table Google Analytics est mise à jour par Google. Plus besoin d’attendre 10h, 11h ou midi contrairement aux requêtes programmées !

Cette Cloud Function repose sur un programme Python qui récupère le texte de votre requête puis envoie l’ordre à BigQuery de l’exécuter afin de mettre à jour la table de votre datamart Navigation. Simple, non ? Ce processus est réutilisable pour toutes vos tables :

  • Le datamart clients se met à jour dès que la table des transactions a été mise à jour par le SI ou par votre propre Dataflow.

  • La datamart produit se met à jour dès que la table des données brutes du catalogue produits a été mise à jour grâce à votre Dataflow.

Contrairement aux requêtes programmées, les Cloud Functions disposent d’un monitoring plus poussé et le code source Python peut être récupéré depuis une source Git. Avec cette solution, si vos tables brutes sont mises à jour plusieurs fois par jour, vos datamarts seront donc eux aussi alimentés en temps réel, tout comme les potentiels reportings basés sur ces datamarts. Génial, non ?

Visualisation

La visualisation, dernière étape de notre processus, va permettre d’analyser vos données ou de proposer des rapports complets à vos équipes. Quels outils de visualisation peut-on connecter à BigQuery ? Quels sont les plus simples et les plus adaptés ?

DataStudio : la solution simple et native à BigQuery

Le connecteur BigQuery à Datastudio permet de créer et de partager des tableaux de bord basés sur les données de BigQuery. Il s’agit certainement de la solution la plus simple pour mettre en ligne un reporting. De plus, Data Studio repose sur la puissance de calcul BigQuery lui permettant d’effectuer des croisements sur de grandes volumétries de données avec des temps de réponse très faibles. Il n’y a aucune installation à faire, tout se passe en ligne ! De ce fait, DataStudio est un peu plus limité en terme d’objets de création mais répondra tout de même à 90% de vos besoins !

De nombreux connecteurs vers les autres outils de visualisation

Aujourd’hui, les principaux outils de data visualisation disposent de connecteurs afin d’importer des tables ou vues de BigQuery. Parmi eux, nous pouvons citer 3 exemples disposant d’une connectivité à BigQuery : Tableau, Power BI ou encore QlikView. Le système d’actualisation n’est cependant pas aussi simple que DataStudio. Il vous faudra soit « importer » la table BigQuery ou passer par un système de requêtes si vous souhaitez ne pas exploiter la table dans son état actuelle. La mise à jour des rapports est donc un peu plus complexe.

Cet article vous donne un aperçu des possibilités qu’offre le Cloud pour mener à bien ce type de projets. Les plateformes Cloud sont en constante évolutions afin de proposer un maximum de services et couvrir l’ensemble des besoins autour de la données.

Recommended Posts
AVISIA