ETL & ELT
ETL et ELT sont deux concepts basés sur les mêmes étapes, bien qu’exécutés dans un ordre différent.
E : Extract (Extraire)
T : Transform (Transformer)
L : Load (Charger)
Extract
La première étape de notre processus consiste à extraire des données. Dans le monde réel, nous extrayons et collectons des données de différentes sources : APIs, fichiers csv, dumps de bases de données… pour une utilisation ultérieure.
Dans notre boulangerie, les données sont nos ingrédients. Lorsque nous allons les acheter, nous pouvons aller de boutique en boutique pour trouver ce qu’il nous faut. On “extrait” et rassemble des ingrédients, tels quels, pour une utilisation ultérieure.
Dans le monde des données, la phase d’extraction est “brutale”. Nous extrayons l’intégralité des datas de nos sources.. Pas le temps de s’occuper du nettoyage, pour l’instant.
C’est pareil pour nos achats. Imaginons que nous avons oublié notre liste d’ingrédients, nous achètons alors des choses dont nous n’aurons peut-être pas besoin, ou plus d’ingrédients que nécessaire (d’ailleurs, qui utilise 1 kg entier de sucre dans un gâteau ^^)
Maintenant que nous avons des données, étape suivante. Alors, T ou L ?
Transform ou Load?
À une certaine époque, le stockage coûtait cher. Il fallait donc traiter (Transform) les données au préalable, pour ne stocker que des données qualifiées. Mais avec la croissance exponentielle des solutions cloud, qui a commencé dans les années 2000, le stockage est devenu de moins en moins un problème. On peut même avoir un stockage illimité, pour quelques centimes par Go/transaction.
Charger (Load) les données avant de les transformer est devenu la norme, dans la majorité des scénarios.
Load
Maintenant que nous avons récupéré nos données (ou nos ingrédients, ici), nous devons les charger (les stocker). Pour les données réelles, les fournisseurs de cloud offrent de nombreuses solutions, les plus populaires étant Amazon S3, Google Buckets et le stockage Azure.
Nos données sont encore brutes, tout comme nos ingrédients (rappelez-vous que jusqu’à maintenant, nous avons simplement acheté de la farine, du sucre, du chocolat, de la crème, etc.) Nous avons tout dans son propre emballage, provenant de différentes sources.
Nous les ramenons à la maison et les stockons “tels quels” dans nos “espaces de stockage”, nos étagères.
Transform
Bon, il faut pâtisser. Cette phase dépend de ce que nous voulons faire de nos données/ingrédients. De nombreuses recettes utilisent les mêmes ingrédients pour des résultats différents.
Un œuf, par exemple, peut être cuit, bouilli, fouetté… Même ingrédient, transformation différente.
Il en va de même avec les données. Un fichier JSON provenant d’une API peut être lu et chargé dans un dataframe pour entraîner des modèles de Machine Learning, ou être analysé pour entrer dans une base de données. Nous pouvons aggréger les données, faire des calculs, s’en servir de base pour créer de nouvelles données…
Tout dépend de notre objectif final. On peut faire des cupcakes, des croissants, des gâteaux de mariage, des beignets… le tout avec les “mêmes” ingrédients.
Avec des données texte par exemple, on peut construire une plateforme de Business Intelligence pour nos utilisateurs, former un modèle d’analyse des sentiments, développer une API, etc.
Consommer la donnée
On récapitule. Nous avons extrait nos données (acheté les ingrédients), les avons chargées (pris les ingrédients à la maison et les avons stockés) et les avons transformées (préparé nos gâteaux).
Maintenant, nos utilisateurs/clients peuvent consommer nos données.
Tout comme nos clients peuvent acheter nos pâtisseries fraîchement préparées nous pouvons maintenant, avec nos données transformées, fournir une API, créer des analyses personnalisées ou utiliser des outils de Business Intelligence (tels que Power BI, Tableau, Looker…), etc. pour les besoins de nos utilisateurs finaux.
Images from Unsplash (Shayna Douglas, Annie Spratt, Evonne Yuwen)