L’acronyme ETL désigne en anglais Extract Transform Load que l’on traduit en Extraire Transformer et Charger. C’est un élément majeur de l’intégration d’applications.
Un ETL permet de transformer et transposer de gros volumes de données entre des technologies hétérogènes.
L’ETL a révolutionné l’intégration des applications de l’entreprise en supprimant la nécessité de développer du code spécifique dans chaque application pour interagir avec les autres systèmes. Avant les ETL, quand une application voulait dialoguer avec une autre application de l’entreprise, dans le meilleur de cas on procédait par des extractions de données et l’importation, le tout directement au niveau de la base de données. Mais pour communiquer avec une application extérieure ou sans pouvoir copier les données au niveau du serveur de base de données, un programme se chargeait d’extraire les données en générant un fichier et un autre programme était dédié au chargement des données dans l’autre système.
Souvent certains systèmes sont anciens et les personnes sachant développer avec ces technologies se font rares.
Tout changement dans la nature ou le format des données aboutissait à revoir le code des deux côtés. Souvent avec des enjeux de périmètre de responsabilité, de compétence et de budget.
L’ETL est alors venu se greffer entre les systèmes pour faire transiter les données d’un système à l’autre en effectuant les transformations nécessaires sur les données pour assurer l’interopérabilité.
Il agit de manière asynchrone lorsque par exemple un traitement journalier va générer un fichier à partir des données transformées d’un système A, fichier qui sera chargé par le système B à heure fixe ou par détection.
Il peut agir de manière synchrone lorsqu’un événement sur des données va lancer un traitement immédiat pour mettre à jour des données. Ce cas d’utilisation est à prendre avec précaution car il est fragile sur la question du volume des données et du temps de traitement comparé à l’intervalle entre les déclenchements. Ce n’est pas la solution à privilégier pour la communication synchrone entre les systèmes.
Un des points forts de l’ETL est qu’il est indépendant des systèmes sources et destination, qu’il ne se limite pas au point à point en permettant de mettre à jour plusieurs systèmes hétérogènes à partir des mêmes données sources. En outre, il s’accompagne souvent d’outils de gestion des traitements: lancement, suspension, reprise, rapports…
L’ETL a connu un fort développement lors de l’engouement pour la BI (Business Intelligence ou Intelligence d’Affaire) où il se chargeait d’alimenter le datawarehouse et les datamarts à partir des multiples données de l’entreprise.
Les outils ETL se sont enrichis au fil des années et font maintenant partie de suites complètes permettant tout type d’interopérabilité: ESB, ETL, MDR, Streaming, Assurance Qualité…
Quelques fournisseurs: