Vous êtes sur la page 1sur 37

TP1 : Data Warehouse & ETL

Année universitaire 2019-2020


Pr. Z. ALAMI
Filière : Statistique et Informatique Décisionnelle

Partie 1 : Data Warehouse & ETL

I. Data Warehouse

« A data warehouse is a subject-oriented, integrated, nonvolatile, and timevariant collection of


data in support of management's decisions. The data warehouse contains granular corporate
data.»

Tout système décisionnel est architecturé globalement de la même façon :

En amont un accès au système transactionnel en lecture


seule Un DW fusionnant les données requises
Un ETL permettant d'alimenter le DW à partir des données existante s
Des applications d'exploitation de reporting, exploration et/ou prédiction
D'éventuels DM permettant de simplifier le DW en vue de certaines applications

Quelques exemples d'application

Analyse du comportement de consommateurs ou de citoyens, en fonction de leurs caractéristiques


(sexe, age...), de critères socio-économiques (profession...), géographiques...

Analyse de ventes en fonction de l'implantation géographique de magasins (densité,


caractéristiques des régions...), de l'organisation de magasins (rayonnage, marketing,
RH...) Analyse des structures de paniers (quel produit est vendu en même temps que quel
autre à quelles conditions ?)

Prédiction de ventes en fonctions de données conjoncturelles, gestion des stocks,


des approvisionnements

Contrôle qualité et analyse de défaut des chaînes de production en fonction des centres
de production, des organisations, des fournisseurs...

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
II. ETL

L’ETL « Extract Transform Load » est une technologie permettant l’échange et la


synchronisation de données issues de bases de données ou de fichiers vers une autre
structure. A l’origine, cette technologie était utilisée pour faciliter la sauvegarde
régulière de bases de données avant de peu à peu élargir son champ d’action vers
d’autres aspects, notamment pour solutionner le grand nombre d’interfaces
existantes.

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

Extract : Extraire les données de sources hétérogènes


Transform : Transformation des données pour les mettre dans un format acceptable
Load : Charger les données dans le datawarehouse

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Partie 2 : Modélisation et Conception d’un DW

L’ETL (« Extract Transform Load ») est une technologie permettant l’échange et la


synchronisation de données issues de bases de données ou de fichiers vers une autre structure.
A l’origine, cette technologie était utilisée pour faciliter la sauvegarde régulière de bases de
données avant de peu à peu élargir son champ d’action vers d’autres aspects, notamment pour
solutionner le grand nombre d’interfaces existantes.

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 …).

Figure 1 : objectifs de l’ETL

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. Présentation de Talend Open Studio

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.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
1.2 Le principe

Ce logiciel fonctionne comme un générateur de code : pour chaque traitement d’intégration de


données, un code spécifique est généré, ce dernier pouvant être en Java ou en Perl. Les
opérations effectuées par le logiciel sont appelées « Jobs » et sont conçues par l’utilisateur grâce
à une interface graphique : le « Job Designer ».

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.

1.3 Les opérations disponibles

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.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
TACHE 1: Téléchargement et installation de Talend
OpenStudio for Data Integration.

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:

PS : Vous pouvez le récupérer avec la clé USB et ignorer cette étape.

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.

Allez à la page: https://fr.talend.com/download#download-open-source

Sélectionnez le produit “Data Integration”.


Accessible aussi via : https://fr.talend.com/download/talend-open-studio#t4
Puis, cliquez sur “TÉLÉCHARGER L'OUTIL LIBRE”.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Le téléchargement démarre automatiquement.

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.

1. Naviguez dans vos dossiers locaux, trouvez le fichier .zip et


déplacez-le à un autre emplacement, avec un chemin d'accès
aussi court que possible et sans caractère d'espace.
Exemple : C:/Talend/
2. Dézippez-le en cliquant-droit sur le fichier compressé et sélectionnez
Winrarr
> Extract Here.
Le répertoire d'installation du Studio contient des fichiers binaires pour différentes
plateformes, notamment Mac OS X et Linux/Unix. Pour ouvrir le Studio Talend pour la
première fois, procédez comme suit : Double-cliquez sur le fichier exécutable
correspondant à votre système d'exploitation, par exemple :

