Un DWH et un pipeline ELT / ETL



Obtenez des données centralisées, fiables, accessibles et protégées.

Cadrage

BesoinsOptimisation des coûtsModèle de données

Extraction

Données structurées
Données semi-structurées
Données non structurées

Chargement

Transformation

dbt (Data Build Tool)
Nettoyage
Validation
Restructuration
Enrichissement
Agrégation

Structure des données

Environnements

Documentation

Data Build Tool (dbt)

Une documentation de votre pipeline ELT / ETL est essentielle. Cela permet de vulgariser comment les données sont extraites, comment elles sont liées entre elles, comment elles sont transformées et chargées dans le Data Warehouse. C’est une sorte de mode d’emploi pour quiconque découvrirait ce processus, un nouveau Data Analyst qui vient de rejoindre vos équipes par exemple.

Sécurisation des données

IAM

Mes réponses à vos questions (FAQ)

Une base de données classique (postgreSQL, MySQL…) est construite de telle sorte qu’elle optimise le stockage et la récupération des données en temps réel. A l’inverse, un Data Warehouse a pour but de stocker des données historisées et de permettre des analyses complexes sur ces données.

Un data Warehouse permet de stocker des données structurées (brutes et retraitées). A l’inverse, un Datalake permet de stocker n’importe quel type de données (structurées, semi-structurées, non structurées).

Un Data Warehouse est utilisé par l’intégralité de l’entreprise comme référence Data. Un Data Mart, lui, répond aux besoins spécifiques d’un département ou d’une équipe (le Marketing, la Finance…).

ETL est l’acronyme pour Extract, Transform et Load. A travers ce processus les données sont donc extraites des différentes sources, transformées selon les besoins de l’entreprise et chargées dans le Data Warehouse.

Selon les données en entrée, leur chargement au sein du Data Warehouse intervient après la transformation des données (pipeline ETL) ou avant la transformation des données (pipeline ELT).

Pour des données structurées, je recommande d’utiliser le processus ELT. Les données sont donc extraites (E), chargées dans le Data Warehouse (L) puis transformées (T). En stockant les données en l’état vous faites du Data Warehouse la source de toutes les données de l’entreprise (les données brutes et retraitées).

Pour des données semi-structurées ou non structurées, il est nécessaire d’utiliser le processus ETL. En effet un Data Warehouse ne permet pas de stocker des données semi ou non structurées. Une fois les données extraites (E), il faut immédiatement les transformer (T) pour les obtenir dans un format compatible avec le Data Warehouse, puis les charger dans le Data Warehouse (L) une fois retraitées.

Si vous avez à fois des données structurées, semi-structurées et non structurées, le pipeline sera donc une combinaison du processus ELT et du processus ETL.

DBT est l’acronyme de Data Build Tool. Cet outil facilite grandement la construction du pipeline. La gestion de l’environnement (test / prod) est intégrée, la documentation créée automatiquement. Voici plus de détails sur le site de DBT.

Je recommande de ne pas modifier les données d’entrée avant de les importer dans le Data Warehouse. Et ce pour deux raisons majeures :

  • vous connaissez les besoins métiers actuels, mais vous ne connaissez pas les besoins métiers futurs. Laissez-vous de la flexibilité en récupérant les données en l’état et en les transformant après coup en fonction des évolutions des besoins métiers.
  • votre Data Warehouse sera utilisé comme source de toutes les données, qu’elles soient brutes ou retraitées. Ce sera LA référence pour tous les collaborateurs.

Les deux. BigQuery est la solution développée par Google pour obtenir un Data Warehouse de qualité. C’était également initialement le nom du langage utilisé pour requêter le Data Warehouse (BigQuery est un SQL amélioré). Depuis peu Google a renommé le langage BigQuery en GoogleSQL, mais le terme BigQuery reste dans l’usage courant la désignation du langage et du Data Warehouse. Pour plus de détails voici la documentation Google sur BigQuery.

Si vous ne savez pas quelles transformations effectuer, une approche efficace est de commencer à utiliser les outils de visualisation des données directement sur vos données brutes du Data Warehouse. Ainsi vous allez très vite identifier certains problèmes de performance ou certaines requêtes qui font des jointures entre de nombreuses tables.

Vous pourrez alors :

  • agréger ces données directement dans le Data Warehouse grâce au pipeline ELT / ETL
  • préparer des vues qui correspondent aux utilisations fréquentes dans les dashboards

Plusieurs approches permettent de réduire les coûts de BigQuery :

  • partitionnez vos tables dans BigQuery et utilisez ce partitionnement dans vos requêtes (requêtes manuelles de vos collaborateurs et des dashboards). Voici la documentation BigQuery sur les tables partitionnées.
  • choisissez soigneusement pour chaque table la fréquence de mise à jour par le pipeline Data. Réduisez au maximum cette fréquence pour réduire les coûts du pipeline ETL. Par exemple, une donnée qui est regardée au mois n’aura pas intérêt à être recalculée chaque jour.
  • réduisez autant que possible le nombre de lignes dans chaque table. Vous pouvez notamment agréger les données lorsqu’une vue détaillée n’est pas utile.