Busybiz - Blog

À la découverte d’un ETL

Rédigé par Jonathan Bengio | 03/12/19 09:50

 

Intégration de données ? Migration de données ? Besoin de croiser des données de sources et de formats variés en vue d’éditer des tableaux de bords décisionnels ? Chaque entreprise ressent un jour ou l’autre le besoin d’automatiser des traitements de données pour améliorer ses performances. Une des pistes les plus concrètes consiste en l’utilisation d’un ETL.

On vous fait le tour du propriétaire ? C’est parti !

ETL ?

En lisant ETL vous avez googlé le terme ? Bon réflexe ! Pour les autres, un petit résumé. Un ETL pour “Extract Transform Load” est un outil logiciel qui permet (comme son nom l’indique) d’extraire des données de sources et formats différents, de les transformer à sa guise et de les charger dans un système, un outil ou un fichier de sortie.

En un mot, l’ETL vous permet de manipuler vos données pour obtenir en sortie la donnée fiable la plus exploitable.

Et dans la pratique ?

Dans la pratique, de nombreux outils existent, en voici quelques-uns :

 

Tous ces outils sont différents : on peut trouver des outils à installer sur vos postes ou serveurs  (on-premise), des services en mode Cloud mais également des logiciels Open Source.

Un exemple concret

Rien de plus parlant qu’un cas de figure concret pour illustrer l’exploitation des ETL. Imaginons, une société de services “A” structurée autour de services commerciaux indépendants, aux méthodes et outils différents.

L’objectif de la société “A” est de réaliser des tableaux de bord de données commerciales transversales à tous ses services.

 

Dans l’exemple ci-avant, réalisons l’import des données de 3 services différents selon la configuration source suivantes :

 

Données

Service

Format

Récupération

Devis envoyés

Service 1

Base de données MySQL

Date

Montant du devis

Client / Prospect

Produits

Factures

Service 1

Fichiers XML

Date

Montant du devis

Client / Prospect

Devis associé

Campagnes Marketo

Service 1

Données Marketo

Date de la campagne

Ciblage

Résultats

Devis envoyés

Service 2

Base de données MySQL

Date

Montant du devis

Client / Prospect

Produits

Factures

Service 2

Fichiers XML

Date

Montant du devis

Client / Prospect

Devis associé

Devis envoyés

Service 3

Base de données MySQL

Date

Montant du devis

Client / Prospect

Produits

Factures

Service 3

Fichiers XML

Date

Montant du devis

Client / Prospect

Devis associé

Campagnes Marketo

Service 3

Données Marketo

Date de la campagne

Ciblage

Résultats

 

Dans un premier temps, il s’agit de créer un premier “Job”, qui permettra de récupérer et transformer les données provenant du service 1. Ci-après, une capture de création du job “RECUPERATION_VENTES_SERVICE1” :

Dans ce premier job, les composants nécessaires à la récupération des données sont ajoutés puis configurés (accès à la données, formats, colonnes, etc.) :

Ensuite, tous les composants devront se rejoindre dans le cadre d’une unification, d’une jointure ou d’un mapping. Pour joindre deux composants, il suffit d’effectuer un clic droit sur le composant sources, dans le menu déroulant, choisir “Row” puis “Main”. Une ligne apparaît alors à partir du composant. Il suffit ensuite de cliquer sur le composant de destination (sur les captures ci-après, un composant de mapping).

Le composant de mapping est celui qui permet de lier les données et de les réconcilier de manière à obtenir des données standardisées en sortie que ce soit au niveau de la donnée que de son format. Le composant de mapping se présente sous la forme d’une fenêtre à 3 colonnes :

  • Colonne 1 : format des champs disponibles pour chaque source de données
  • Colonne 2 : variables (notamment pour les calculs intermédiaires)
  • Colonne 3 : valeurs en sortie après mapping.

 

Le composant de mapping permet également d’intégrer des scripts de transformations.

 

S’il est possible de créer l’intégralité des extractions, transformations et chargements dans un seul job, nous proposons une bonne pratique : la création d’un job par thématique / contexte et la mise en place d’un job principal qui pourra lancer l’orchestration de tous les sous-jobs. Dans notre exemple, nous pouvons imaginer un job pour la récupération et le mapping des données pour chaque service, un job de chargement des données en sorties ainsi qu’un job d’orchestration principal.




L’orchestration des jobs s’effectue à l’aide des composants tRunJob. 

Astuce : lorsque vous construisez votre job de manière chronologique, vous pouvez démarrer un lien depuis un composant source puis cliquer dans un espace libre du job, Talend vous proposera la liste des composants disponibles compatibles.

Conclusion

Vous l’aurez compris, le monde des ETL est plein d’opportunités, de fonctionnalités et d’outils variés. Evidemment, chaque projet nécessite une réflexion pour choisir un outil adapté en termes de fonctionnalités, d’infrastructures, de budget mais également de finalité d’exploitation des données en sortie.