● TOS_*-win-x86_64.exe, sous Windows.


● TOS_*-linux-gtk-x86_64, sous Linux.
● TOS_*-macosx-cocoa.app, sous Mac.
TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle
Année universitaire 2019-2020
Pr. Z. ALAMI
Dans la fenêtre User License Agreement qui s'ouvre, lisez et acceptez
les termes de la licence pour procéder aux étapes suivantes.

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

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Vous allez obtenir la fenêtre suivante :

Vous êtes connecté au Studio Talend.

TACHE 2: Téléchargement et installation de Oracle


database 11g Release 2 Express Edition

I. Oracle database 11g Release 2 Express Edition


1. Introduction
Oracle Database est un système de gestion de base de données relationnel
(SGBDR) qui depuis l'introduction du support du modèle objet dans sa version 8
peut être aussi qualifié de système de gestion de base de données relationnel-
objet (SGBDRO).

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

Vous choisissez le téléchargement adéquat à votre système


d’exploitation. On vous demande si vous avez déjà un compte
oracle.
Sinon n’hésitez pas à en créer un. C’est gratuit.

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.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Cliquez sur next pour démarrer le processus d’installation.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Vous pouvez changer le dossier d’installation mais si c’est la seule version d’oracle
que vous avez vaut mieux de garder le chemin par défaut C:\oraclexe.

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.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Cet écran vous donne quelque information tel que le chemin de la base et du
serveur ainsi que les différents ports de connexion.
Confirmer par cliquer sur Install

En cours d’installation….

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
L’installation s’est bien terminé.
5. Test de l’installation
Vous pouvez utiliser « SQL Plus » ou « SQL Developper » pour tester la
connexion à la base de données.

5.1 SQL Plus


Cliquez sur démarrer
-tous les programmes
-Run sql command line ou sql*plus

dans cet écran on s’est connecté en tant qu’administrateur système via le


login/password sys/sys.

on a activé l’utilisateur hr (existe mais désactivé) par le login/password hr/hr On s’est


déconnecté du compte system pour se reconnecter en tant que hr.

5.2. SQL developer

C’est l’outil graphique d’Oracle de développement sql/Pl téléchargeable à

partir du lien : http://www.oracle.com/technetwork/developer-tools/sql-

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.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Initiation à Talend

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.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
A gauche, la partie référentielle regroupe tous les éléments que vous avez importé ou créé
vous même : c'est à cet endroit que vous retrouverez vos fichiers délimités liés à vos imports,
et vos routines pour les fonctions Java que vous aurez écrites vous-mêmes par exemple.

A droite se trouve la palette de composants, organisés en répertoire.

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:

● Workspace : espace de travail, est un répertoire sur votre


ordinateur qui contient un ou plusieurs projets.

● Project : Un projet est un regroupement logique d'un ou plusieurs


tâches (Jobs).

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
● Job : Une tâche est un groupe ou un ou plusieurs composants qui,
lorsqu'ils sont exécutés, implémentent un flux de données ou un
processus d'intégration.

Interface du Talend:

Repository:

Contient tous les éléments associés à un projet - Job Designs,


Business Models, Metadata, etc.

Cela comprend généralement :


● Business Model: Modèle entreprise décrivant les flux de travaux
non techniques d'un Job d'intégration de données.
● Une ou plusieurs définitions de Job.
● Les métadonnées, tels que les détails de connexion à la base de
données, et les définitions de schéma de fichier.
● Extraits de code réutilisables.
● Contextes-variables globales ou spécifiques au travail.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Design:

L'espace de conception est au milieu du Studio, est l'endroit où les


développeurs placent et configurent les composants afin de créer le
job d'intégration de données requis.

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 :

Les onglets de configuration se trouvent sous l'espace de


modélisation graphique et affichent les propriétés du travail ou des
composants spécifiques sélectionnés dans l'espace de modélisation
graphique.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Création d’un job:

Le processus de base est le suivant:


1. Créez un job dans le Repository.
2. Déposez les composants de la Palette dans l'espace de conception.
3. Configurez les propriétés des composants.
4. Exécutez le Job et affichez les résultats.

