Que sont les processus ETL
L’origine des données peut être très diverse et on peut les retrouver sous différents formats. Pour cette raison, il est souvent nécessaire de standardiser les informations brutes reçues pour une meilleure organisation au sein de l’entrepôt de données.
Qu'est-ce qu'ETL : fonctions et phases
Le processus ETL consiste essentiellement à déplacer des données entre différentes sources et à appliquer des transformations en cours de route si nécessaire.
Dans de nombreux cas, il est nécessaire de migrer les informations d'une base de données à une autre ou de collecter des informations provenant de serveurs externes et de les stocker de manière propre et organisée dans un entrepôt de données, également appelé entrepôt de données.
Nous allons analyser chacune des phases d'un processus ETL :
1. Extraction
Cette partie consiste à collecter des données brutes provenant de différentes sources d'information. Normalement, la source est constituée de fichiers plats ou de bases de données relationnelles (SQL).
Cependant, des connexions peuvent être établies avec des bases de données non relationnelles (NoSQL) ou des informations provenant de systèmes en temps réel.
Dans la partie extraction, on vérifie également que les informations reçues par l'expéditeur ont le format correct et la structure nécessaire pour que les étapes ETL suivantes puissent avoir lieu.
2. Transformations
La partie transformation consiste à appliquer certaines modifications aux données reçues de la phase d'extraction selon un ensemble de règles métier.
Certaines de ces transformations consistent à calculer de nouvelles valeurs à partir de celles existantes, à sélectionner uniquement certaines colonnes, à encoder des valeurs catégorielles, à faire pivoter les colonnes et les lignes par pivotement, etc.
Une fois que les données respectent déjà les règles prédéfinies, il est temps de passer à la phase suivante : le chargement.
3. Charger
La dernière phase consiste à charger les données propres avec la structure correcte dans le système de destination. Normalement, ce dump de données est effectué dans un entrepôt de données. Là, ils sont stockés en toute sécurité et peuvent être analysés et visualisés ultérieurement avec des outils BI tels que Power BI ou Tableau.
Processus ELT : lacs de données
ELT signifie Extract, Load and Transform et est une méthode qui diffère des processus ETL en ce sens que la transformation des données a lieu après le chargement dans le système cible. Autrement dit, le système qui stocke les informations doit être capable d’appliquer les transformations nécessaires.
Dans ce cas, le format de stockage des données consiste en un lac de données. Un lac de données est un magasin de données brutes qui n'a aucune structure prédéfinie.
On pourrait dire que les données sont stockées de manière ordonnée, contrairement aux entrepôts de données (typiques des processus ETL) où les informations sont stockées de manière ordonnée selon un certain schéma.
Le processus ELT est généralement utilisé dans les bases de données non relationnelles ou NoSQL.
Différences entre ETL et ELT
Il n’y a pas de méthode meilleure ou pire. Chaque processus est optimal pour certaines fonctionnalités.
L’ingénieur Big Data doit être capable de concevoir un bon pipeline en fonction des besoins requis dans chaque application.
La principale différence entre ETL et ELT réside dans le moment où les données sont traitées, nettoyées et sélectionnées. Dans le cas d'ETL, cela se produit avant d'être enregistré à destination, certaines informations sont donc perdues au cours du processus.
Au lieu de cela, ELT, les données sont transformées directement à destination, préservant ainsi les données initiales.
En règle générale, l'infrastructure de stockage dans laquelle un processus ETL est utilisé est appelée entrepôt de données. Dans le cas des processus ELT, cette infrastructure est appelée lac de données. Les lacs de données n'ont aucun schéma, ce sont des données brutes et ne sont pas ordonnées.
En revanche, les entrepôts de données sont des structures de données ordonnées selon un schéma prédéterminé.
L’utilisation de l’un ou de l’autre dépend de l’objectif du projet. Par exemple, si la vitesse d’ingestion est très importante alors nous opterons pour un processus ELT puisque nous ne perdrons pas de temps à transformer les données avant de les sauvegarder dans le système de destination.