Académique Documents
Professionnel Documents
Culture Documents
I. Data Warehouse
Contrôle qualité et analyse de défaut des chaînes de production en fonction des centres
de production, des organisations, des fournisseurs...
L'ETL est le processus de copie des données depuis les tables des systèmes transactionnels vers
les tables du modèle en étoile du Data Warehouse
Les bases de données concernées par l’ETL peuvent donc être de type différent et, pendant la
synchronisation, diverses modifications peuvent être apportées sur les données (jointures, encodages,
tris …).
Méthodologie
Les bases de données concernées par l’ETL peuvent donc être de type différent et, pendant la
synchronisation, diverses modifications peuvent être apportées sur les données (jointures,
encodages, tris …).
Dans cet article, nous allons plus précisément nous intéresser à l’outil ETL open source
développé par la société Talend, en traçant les grandes lignes des fonctionnalités proposées
puis en présentant quelques exemples d’utilisation.
1.1 Le logiciel
« Talend Open Studio » est un outil d’intégration de données open source distribué depuis 2006
sous la licence GNU General Public License (GPL) par la société Talend. Talend Open Studio
est basé sur la plateforme Eclipse et peut être installé sur les systèmes d’exploitation Linux et
Windows.
La société propose également une version payante nommée « Talend Integration Suite ». Les
différences majeures entre ces deux versions se situent principalement autour de la gestion, du
déploiement et de l’exécution des tâches. En effet, la version payante prend en charge la gestion
de configuration avec la possibilité d’utiliser un gestionnaire de sources (principalement CVS ou
SVN) ainsi qu’une solution de supervision des flux intégrée à Eclipse ou en version Web.
Intégration de données
Activité consistant à regrouper les données issues de différentes sources, les unifier (i.e.
modifier pour les rendre cohérentes entre elles) pour donner à l'utilisateur une seule et même
vue des données disponibles.
Talend Open Studio supporte, en lecture et en écriture, la plupart des SGBD (MySQL, MS SQL
Server, DB2, PostgreSQL, Oracle, …) ainsi que certains formats de fichier (CSV, Excel, XML,
…). Le logiciel facilite la création de requêtes en s’appuyant sur une détection automatique du
schéma de la base de données. De plus, tous les schémas de données créés ainsi que les
connexions définies sont réutilisables pour d’autres Jobs afin de rendre la mise en place plus
rapide.
Au niveau des opérations disponibles, Talend propose une palette étendue d’objets et de
connecteurs (environ 400 éléments) que l’utilisateur peut associer facilement via l’interface
graphique. Ces éléments se combinent avec la majorité des SGBD supportés et offrent un large
panel de fonctionnalités : jointures, encodage, multiplexage …
A cette librairie d’opérations s’ajoute la possibilité de créer des routines. Les routines sont en
réalité des fonctions écrites en langage Java pour lesquelles les paramètres d’entrée et de sortie
sont définis pour s’adapter aux données à transformer. Cette approche ouvre largement le champ
de fonctionnalités supportées nativement par le logiciel.
L’interface graphique offre en plus la possibilité de suivre l’exécution des Jobs en temps réel tout
en indiquant des statistiques sur le déroulement de la tâche telles que le nombre de lignes
traitées ou encore la vitesse de l’opération en nombre de lignes par seconde.
Prérequis:
- Java 8 JRE Oracle. ( les variables d'environnement JAVA_HOME
et Path doivent êtres configurés).
- MySQL (Wamp, Xampp, ou autre) sur vos machine
Téléchargement:
Talend Open Studio for Data Integration est un produit open source libre
que vous pouvez télécharger directement depuis le site Web de Talend.
Installation :
L'installation s'effectue en dézippant le fichier .zip
précédemment téléchargé. Vous pouvez faire ceci en utilisant le
logiciel WinRar ou autre.
Pour vous connecter au Studio Talend pour la première fois, procédez comme suit :
Dans la fenêtre de login du Studio Talend, sélectionnez l'option Create a
new project, spécifiez le nom du projet : getting_started et cliquez sur
Finish pour créer un nouveau projet local
2. Prérequis
Les prérequis suivants doivent être installés avant de poursuivre l’installation :
● le JDK adéquat.
o Si vous travaillez avec un windows 32 bit choisissez un JDK adéquat à 32 bit.
o Si vous travaillez avec un windows 64 bit choisissez un JDK adéquat à 64 bit.
o Vous pouvez télécharger le JDK depuis le site officiel d’oracle. Voici le
lien : http://www.oracle.com/technetwork/java/javase/downloads/index-
jsp- 138363.html
o Après avoir installé le JDK, son emplacement par défaut sera :
C:\Program Files\Java.
TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle
Année universitaire 2019-2020
Pr. Z. ALAMI
3. Téléchargement
Lien de téléchargement depuis le site officiel d’Oracle :
http://www.oracle.com/technetwork/database/database-
technologies/express- edition/downloads/index.html
4. Installation
Une fois que le téléchargement du fichier est terminé, ouvrez le dossier
d’installation, et cliquez sur Disk1\setup pour lancer l’installation.
Vous devez renseigner le mot de passe correspondant au rôle préétabli qui est
system ou sys qui sera utilisé par la suite lors de la connexion.
Attention de ne pas oublier ce mot de passe, choisir le mot de passe sys.
En cours d’installation….
developer/downloads/index.html
TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle
Année universitaire 2019-2020
Pr. Z. ALAMI
Télécharger la version la dernière version 4.1.5 avec ou sans JDK.
Décompresser le fichier sqldeveloper-4.1.5-nojre.rar et exécuter le
sqldeveloper.exe Cette fenêtre apparaît demandant le dossier d'installation du jdk.
Cette fenêtre montre qu’il faut joindre le fichier java.exe pour exécuter SQL
Developer. Veuillez donner l’emplacement du fichier java.exe.
D’ailleurs il n’existe qu’un seul fichier java.exe sur le dossier C:\Program
Files\Java. Généralement : C:\Program Files\Java\jre6\bin.
Espace de travail
Au centre se trouve le "job designer", c'est ici que vous pouvez agencer graphiquement vos
différents composants pour construire vos jobs.
Enfin c'est en bas au centre que se trouvent les différentes vues : vue d'exécution, variables de
contexte, configuration de certains composants ...
Vocabulaire Talend:
Interface du Talend:
Repository:
La palette:
La palette est située sur le côté droit du Studio, elle contient les
composants pouvant êtres utilisés dans les travaux d'intégration de
données.
Onglets de configuration :
Exemple:
Tâche 1:
Essayer de reproduire le résultats dans le figure ci-dessus, en
suivant le étapes de création d’un job.
Tâche 2:
Travaillons sur un exemple de configuration de metadata
(métadonnées) en créant une connexion à la base de données
réutilisable :
1. Créer une nouvelle table dans la base de données MySQL nommée:
demo_talend .
Tâche 4:
1. Créez une table dans une base de données mysql, avec des
données aléatoires.
2. Lisez ces données et les affiches en console.
departements2.csv
marketing.csv
Question
Solution
Question
Solution
• Dans le référentiel à gauche de l'écran, cliquez droit sur "Jobs", puis sur "Créer un
job"
• Dans l'assistant qui s'ouvre, nommez votre job "Exercice1", puis cliquez sur
"Terminer"
• Un job vierge devra apparaître au niveau du job designer
Question
Solution
Question
Solution
• Appuyez sur Ctrl+Maj tout en glissant le fichier délimité dans votre job vierge : un
composant tFileInputDelimited est alors automatiquement créé dans votre job
• Procédez de même pour le second job
Question
Transformez vos numéros de départements pour qu'ils soient les mêmes que ceux renseignés
dans le fichier des magasins.
Indice
Solution
Indice
Solution
• Cette fois, vous ne pouvez pas utiliser une fonction prédéfinie : il faut vous-même
écrire votre fonction Java en créant une routine Talend !
Une fenetre s'affiche alors avec une classe java portant le meme nom que votre
routine : remplacez la fonction helloExample par la fonction suivante (noubliez pas
"import java.util.regex.Pattern;") :
Question
Joignez les 2 fichiers après transformation et récupérez les données de sortie dans un CSV
Indice
Solution
• Supprimez les composants tLogRow (ils servaient juste à effectuer un test en affichant
dans la console les données de sortie du tMap. Sans celui-ci nous n'aurions pu tester
nos deux premiers tMap avant la toute fin de l'exercice !)
• Dans la palette de composants sur la droite, trouvez le composant
tFileOutputDelimited, glissez-le et déposez-le dans le job designer (vers la droite)
• Remettre un nouveau composant tMap : il aura pour entrée la sortie des deux autres
tMap ; en sortie, il aura le tFileOutputDelimited
• Relier tMap avec ses 2 entrées (attention ! d'abord le tMap de transformation de
Magasins, puis le tMap de transformation de Departements) et sa sortie
• 3 erreurs apparaissent : procédez exactement comme précédemment pour les tMap de
transformation afin de définir leur sortie. Double cliquez sur le dernier tMap
• Glissez-déposez tous les attributs des magasins vers la table de sortie SAUF le numéro
du département
• Puis sélectionnez le numéro département depuis la table des magasins et déposez-le
sur la clé de la table des départements. Un lien violet apparaît.
• Glissez-déposez tous les attributs des départements vers la table de sortie ; cliquez sur
Appliquer, acceptez la propagation, puis Terminer
• Configurez tFileOutputDelimited : double-cliquez sur le composant. Dans la vue
Component qui s'ouvre sous le job, sélectionnez le bon chemin du fichier qui sera
créé. Cochez la case "Include Header".
• Exécutez le job et vérifiez que le CSV a bien été créé.
• Votre job ressemble alors à ceci :
Question
Solution
Question
Créez une erreur sur le tFileOutputDelimited : définissez un chemin de création du CSV qui
n'existe pas
Solution
Question
Synchronisez les jobs Exercice1 et Exercice2 pour que Exercice2 ne s'exécute que si
Exercice1 s'est bien déroulé
Indice
Solution
Question
Faites en sorte qu'une fenêtre affiche un message d'erreur si Exercice2 ne s'est pas bien
déroulé
Indice
Solution
• Cliquez droit sur Exercice2 > Déclencheur > On Subjob Error et reliez-le à un
tMsgBox
• Cliquez sur l'onglet Context
• Dans la table des variables, cliquez sur "+" pour en ajouter une et nommez cette
variable "error_message"
• Dans l'onglet Table des variables, dans le champ défault, saisissez "erreur de
répertoire sur tFileOutputDelimited"
• Double cliquez sur le tMsgBox afin d'afficher sa vue Component
• Dans le champ Message, saisir context.error_message
• Exécutez le job FinalJob
Nous disposons d’une base de données Microsoft SQL Server comportant diverses
tables relatives au fonctionnement d’une application. Parmi ces tables, nous
souhaitons exporter de manière régulière celle comportant des données sensibles :
les coordonnées de nos clients. Comme format d’export, le choix s’est porté sur un
fichier XML dont la structure est décrite dans le schéma récapitulatif suivant :
Préalablement à la création de cette tâche, nous allons créer une connexion vers la
source de données, dans notre cas une base Microsoft SQL Server. Cette opération
se réalise via l’onglet Référentiel > Métadonnées > Connexions > Créer une
connexion. Il suffit ensuite de choisir le type de base de données que l’on souhaite
utiliser puis de régler les paramètres de connexion.
L’étape suivante consiste à fournir au logiciel le schéma de la table que l’on souhaite
exporter. Cette opération est relativement simple dans ce cas car le schéma peut
directement être récupéré depuis la connexion à la base. Après avoir sélectionné la
table concernée, les colonnes sont automatiquement détectées.
Une fois le schéma enregistré, il ne reste plus qu’à écrire la requête SQL pour obtenir
les données souhaitées. Cette action est également simplifiée, un assistant proposant
Remarque : le référentiel est commun à tous les jobs. Il est ainsi possible de réutiliser
cette connexion pour de nombreux projets.
Au cours de l’étape précédente, nous avons mis en place une connexion à la base de
données utilisable par tous nos projets. Il faut maintenant créer le job représentant la
tâche d’exportation à proprement parler. Talend Open Studio permet de définir les jobs
via le Job Designer, interface graphique permettant de disposer des éléments issus
de la palette d’objets. Le logiciel génère parallèlement le code correspondant à la
tâche réalisée graphiquement par l’utilisateur.
La création d’un job se fait via un clic droit sur la section « Jobs » de l’onglet
« Référentiel ». Une fois celui-ci ouvert, l’interface graphique et la palette d’objets
proposés par le logiciel prennent place à l’écran.
Afin de réaliser notre exemple décrit précédemment, nous allons dans un premier
temps mettre en place l’objet qui, lors de l’exécution du job, rapatriera les données
depuis la base SQL. Pour cela, la palette propose sous l’onglet « Bases de données »
une liste des SGBD supportés. Pour notre exemple, nous ouvrons la rubrique « MS
SQL Server » puis nous plaçons sur la zone de création graphique une source de
données : l’objet « tMSSqlInput ».
Les objets ajoutés depuis la palette ne sont par défaut pas configurés. Un double clic
sur ceux-ci ouvre cependant le panneau « Component » qui permet de les paramétrer.
Ici, notre base de données a été définie préalablement. Il suffit donc de sélectionner à
l’aide des listes déroulantes les informations correspondantes à la connexion.
Notre source de données étant paramétrée, il faut alors mettre en place l’objet
permettant d’écrire le fichier XML de sortie. Pour cela, la palette propose sous l’onglet
« Fichiers » un objet nommé « tAdvancedFileOutputXML » que nous plaçons
également sur l’interface graphique.
Concernant les réglages de cet objet (appelé aussi bloc), il n’est pas possible ici
d’importer une configuration depuis le référentiel. Les paramètres doivent donc être
entrés manuellement via le panneau « Component » :
Le bouton « Configurer l’arbre XML » ouvre une fenêtre permettant d’importer notre
schéma. Ceci fait, la fenêtre se met à jour et affiche sur la partie gauche le schéma
des données entrantes et sur la droite les marqueurs placés dans le schéma XML.
Nous pouvons alors mapper ces éléments par glissé-déposé depuis les entrées vers
les sorties.
Enfin, nous définissons la balise Client de notre schéma XML comme « élément
boucle » : la portion du schéma contenue dans ce nœud sera réutilisée autant de fois
que de lignes SQL issues de la table.
2.3 L’exécution
On retrouve également des fonctions de tri, de recherche… mais aussi des outils plus
génériques tels que l’objet « tMap » qui offre une multitude de possibilités via sa
configuration. Il permet notamment d’effectuer des jointures de données, des
traitements simples sur les chaînes de caractères ainsi que la possibilité d’appliquer
une fonction définie par l’utilisateur.
Les routines sont des fonctions Java codées par l’utilisateur dans le but d’appliquer un
traitement particulier aux données. Pour créer une routine, il faut ajouter un élément
sous la section Code > Routines de l’onglet Référentiel.
Un éditeur de code Java laisse alors la possibilité d’écrire la fonction de son choix, en
prenant garde aux entrées sorties de la fonction afin que cette dernière soit utilisable
avec le schéma de données utilisé. Il faut alors placer un bloc tMap à l’endroit désiré.
Un nouvel écran propose alors comment traiter cet élément via une liste de fonctions
combinant celles définies par l’utilisateur et celles existant nativement.
4. Exporter un job
Avec Talend Open Studio, l’export des Jobs créés depuis l’interface graphique est très
simple. Il consiste en effet à effectuer un clic droit sur un job fonctionnel puis de
sélectionner « exporter le job » afin d’obtenir une copie complète de la tâche. Cette
dernière peut ensuite être exécutée depuis plusieurs plateformes. En effet, on retrouve
dans le répertoire de l’export deux fichiers d’extensions .bat et .sh ainsi que toutes les
ressources nécessaires au fonctionnement du job.
Conclusion
Talend Open Studio propose les fonctionnalités essentielles d’un outil ETL moderne
(concepteur graphique, grand nombre d’outils de traitement, statistiques d’exécution
…) et offre une utilisation accessible rapidement aux utilisateurs. Mais cette solution
open source ne peut concurrencer les versions payantes des grands acteurs du
marché tels qu’IBM, Oracle … qui fournissent des outils supplémentaires.
On se tournera donc, pour des projets de plus grande échelle, vers la version payante
de la suite qui propose entre autres un outil de nettoyage des données, des interfaces
de connexion aux services d’annuaires, une console de supervision des flux, un
gestionnaire de sources… ainsi qu’une grande quantité d’autres fonctionnalités
complémentaires.