Exemple:

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Manipulation 1 avec une fichier CSV:

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 .

2. Dans la fenêtre Repository, développez la section Metadata et


cliquez avec le bouton droit sur Db Connections.

3. Dans la fenêtre qui apparaît, entrez un nom pour la connexion -


appelons le nôtre DEMO_BD.
Vous pouvez également entrer des informations
supplémentaires dans les zones Objet et Description. Il
existe d'autres options de configuration pour Version, Status
et Path, mais celles-ci ne sont pas obligatoires.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
4. Nous devons maintenant configurer la connexion à la base de données.
5. Entrez la valeur pour les champs Login et Mot de
passe. Entrez la valeur du champ Serveur. Ce sera le nom
d'hôte ou l'adresse IP de votre serveur de base de données.
(localhost ou 127.0.0.1 dans notre cas). Entrez les détails
du port (3306 généralement). Entrez le nom de la
base de données à laquelle vous souhaitez vous connecter.
6. Une fois toutes les valeurs entrées, cliquez sur le bouton Vérifier
pour tester la connexion. Si tout a été correctement configuré, vous
obtiendrez une fenêtre Connexion réussie. Si ce n'est pas le cas,
revenez en arrière et vérifiez les valeurs que vous avez configurées.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
7. Cliquez sur Terminer pour enregistrer la connexion. Vous verrez la
connexion dans la zone de métadonnées du référentiel.

8. 8. Maintenant, faites un clic droit sur l'entrée de metadata DEMO_DB dans


le Repository et sélectionnez Retrieve Schema. Nous pouvons utiliser la
fonction Retrieve Schema pour configurer automatiquement les tables, les
vues et les synonymes de la base de données dans les métadonnées. La
fenêtre contextuelle Schéma apparaît. Cochez le checkbox de
demo_talend pour sélectionner toutes les tables.

Nous verrons par la suite comment utiliser la connexion configurée


dans un workspace.
Tâche 3:
L’objectif est de lire des données à partir d'un fichier délimité CSV.
1. Créez une nouvelle job, nommée: lireCSV
2. Ajoutez la composante tFileInputDelimited
3. Configurez le composant.
4. Affichez les résultats sur le console (utilisez la composante tLogRow).

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.

3. Exporter ces données dans un fichier CSV.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Manipulation 2 (avec un fichier CSV):
Dans cet exercice, nous allons fusionner 2 CSV (marketing.csv et departementsInsee2003.csv
du projet Fantastic), suite à 2 transformations, pour obtenir un unique CSV.

departements2.csv

marketing.csv

Question

Créez votre premier projet TOS for Data Integration.

Solution

• Ouvrir l'assistant de TOS for Data Integration en double-cliquant sur le raccourci du


logiciel
• Sélectionner "Créer un nouveau projet" puis "Ok"
• Saisissez le nom du projet puis cliquez sur "Terminer"
• Dans l'assistant de TOS, sélectionner ce nouveau projet et ouvrez-le
• Fermez l'onglet d'accueil en cliquant sur "Start now !"

Question

Créez un job design qui s'intitule "Exercice1".

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

Créez des métadonnées pour chacun des 2 fichiers CSV.

Solution

• Toujours dans le référentiel, développez la catégorie "Métadonnées"


• Cliquez droit sur "Fichier délimité", puis "Créer un fichier délimité"
• Dans l'assistant qui s'ouvre, entrez "Magasins" dans le champ nom, puis cliquez sur
"Suivant"
• Dans la fenêtre suivante, cliquez sur "Parcourir" et sélectionnez le fichier
marketing.csv à l'endroit approprié ; sélectionnez également le bon format de votre
ordinateur (son OS), puis faites "Suivant"

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
• En bas de l'assistant, dans la zone "Aperçu", attendez que le premier aperçu soit
terminé, puis cliquez sur "définir la ligne d'en-tête comme noms des colonnes" puis
sur "Rafraîchir l'aperçu", puis sur "Suivant"
• Dans la zone "description du schéma" cochez la case "clé" pour la seconde colonne
(numéro des magasins) et décochez la case "nullable" (pour définir la clé primaire),
puis "Terminer"
• Procéder exactement de la même manière pour le second fichier CSV

