Introduction
:
À l'ère du numérique, la gestion optimale des données informatiques recueillies est essentielle
au succès d'une activité. À cet effet, on entend d'ailleurs parler de plus en plus souvent du
Business Intelligence ou Informatique Décisionnelle. Il s'agit de l'ensemble des
infrastructures, applications et techniques qui concernent la collecte, le traitement et l'analyse
d'informations numériques à des fins d'optimisation des performances d'une entité. Plus
précisément, on peut produire des graphiques statistiques, des tableaux de bord, des indices
KPI ou encore des rapports qui permettent d'améliorer les prises de décisions commerciales
ou de fonctionnement interne.
Dans cette chaîne de traitement des données numériques, la bonne réalisation du processus
ETL (Extract-Transform-Load) est indispensable pour garantir une meilleure suite des
opérations. Alors qu’est-ce que c’est un processus ETL ….
Définition :
https://www.youtube.com/watch?v=oF_2uDb7DvQ
Le chargement :
La dernière étape du processus ETL consiste à charger les données transformées dans la cible
de destination. Cette cible peut être une base de données ou un Data Warehouse. Il existe
deux méthodes principales pour charger les données dans un entrepôt : chargement complet et
chargement incrémentale.
Full load : avec un chargement complet, l'ensemble de données entier est vidé ou chargé, puis
est complètement remplacé (c'est-à-dire supprimé et remplacé) par le nouvel ensemble de
données mis à jour. Aucune information supplémentaire, telle que des horodatages, n'est
requise.
Prenons l'exemple d'un magasin qui télécharge toutes ses ventes via le processus ETL dans
l'entrepôt de données à la fin de chaque journée. Disons que 5 ventes ont été réalisées un
lundi, de sorte que le lundi soir, une table de 5 enregistrements serait téléchargée. Puis, mardi,
3 autres ventes ont été réalisées qui doivent être ajoutées. Ainsi, le mardi soir, en supposant un
chargement complet, les 5 enregistrements du lundi ainsi que les 3 enregistrements du mardi
sont téléchargés - un système inefficace, bien que relativement facile à configurer et à
entretenir. Bien que cet exemple soit trop simplifié, le principe est le même.
Chargement incrémentiel : seule la différence entre les données cible et source est chargée
via le processus ETL dans l'entrepôt de données. Il existe 2 types de chargements
incrémentiels, selon le volume de données que vous chargez ; chargement incrémentiel en
continu et chargement incrémentiel par lots.
Suivant l'exemple précédent, le magasin qui a réalisé 3 ventes mardi ne chargera que les 3
enregistrements supplémentaires dans la table des ventes, au lieu de recharger tous les
enregistrements. Cela a l'avantage d'économiser du temps et des ressources, mais augmente la
complexité.
Le chargement incrémental est bien sûr beaucoup plus rapide qu'un chargement complet. Le
principal inconvénient de ce type de chargement est la maintenabilité. Contrairement à un
chargement complet, avec un chargement incrémentiel, vous ne pouvez pas réexécuter le
chargement complet en cas d'erreur. En plus de cela, les fichiers doivent être chargés dans
l'ordre, de sorte que les erreurs aggravent le problème lorsque d'autres données sont mises en
file d'attente.
Aujourd'hui, les organisations s'éloignent du traitement et du chargement de données par lots
volumineux, préférant - ou motivées par les besoins de l'entreprise - traiter en temps réel à
l'aide du traitement de flux, ce qui signifie que lorsque les applications clientes écrivent des
données dans la source de données, les données sont traitées, transformées et enregistré dans
le magasin de données cible. Aujourd'hui, des outils existent pour activer ce processus, tels
qu'Apache Samza, Apache Storm et Apache Kafka. Cela élimine de nombreux inconvénients
du traitement et du chargement traditionnels, augmente la vitesse et diminue la complexité.
Défis de chargement avec ETL :
Lorsqu'il s'agit de charger les données via le processus ETL dans Data Warehouse vers l'ETL
Data Warehouse lui-même, en particulier dans le cadre du chargement incrémentiel, un
certain nombre de défis sont rencontrés.
Surveillance : comme les données sont extraites de sources disparates et transformées, il y a
forcément des erreurs ou des anomalies. Celles-ci peuvent être causées par des éléments tels
que l'expiration des informations d'identification de l'API ou des difficultés de communication
avec une API. Ces erreurs ou anomalies doivent être identifiées et corrigées le plus
rapidement possible.
Incompatibilité : de nouveaux enregistrements peuvent être ajoutés qui rendent les données
existantes invalides ; par exemple, un champ censé être un entier reçoit une valeur de date.
Cela est particulièrement problématique lorsque des données en temps réel sont ajoutées et
que les utilisateurs finaux interrogent ces données et reçoivent des résultats incorrects ou
incomplets, et un goulot d'étranglement est créé car de nouveaux enregistrements ne peuvent
pas être ajoutés.
Ordre : les pipelines de données sont souvent des systèmes distribués, de sorte que la
disponibilité est maximisée. Cela peut entraîner le traitement des données dans un ordre
différent de celui dans lequel ces données sont reçues, et est particulièrement pertinent si les
données sont mises à jour ou supprimées.
Dépendances : comprendre les dépendances entre processus, ou sous-processus, est essentiel
en matière de gestion ETL. Par exemple, exécuterez-vous le processus 2 si le processus 1 a
échoué ? Cela devient plus complexe à mesure que les processus et les sous-processus
augmentent.
Réconciliation : un autre défi majeur est le processus de réconciliation pour garantir que les
données dans un entrepôt de données ETL sont correctes et cohérentes. Alors que les tests
ETL doivent être effectués régulièrement, la réconciliation de l'entrepôt de données est un
processus continu.
Ces défis doivent être compris, atténués et gérés.
Un exemple de gestion de cela consiste à trouver l'équilibre entre le traitement parallèle et le
traitement en série.
Le traitement en série se produit lorsqu'une tâche est terminée à la fois et que les tâches sont
exécutées par le processeur dans une séquence. Ainsi, une tâche ne peut commencer que
lorsque la précédente est terminée. Le traitement parallèle, comme son nom l'indique, est un
type de traitement dans lequel plusieurs tâches sont effectuées en même temps.
Lorsqu'il s'agit de charger des données, si les processus ne sont pas dépendants les uns des
autres, ils peuvent être traités en parallèle, ce qui entraîne un gain de temps important.
Cependant, s'il existe des dépendances, cela peut entraîner des complications et les données
devront être traitées en série.
Le parallélisme peut également être atteint avec des données - en divisant un seul fichier
séquentiel en fichiers de données plus petits pour fournir un accès parallèle - pipeline, en
permettant à plusieurs composants sur le même flux de données de s'exécuter simultanément,
et composant, qui exécute plusieurs processus sur différents flux de données simultanément
dans le même emploi.
Viser à atteindre ces efficacités peut également être vu avec des outils ETL dans un entrepôt
de données tels qu'Amazon Redshift et BigQuery de Google. Avec Redshift, par exemple,
Columnar Storage et MPP Processing permettent un traitement analytique des requêtes hautes
performances. BigQuery est sans serveur et fournit un entrepôt de données en tant que
service, gérant l'entrepôt de données et permettant l'exécution de requêtes très rapides sur de
grands ensembles de données.
Quels sont les types courants d'outils ETL ?
Des types courants d'outils ETL que vous pouvez trouver sur le marché sont :
Outils ETL natifs du cloud : les données se déplacent désormais vers le cloud, tout comme
l'ETL. Diverses applications cloud natives ont fait leur apparition qui peuvent extraire et
charger des données à partir de sources directement dans un Cloud Data Warehouse. Ils
peuvent ensuite facilement transformer les données en utilisant la puissance du cloud. Ils
peuvent être déployés directement dans votre infrastructure cloud ou hébergés dans le cloud
en tant que SaaS.
Outils ETL de traitement par lots : jusqu'à il y a quelque temps, le traitement par lots était
le seul moyen de faire de l'ETL pour de nombreuses entreprises. Étant donné que le traitement
de gros volumes de données prenait beaucoup de ressources et de temps, il pouvait facilement
épuiser la puissance de stockage et de calcul d'une entreprise pendant les heures ouvrables.
Par conséquent, il était plus logique à l'époque de traiter ces données par lots pendant les
heures creuses.
Outils ETL en temps réel : la demande croissante de données en temps réel exige que nous
traitions les données en temps réel. Cela inclut un modèle distribué et des capacités de
diffusion par opposition aux outils de traitement par lots. Il existe divers outils en temps réel
disponibles à la fois en open source et dans des packages commerciaux. Consultez notre guide
sur le streaming ETL.
Outils ETL open source : ces outils constituent une alternative peu coûteuse aux solutions
commerciales et constituent une option pratique pour de nombreuses entreprises. Certains
outils open source courants sont Apache Kafka, Apache Nifi et Apache Airflow. L'un des
inconvénients des outils open source est qu'ils ne sont pas conçus pour gérer les complexités
des données auxquelles sont confrontées les entreprises modernes et peuvent ne pas prendre
en charge les fonctionnalités souhaitables et la transformation complexe des données.
Quelles différences entre l'ETL et l'EAI ?
Des objectifs différents
Les outils ETL et EAI sont utilisés pour répondre à des besoins bien distincts et peuvent
même être combinés en fonction des projets.
L’ETL a pour mission d’extraire et de déplacer des données provenant de plusieurs sources
vers un data warehouse. Les données sont transformées et qualifiées au cours du déplacement.
L’objectif final d’un ETL est de permettre une meilleure prise de décision au sein de
l’entreprise. Il répond à une problématique d’exploitation des données.
L’EAI a pour mission de permettre l’échange et la synchronisation des données entre
plusieurs systèmes qui ne sont pas amenés à communiquer ensemble. Ce processus s’appuie
sur un référentiel de règles métier : les données ne sont pas transformées d'une application à
l'autre.
L’objectif final d’un EAI est de permettre l’interconnexion des systèmes de l’entreprise. Il
répond à des besoins d’optimisation des processus et des flux de données au sein du système
d’information.
Des projets différents :
L’ETL est généralement utilisé pour réaliser des projets d’intégration ou de migration de
données en continu au sein du SI de l’entreprise.
L’EAI est utilisé pour mettre plusieurs systèmes en interaction. Par exemple, permettre à une
application marketing d’utiliser les données du logiciel RH et vice versa.
Volumétrie des données :
Un ETL permet le traitement et l’intégration massif des données. Il effectue des extractions,
des transformations et des chargements d’importants volumes de données vers un data
warehouse.
Un EAI a permet de déplacer des quantités limitées de données de manière événementielle via
des files de messages et une série d'étapes d’une application à une autre.
Flux de données :
Le processus ETL fonctionne sur le principe de flux unidirectionnels : les données sont
extraites de plusieurs sources et envoyées vers un entrepôt de référence qui alimentera aux
outils décisionnels.
Au contraire, l’EAI intègre des flux bidirectionnels car les données sont extraites d’une ou
plusieurs applications et envoyées vers plusieurs cibles au sein du système d’information.
Les outils ETL et EAI permettent donc d’intégrer les données d’une entreprise mais ne
répondent pas aux mêmes besoins d'intégration.
Une entreprise qui a un projet global d’intégration de données optera davantage pour une
solution ETL lui permettant de traiter de gros volume vers une base de données de référence.
Une société utilisant plusieurs applications métier et souhaitant permettre l’échange
d’information entre elles optera pour une solution EAI. L’EAI répondant à des projets plus
ciblés autour des applications et logiciels de l’organisation.