Académique Documents
Professionnel Documents
Culture Documents
2022
Formation ETL
TALEND Open Studio
Plan de la formation
I. INTRODUCTION A TALEND
II. NOTIONS SIMPLES
III. NOTIONS AVANCEES
IV. GESTION DES LOGS & ERREURS
INTRODUCTION A TALEND
❑ Qu’est ce qu’un ETL ?
❑ Interface de Talend
❑ Job exemple
ETL = Extract - Transform - Load
Introduction à Talend
▪ Structurer les données pour une utilisation dans des outils d’analyse et de reporting
❑ Migration de données
❑ Consolidations de données
❑ Intégration de données
Combiner les données de plusieurs sources pour obtenir une vision unifiée
Cas d’utilisation d’un ETL 2/2
Introduction à Talend
❑ Data Warehouse
❑ Synchronisation de données
Mise à jour régulière de 2 systèmes pour obtenir des données cohérentes et identiques
Avantages d’un ETL
Introduction à Talend
❑ User-friendly ❑ Exécution
▪ IHM de conception des flux graphique ▪ Planification automatisé
▪ Monitoring
❑ Développement
▪ Composants réutilisables ❑ Produit éditeur
▪ Boites à outils ▪ Stabilité sur la durée via mises à jour
❑ Nombreuses briques selon les besoins (ESB pour du temps réel, Big Data, MDM…)
Le Designer permet de
consulter le job dans
un mode graphique.
Interface de Talend 3/4
Introduction à Talend
❑ Etape 1
❑ Etape 2
❑ Etape 3
Glisser / déposer le composant tRowGenerator de la palette vers le designer (ignorer la petite icone
d’alerte).
Création d’un job simple 5/8
Introduction à Talend
2 3
❑ Etape 4
❑ Etape 5
Répéter les étapes 2 et 3 pour le composant tLogRow, qui va nous permettre de récupérer et
afficher les lignes générées dans la console Talend.
Création d’un job simple 7/8
Introduction à Talend
❑ Etape 6
❑ Etape 7
❑ Métadonnées
❑ Le composant tMap
❑ Les contextes
❑ Les boucles
Connecteurs pour les fichiers délimités
Notions simples
❑ Schéma Built-in
▪ Modification à la volée
▪ Non réutilisable
Connecteurs pour les fichiers délimités
Notions simples
❑ Schéma Référentiel
▪ Réutilisable
Métadonnées – Fichier délimité 1/4
Notions simples
❑ Etape 1
❑ Etape 2
❑ Etape 3
1
Paramétrer le fichier:
2
▪ Séparateur de champ
▪ Séparateur de lignes
3
▪ En-tête
▪ Encodage
Métadonnées – Fichier délimité 4/4
Notions simples
❑ Etape 5
▪ Type
▪ Nullable
▪ Modèle de date
▪ Longueur et précision
Métadonnées – Base de données (MySQL) 1/3
Notions simples
❑ Etape 1
▪ Paramétrer la connexion
Métadonnées – Base de données (MySQL) 2/3
Notions simples
❑ Etape 2
❑ Etape 3
Il est possible de glisser / déposer directement une métadonnée à partir du référentiel dans le
designer pour créer un composant, sans passer par la palette.
2
1
Transformer la donnée: le tMap
Notions simples
La source utilisée comme base pour cette exemple est un fichier plat représentant
l’ensemble des voitures présentes dans un garage. Nous avons déjà créé les métadonnées qui lui
sont associées.
Transformer la donnée: le tMap
Notions simples
Nous allons créer un job simple qui va formater différents champs de notre fichier garage:
❑ Etape 1
❑ Etape 2
❑ Etape 3
❑ Etape 4
▪ Modèle (qui sera une concaténation de Marque et de Modèle) de type STRING de taille 100
❑ Etape 4
Transformer la donnée: le tMap 6/13
Notions simples
❑ Etape 5
▪ Mapper les champs ID_Voiture et ID_Proprietaire entre la source et la cible, sans y apporter de
changements
Transformer la donnée: le tMap 7/13
Notions simples
❑ Etape 6
▪ Mapper les champs Marque et Modèle avec le champ Modèle en cible, avec la code suivant:
row1.Marque + " " + row1.Modele
Transformer la donnée: le tMap 8/13
Notions simples
❑ Etape 7
▪ Mapper le champ Kilométrage avec le champ Kilométrage en cible, avec la code suivant:
row1.Kilometrage + "km"
Transformer la donnée: le tMap 9/13
Notions simples
❑ Etape 8
(row1.Date_achat.isEmpty()) ?
TalendDate.parseDate("dd/MM/yyyy","01/01/2000") :
TalendDate.parseDate("dd/MM/yyyy",row1.Date_achat)
Transformer la donnée: le tMap 10/13
Notions simples
❑ Etape 9
(row1.Boite_de_vitesse == ‘M’)?
("Manuelle") :
("Automatique")
Transformer la donnée: le tMap 11/13
Notions simples
❑ Etape 10
▪ Créer une nouvelle variable var_garage de type String avec une valeur fixe « Garage BLUE »
2
Transformer la donnée: le tMap 12/13
Notions simples
❑ Etape 11
❑ Etape 12
▪ Exécuter le job
Filtrer la donnée: le tMap
Notions simples
1
2
Le tMap permet de filtrer les données à
envoyer dans la cible, à la fois au niveau des
entrées et au niveau des sorties.
3
Combiner la donnée: le tMap
Notions simples
La source utilisée pour les données des clients est un autre fichier plat. Nous avons déjà
créé les métadonnées qui lui sont associées.
Combiner la donnée: le tMap 1/7
Notions simples
❑ Etape 1
❑ Etape 2
❑ Etape 3
2
Définir le type de jointure:
▪ Unique / Multiple 3
❑ Etape 4
▪ Nom complet
▪ Modèle
Combiner la donnée: le tMap 5/7
Notions simples
❑ Etape 5
▪ Nom
▪ Marque
Combiner la donnée: le tMap 6/7
Notions simples
❑ Etape 6
❑ Etape 7
Le composant qui permet d’effectuer des agrégation sur les données est le tAggregateRow.
Pour cet exemple, nous allons calculer le nombre de voitures présentes dans notre garage par
marque de voiture.
Agréger la donnée: tAggregateRow 11/4
Notions simples
❑ Etape 1
❑ Etape 2
Définir les champs sur lesquels nous allons agréger la donnée – dans l’exemple, le champ Marque.
Agréger la donnée: tAggregateRow 3/4
Notions simples
❑ Etape 3
Définir le type d’agrégation, ainsi que le champ de la sortie dans lequel elle sera stockée – dans
l’exemple, le champ Compteur avec l’agrégation Count.
Agréger la donnée: tAggregateRow 4/4
Notions simples
❑ Etape 4
Pour cet exemple, nous allons trier les voitures dans l’ordre croissant de leur kilométrage.
Trier la donnée: tSortRow 1/2
Notions simples
❑ Etape 1
Sélectionner le champ sur lequel effectuer le tri – dans l’exemple, le champ Kilométrage.
Trier la donnée: tSortRow 2/2
Notions simples
❑ Etape 2
❑ Les boucles
❑ Ordonnancement
Talend permet de définir les valeurs des variables au moment de l’exécution d’un job grâce aux
contextes.
Nous allons voir un job simple qui permet d’afficher un message en fonction du contexte choisi à
l’exécution.
Les contextes 1/7
Notions simples
❑ Etape 1
❑ Etape 2
❑ Etape 3
❑ Etape 4
2
Les contextes 5/7
Notions simples
❑ Etape 5
❑ Etape 6
▪ Dans l’onglet Exécution, vérifier que les valeurs des variables changent selon le contexte choisi
Les contextes 7/7
Notions simples
❑ Etape 7
A la création d’un schéma de métadonnées, il est possible d’exporter les valeurs de celui-ci dans un
contexte, pour changer facilement d’environnement de travail par exemple.
Boucles
Notions avancées
Talend permet d’exécuter automatiquement une tache ou un job dans une boucle grâce à plusieurs
composants:
▪ tFileList pour boucler sur l’ensemble des fichiers contenus dans un répertoire
Le composant qui permet de séparer les lignes d’un flux entrant en plusieurs nouvelles lignes en se
basant sur un champ est le tNormalize.
Pour cet exemple, nous allons récupérer une liste d’élèves, et la décomposer en se basant sur les
cours auxquels ils assistent.
Normaliser la donnée: tNormalize 1/3
Notions avancées
❑ Etape 1
❑ Etape 2
▪ Dans le tNormalize, indiquer la colonne et le séparateur qui vont servir à éclater les lignes de la
source
1 2
Normaliser la donnée: tNormalize 3/3
Notions avancées
❑ Etape 3
Le composant qui permet de dénormaliser un flux entrant en fonction d’une colonne est le
tDenormalize.
Pour cet exemple, nous allons récupérer une liste de fruits, et fusionner en un seul champ diverses
variétés possibles d’un même fruit.
Dénormaliser la donnée: tDenormalize 1/3
Notions avancées
❑ Etape 1
❑ Etape 2
▪ Dans le tNormalize, indiquer la colonne et le séparateur qui vont servir à fusionner les lignes de la
source
1 2
Dénormaliser la donnée: tDenormalize 3/3
Notions avancées
❑ Etape 3
▪ Un élément se récupère à l'aide de son chemin relatif par rapport à l'élément de boucle
❑ Etape 1
❑ Etape 2
❑ Etape 3
❑ Etape 4
❑ Etape 5
❑ Etape 6
▪ Pour récupérer les données dans une boucle imbriquée, il faut se placer au niveau le plus fin de
boucle
Données semi-structurées – XML 7/7
Notions avancées
❑ Etape 7
❑ Composant Run
❑ Composant Système
❑ Exécutable
Livraisons
Notions avancées
❑ Exécutable
Livraisons
Notions avancées
❑ Exécutable
Gestion des Logs: tAssertCatcher
Gestion des Logs & Erreurs
❑ Composant Assert
❑ Composant Assert
tAssert: permet de tester une exécution de Job. Il génère une assertion booléenne permettant
d'alimenter le statut d'exécution du tAssertCatcher
Gestion des Logs: tChronometre
Gestion des Logs & Erreurs
❑ Composant chronomètre
▪ tChronometreStart
▪ tChronometreStop
Gestion des Logs: tFlow
Gestion des Logs & Erreurs
❑ Composant Flow
❑ Composant StatCatcher