Remarque : vos métadonnées apparaissent au niveau de Métadonnées => Fichier délimité

Question

Ajoutez les 2 fichiers délimités en entrée dans le job "Exercice1"

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

• Enlevez les 0 devant les numéros de département inférieurs à 10


• Utilisez le composant tMap, et affichez le résultat avec tLogRow pour effectuer un
simple test

Solution

• Dans la palette de composants sur la droite, trouvez le composant tLogRow, glissez-le


et déposez-le dans le job designer (vers la droite)
• Entre tLogRow et Departements, glissez-déposez le composant tMap
• Relier les 3 composants (Departements -> tMap -> tLogRow) : créez donc 2 liens en
cliquant droit sur le composant de départ, puis glissez ce lien jusqu'au composant
d'arrivée, pour chaque lien. Nommez ces liens.
• Une erreur apparaît sur tMap : c'est normal
• Double cliquez sur tMap pour afficher les paramètres de transformation : glissez-
déposez tous les attributs de la table de départements vers la table de sortie.
• Mettez votre souris sur l'attribut num_dpt de la table de sortie, "..." s'affiche, cliquez
dessus.
• Dans la partie "Expression", saisissez la fonction Java :
Integer.parseInt(XXX.num_dept), avec XXX le nom de votre premier lien.
• Puis changez en bas à droite le type de cet attribut en int | Integer, et cliquez sur
Terminer
• Exécutez le job dans la vue Exécution (flèche verte)

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Question

Transformez vos numéros de magasins pour que tous commencent par un M.

Indice

• Utilisez une expression régulière Java


• Utilisez le composant tMap, et affichez le résultat avec tLogRow pour effectuer un
simple test

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 !

Dans le référentiel, sous l'arborescence "code", cliquez droit sur "routines" et


sélectionnez "creer une routine" ;

Nommez votre routine et cliquez sur Terminer

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;") :

CTRL+C pour copier, CTRL+V pour coller


1
public static String corrigerNumMagasin(String s) {
2
if (Pattern.matches("M.*", s)==false) return "M"+s;
3
else return s;
4
}
public static String corrigerNumMagasin(String s) {
if (Pattern.matches("M.*", s)==false) return "M"+s;
else return s;
}

• Sauvegardez votre routine et retournez dans le job initial

• Utilisez à nouveau tMap et tLogRow comme précédemment


• Relier les 3 composants (Departements -> tMap -> tLogRow) : créez donc 2 liens en
cliquant droit sur le composant de départ, puis glissez ce lien jusqu'au composant
d'arrivée, pour chaque lien. Nommez ces liens.
• Double cliquez sur tMap pour afficher les paramètres de transformation : glissez-
déposez tous les attributs de la table de départements vers la table de sortie.
• Mettez votre souris sur l'attribut num_magasin de la table de sortie, "..." s'affiche,
cliquez dessus.
• Dans la partie "Expression", saisissez la fonction
routines.nom_routine.nom_fonction(XXX.Num_Magasin), avec XXX le nom de
votre premier lien.
• Cliquez sur Terminer
TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle
Année universitaire 2019-2020
Pr. Z. ALAMI
• Exécutez le job

Question

Joignez les 2 fichiers après transformation et récupérez les données de sortie dans un CSV

Indice

• Utilisez le composant tMap, et transformez le résultat en CSV grâce au composant


tFileOutputDelimited

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 :

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Manipulation 3:
Dans cet exercice, nous allons apprendre à synchroniser deux jobs et à récupérer un message
d'erreur lors de l'exécution de l'un d'entre eux.

Question

• Créez un nouveau job Exercice2


• Déposez-y les composants tRowGenerator & tFileOutputDelimited et créez un lien
entre les deux.

NB : tRowGenerator permet de générer aléatoirement des données. Par défaut il


génère des chaînes de caractères.

Solution

Votre job ressemble alors à ceci :

Question

Créez une erreur sur le tFileOutputDelimited : définissez un chemin de création du CSV qui
n'existe pas

Solution

• Dans "Paramètres avancés", décochez "créer un répertoire s'il n'existe pas"


• Modifiez le chemin du tFileOutputDelimited

Question

Synchronisez les jobs Exercice1 et Exercice2 pour que Exercice2 ne s'exécute que si
Exercice1 s'est bien déroulé

Indice

• Créez un nouveau job


TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle
Année universitaire 2019-2020
Pr. Z. ALAMI
• Utilisez des triggers

Solution

• Créez un nouveau job "FinalJob"


• Déposez-y les sous-jobs Exercice1 et Exercice2
• Cliquez droit sur :
• Exercice1 > Déclencheur > OnSubjob Ok et reliez le à Exercice2

Question

Faites en sorte qu'une fenêtre affiche un message d'erreur si Exercice2 ne s'est pas bien
déroulé

Indice

• Utilisez le composant tMsgBox


• Définissez une variable de contexte

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

Votre job ressemble alors à ceci :

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Index 1 (pour S’informer)

Exemple de création d’un job

Afin d’illustrer le fonctionnement de la solution Talend Open Studio, utilisons un


exemple de migration simple.

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 :

Figure 2 : notre cas d’étude

2.1 Les données source

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.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Figure 3 : création de la connexion vers la base de données

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.

Figure 4 : export du schéma de la table ciblée

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

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
en effet de générer cette clause automatiquement en sélectionnant la table définie
précédemment.

Figure 5 : mise en place de la clause de sélection des champs à exporter

Remarque : le référentiel est commun à tous les jobs. Il est ainsi possible de réutiliser
cette connexion pour de nombreux projets.

2.2 Création du job

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.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Figure 6 : configuration de l’objet « tMSSqlInput » selon la connexion définie
précédemment

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 » :

• Il est nécessaire de spécifier le chemin et le nom du fichier XML de sortie.


• Il faut également préciser au bloc la structure des données à son entrée pour
que l’on puisse lier les champs extraits de la base SQL aux tags XML
correspondants lors de l’étape suivante. Pour cela, on réutilise le schéma créé
lors de l’étape précédente en le sélectionnant depuis le référentiel via une liste
déroulante.

Figure 7 : mise en place du bloc de sortie

Le bloc « tAdvancedFileOutputXML » dispose dorénavant du schéma des données


entrantes. Il faut ensuite lui fournir la structure XML sur laquelle se baser pour obtenir
TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle
Année universitaire 2019-2020
Pr. Z. ALAMI
le format que nous souhaitons en sortie. Nous construisons un schéma XML à cet
effet :

Figure 8 : schéma XML de sortie

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.

Figure 9 : mappage entrées / sorties

2.3 L’exécution

A l’exécution du Job, les statistiques apparaissent sur les éléments graphiques de


l’interface.

Figure 10 : statistiques d’exécution

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Dans le dossier de sortie, nous obtenons un fichier XML avec les informations de la
base de données mappées sur le schéma fourni précédemment.

Figure 11 : le fichier de sortie

3. Présentation de quelques opérations disponibles

3.1 Les fonctions intégrées

Parmi les fonctions intégrées nativement, on retrouve un module permettant


d’enregistrer des logs depuis n’importe quelle connexion du Job.

Figure 12 : utilisation de l’objet tLog au centre de notre exemple

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.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Figure 13 : mise en place d’un bloc tMap reliant deux sources de données

3.2 Création de routines

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.

Figure 14 : création de la routine

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é.

Figure 15 : l’objet tMap qui permet d’appliquer la routine aux données

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Lors de l’édition des préférences, une fenêtre de mappage apparaît. Si la source et la
destination sont correctement configurées, l’utilisation de la fonction « Auto Map »
réalise le paramétrage des connexions du bloc tMap automatiquement. Pour appliquer
la routine, on utilise le bouton « … » à coté du champ concerné.

Figure 16 : mappage des données entrantes et sortantes du bloc tMap

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.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI
Figure 17 : application de la routine sur la colonne « TELEPHONE »

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.

TP Data Warehouse & ETL, Filière : Statistique et Informatique Décisionnelle


Année universitaire 2019-2020
Pr. Z. ALAMI

Vous aimerez peut-être aussi