Tutorial-Talend V1.0

publicité
Simplifions les projets décisionnels
TALEND
Tutorial
version 1.0 du 07/10/2008
Tutorial-Talend V1.0.doc
1 / 57
TALEND
Tutorial
Table des matières
1
PREAMBULE .................................................................................................................................... 3
1.1
CONTENU DE CE DOCUMENT .......................................................................................................... 3
1.2
SUIVI DES REVISIONS DU DOCUMENT .............................................................................................. 3
1.3
PRE-REQUIS ................................................................................................................................. 3
2
CREATION D’UN PROJET TUTORIAL.............................................................................................. 5
3
CONFIGURATION DE METADATAS ................................................................................................ 7
3.1.1
3.1.2
3.1.3
3.1.4
Configuration de la DataSource LABD_OLTP ..........................................................................7
Configuration de la DataSource CONSOLIDATION_OLTP ...................................................... 12
Configuration d’un fichier Delimited ..................................................................................... 13
Configuration d’un fichier Positional .................................................................................... 17
4
CREATION D’UN JOB SIMPLE........................................................................................................22
5
EXTRACTION D’UNE TABLE VERS UN FICHIER ........................................................................... 28
5.1
DESCRIPTION ............................................................................................................................. 28
5.2
EXTRACTION DES DONNEES ......................................................................................................... 28
5.2.1
5.2.2
Fichier avec séparateur .........................................................................................................28
Fichier de champs de longueur fixe ....................................................................................... 33
6 ALIMENTATION D’UNE TABLE SQL SERVER AVEC LE CONTENU D’UN OU PLUSIEURS
FICHIERS ............................................................................................................................................... 36
6.1
DESCRIPTION ............................................................................................................................. 36
6.2 ALIMENTATION D’UNE TABLE A PARTIR D’UN FICHIER ..................................................................... 36
6.3 ALIMENTATION D’UNE TABLE A PARTIR DE PLUSIEURS FICHIERS ...................................................... 39
6.4 GESTION DES REJETS................................................................................................................... 42
7
COMPOSANTS TALEND ................................................................................................................ 46
8
COMPOSANTS JAVA ..................................................................................................................... 50
8.1
DESCRIPTION ............................................................................................................................. 50
8.2 CREATION D’UNE ROUTINE .......................................................................................................... 50
9
ANNEXES ........................................................................................................................................57
9.1
RESSOURCES DU TUTORIAL ..........................................................................................................57
9.1.1
Tutorial-Talend V1.0.doc
Base de données .................................................................................................................... 57
2 / 57
TALEND
Tutorial
1
Préambule
1.1
Contenu de ce document
Ce document permet à travers d’exemples de prendre connaissance de quelques fonctionnalités
de l’outil Talend.
Les points majeurs abordés sont :
•
•
•
•
•
•
•
•
1.2
Création d’un projet,
Création de Metadata :
o Base de données,
o Fichier avec séparateur,
o Fichier de champs de longueur fixe.
Extraction des données d’une table vers un fichier (avec séparateur ou de champs de
longueur fixe),
Alimentation d’une table avec un fichier (avec séparateur ou de champs de longueur fixe),
Alimentation d’une table avec plusieurs fichiers (jointure),
Transformation de données,
Filtres et Rejets,
Création d’une routine.
Suivi des révisions du document
Version
1.0
1.3
Date
07/10/08
Modifications
Création du document
Auteur
C. HOUPE
Pré-requis
Les pré-requis pour ce tutorial sont :
•
•
Installation de SQL Server 2005 Express (http://www.labdecisionnel.com/Tutoriels-/Labos/Prerequis-Laboratoires/Installation-de-SQL-Server-2005-Express.html)
Intégration
de
la
base
de
données
OLTP
du
Laboratoire
(http://www.labdecisionnel.com/Tutoriels-/-Labos/Prerequis-Laboratoires/Creation-etrestauration-de-la-base-OLTP-sous-SQL-Server.html)
Tutorial-Talend V1.0.doc
3 / 57
TALEND
Tutorial
•
•
Création sous SQL Server d’une base de test CONSOLIDATION_OLTP avec les tables
Clients et Commandes dont les scripts de création sont fournis en annexe (§ 9.1.1.1 et
§9.1.1.2)
Installation de Talend (http://www.labdecisionnel.com/Tutoriels-/-Labos/LaboratoireTalend/Installation-Talend-Open-Studio.html )
Tutorial-Talend V1.0.doc
4 / 57
TALEND
Tutorial
2
Création d’un projet Tutorial
Un nouveau projet doit être créé afin d’intégrer les différents exemples que nous allons évoqués.
Pour ce faire, exécuter Talend via l’exécutable TalendOpenStudio-win32-x86.exe.
La fenêtre de connexion apparaît.
Figure 1 : Ecran de connexion
Sélectionner l’icône Create afin que la page de dialogue apparaisse et saisir, à minima, les
champs :
« Project Name » à la valeur TutorialTalendPartie2
« Generation Language » à la valeur Java.
Tutorial-Talend V1.0.doc
5 / 57
TALEND
Tutorial
Figure 2 : Ecran de création de projet
Sélectionner ce projet afin d’ouvrir Talend
Figure 3 : Ecran d'accueil
Tutorial-Talend V1.0.doc
6 / 57
TALEND
Tutorial
3
Configuration de MetaDatas
Afin d’accéder à des sources extérieures, il est possible de définir des Metadata afin de définir,
une et une seule fois lors du projet, les informations spécifiques aux sources. Ces informations
sont dépendantes de la nature de la source.
Figure 4 : Metadata
3.1.1
Configuration de la DataSource LABD_OLTP
Sélectionner « Db connection » dans le groupe « Metadata » puis effectuer un click droit afin de
choisir l’option « Create Connection ».
Figure 5 : Création de Metadata – Datasource - Sélection de création d'une DataSource
Le processus de création d’une datasource se décompose comme suit :
•
•
Etape 1 : Saisie du nom, du sujet, de la description ainsi que le statut,
Etape 2 : Saisie du driver et des informations de connexion.
Tutorial-Talend V1.0.doc
7 / 57
TALEND
Tutorial
Figure 6 : Création de Metadata – Datasource - Création d'une datasource - Etape 1
Tutorial-Talend V1.0.doc
8 / 57
TALEND
Tutorial
Figure 7 : Création de Metadata – Datasource - Création d'une datasource - Etape 2
Suite à cette création, les tables que nous devons utilisées doivent être indiquées. Pour ce faire,
les étapes à suivre sont :
•
•
•
•
Etape 1 : Bouton droit sur la connexion puis sélectionner « Retrieve Schema »,
Etape 2 : Indiquer si besoin un filtre sur les tables souhaitées,
Etape 3 : Sélectionnées les tables souhaitées,
Etape 4 : Valider le format des tables récupérées.
Tutorial-Talend V1.0.doc
9 / 57
TALEND
Tutorial
Figure 8 : Création de Metadata – Datasource - Retrieve Schema - Etape 1
Figure 9 : Création de Metadata – Datasource - Retrieve Schema - Etape 2
Tutorial-Talend V1.0.doc
10 / 57
TALEND
Tutorial
Figure 10 : Création de Metadata – Datasource - Retrieve Schema - Etape 3
Tutorial-Talend V1.0.doc
11 / 57
TALEND
Tutorial
Figure 11 : Création de Metadata – Datasource - Retrieve Schema - Etape 4
3.1.2
Configuration de la DataSource CONSOLIDATION_OLTP
Réitérer les étapes précédentes afin de rendre disponible les tables Clients et Commandes sur la
datasource CONSOLIDATION_OLTP.
Figure 12 : Création de Metadata - Datasource CONSOLIDATION_OLTP
Tutorial-Talend V1.0.doc
12 / 57
TALEND
Tutorial
3.1.3
Configuration d’un fichier Delimited
Sélectionner « File Delimited » dans le groupe « Metadata » puis effectuer un click droit afin de
choisir l’option « Create File Delimited ».
Figure 13 : Création de Metadata – File Delimited - Sélection de création d'un fichier Delimited
Le processus de création d’un fichier delimited en metadata se décompose comme suit :
•
Etape 1 : Saisie du nom, du sujet, de la description ainsi que le statut,
Tutorial-Talend V1.0.doc
13 / 57
TALEND
Tutorial
Figure 14 : Création de Metadata – File Delimited - Création d'une source Fichier Delimited - Etape 1
•
Etape 2 : Saisie du chemin du fichier et du format (Unix ou Windows),
Tutorial-Talend V1.0.doc
14 / 57
TALEND
Tutorial
Figure 15 : Création de Metadata – File Delimited - Création d'une source Fichier Delimited - Etape 2
•
Etape 3 : Paramétrage de la structure du fichier. Il est possible de choisir le séparateur de
champs, de ligne, d’indiquer si le fichier contient une ligne d’header, de limiter le nombre
d’enregistrements à prendre en compte ou, encore, de préciser si des lignes doivent être
ignorées,
Tutorial-Talend V1.0.doc
15 / 57
TALEND
Tutorial
Figure 16 : Création de Metadata – File Delimited - Création d'une source Fichier Delimited - Etape 3
•
Etape 4 : Définir la structure du fichier afin d’indiquer des alias pour les colonnes si le
fichier ne contient pas d’header.
Tutorial-Talend V1.0.doc
16 / 57
TALEND
Tutorial
Figure 17 : Création de Metadata – File Delimited - Création d'une source Fichier Delimited - Etape 4
Note : Il n’est pas possible de définir DateMAJ comme une date car le format peut être le format
TimeZone US. Talend pouvant être en TimeZone FR, sans une routine, il n’est pas possible de
convertir la date avec le pattern "EEE MMM dd HH:mm:ss zzz yyyy". En effet, il est nécessaire de
spécifier le TimeZone à utiliser pour la conversion. Cette transformation sera effectuée plus tard
dans ce document (cf. §6.3).
3.1.4
Configuration d’un fichier Positional
Sélectionner « File Positional » dans le groupe « Metadata » puis effectuer un click droit afin de
choisir l’option « Create File Positional ».
Tutorial-Talend V1.0.doc
17 / 57
TALEND
Tutorial
Figure 18 : Création de Metadata – Positional - Sélection de création d'un fichier Positional
Le processus de création d’un fichier positional en metadata se décompose comme suit :
•
Etape 1 : Saisie du nom, du sujet, de la description ainsi que le statut,
Figure 19 : Création de Metadata – File Positional - Création d'une source Fichier Positional - Etape 1
•
Etape 2 : Saisie du chemin du fichier et du format (Unix ou Windows) ainsi que la longeur
de chaque champ (soit par saisie dans Field Separator soit par pointage souris),
Tutorial-Talend V1.0.doc
18 / 57
TALEND
Tutorial
Figure 20 : : Création de Metadata – File Positional - Création d'une source Fichier Positional - Etape 2
•
Etape 3 : Paramétrage de la structure du fichier. Il est possible de choisir le séparateur de
champs, de ligne, d’indiquer si le fichier contient une ligne d’header, de limiter le nombre
d’enregistrements à prendre en compte ou, encore, de préciser si des lignes doivent être
ignorées,
Tutorial-Talend V1.0.doc
19 / 57
TALEND
Tutorial
Figure 21 : Création de Metadata – File Positional - Création d'une source Fichier Positional - Etape 3
•
Etape 4 : Définir la structure du fichier afin d’indiquer des alias pour les colonnes.
Tutorial-Talend V1.0.doc
20 / 57
TALEND
Tutorial
Figure 22 : Création de Metadata – File Positional - Création d'une source Fichier Positional - Etape 4
Figure 23 : Figure 22 : Création de Metadata – File Positional - Création d'une source Fichier Positional - Etape 4 Détail des colonnes
Tutorial-Talend V1.0.doc
21 / 57
TALEND
Tutorial
4
Création d’un job simple
Créons à présent un Job affichant un message « Hello World ». Pour ce faire, click droit sur le
groupe « Job Designs » afin de créer un folder « Job_simple »
Figure 24 : Création d'un folder de Job – Step 1
Figure 25 : Création d'un folder de Job – Step 2
Note : Le nom d’un folder ne doit pas comporter de caractères accentués ni d’espace.
La création d’un job est possible à partir du menu contextuel du groupe « Job Designs » ou un de
ses folders.
Figure 26 : Création d'un job - Step 1
Tutorial-Talend V1.0.doc
22 / 57
TALEND
Tutorial
Au minima, le nom du job doit être saisi.
Figure 27 : Création d'un job - Step 2
Sélectionner dans la palette le composant tMsgBox du groupe Misc puis cliquer sur la partie
Designer du Job.
Figure 28 : Composant tMsgBox
Tutorial-Talend V1.0.doc
23 / 57
TALEND
Tutorial
Figure 29 : Ajout d'un composant à un job
Info : Il est possible de visualiser le code source généré via l’onglet Code.
L’onglet « Component » du composant permet de saisir les informations spécifiques au
composant.
Tutorial-Talend V1.0.doc
24 / 57
TALEND
Tutorial
Figure 30 : Onglet Component
De manière générale,
•
•
•
La section Basic Settings permet d’indiquer les informations nécessaires à l’utilisation du
composant,
La section View permet d’indiquer un nom explicite à travers le champ « Label format ».
La section Documentation permet d’ajouter un commentaire pour l’utilité du composant.
Figure 31 : Section Basic Settings d'un composant tMsgBox
Tutorial-Talend V1.0.doc
25 / 57
TALEND
Tutorial
Figure 32 : Section View d'un composant tMsgBox
L’exécution d’un job se fait via une icône spécifique de la barre de menu ou sur l’onglet Run sous
le schéma.
Figure 33 : Exécution d'un Job
Tutorial-Talend V1.0.doc
26 / 57
TALEND
Tutorial
Figure 34 : Exécution du Job Hello World
Lors d’une exécution de job, il est possible de connaître le temps d’exécution en cochant avant le
lancement la case « Exec time ».
Figure 35 : Temps d'exécution d'un job
Tutorial-Talend V1.0.doc
27 / 57
TALEND
Tutorial
5
Extraction d’une table vers un fichier
5.1
Description
Nous allons étudier dans ce paragraphe l’export des données d’une table SQL Server vers un
fichier avec séparateur et de champs de longueur fixe. Ces fichiers seront ensuite utilisés dans les
paragraphes suivants.
Ce paragraphe nécessite que le paramétrage de la datasource LAB_OLTP soit réalisé (cf §3.1.1)
5.2
Extraction des données
5.2.1
Fichier avec séparateur
Les étapes à suivre pour exporter des données d’une table dans un fichier avec séparateur sont :
•
•
•
Créer un job « DBData2FileDelimited » dans un folder « Database_Export »,
Ajouter un composant tMSSQLConnecttion au job,
Dans la section « Basic Settings » de l’onglet « Component »
o Sélectionner « Repository » dans la liste de Property Type afin de définir que la
connexion est définie comme Metadata
o Sélectionner la connexion LABD_OLTP comme Repository,
o Les autres informations n’ont pas à être modifiées étant donné que leurs valeurs
ont été récupérées de la datasource.
Figure 36 : Extraction de données - Fichier avec séparateur - Composant tMSSqlConnection
•
Dans le groupe Metadata du repository, faire glisser la table Client vers le designer du job.
Un composant tMSSqlInput est créé automatiquement avec les informations nécessaires
à son utilisation. Il faut cependant indiquer que le composant utilise une connexion
existante (en cochant la case « Use an existing connection ») et indiquer la connexion
concernée, (il est possible de modifier le nom du composant afin que le schéma soit plus
compréhensible)
Tutorial-Talend V1.0.doc
28 / 57
TALEND
Tutorial
Figure 37 : Extraction de données - Fichier avec séparateur - Composant tMSSqlInput
•
Faire un click droit sur le composant de connexion et sélectionner Trigger / On Component
OK afin de créer une liaison qui doit aboutir sur le composant tMSSqlInput
Figure 38 : Extraction de données - Fichier avec séparateur - Liaison de connexion
Figure 39 : Extraction de données - Fichier avec séparateur - Liaison de connexion (suite)
•
Ajouter dans le job le composant File / Output / tFileOutputDelimited et le renommer en
Fichier_CSV_Clients
Tutorial-Talend V1.0.doc
29 / 57
TALEND
Tutorial
Figure 40: Extraction de données - Fichier avec séparateur - Composant tFileOutputDelimited
•
La section « Basic Settings » de l’onglet Component permet d’indiquer les informations
relative au fichier destination (chemin, séparateur de ligne, séparateur de champ)
Figure 41 : Extraction de données - Fichier avec séparateur - Composant tFileOutputDelimited - Basic Settings
•
En sélectionnant le bouton associé à « Edit Schema », nous obtenons fenêtre permettant
la saisie des colonnes composant le fichier
Figure 42 : Extraction de données - Fichier avec séparateur - Composant tFileOutputDelimited - Schema
Tutorial-Talend V1.0.doc
30 / 57
TALEND
Tutorial
•
Il est cependant possible d’automatiser la composition du fichier si l’export concerne
toutes les colonnes de la table source. Pour ce faire, dans la section « Basic settings »,
sélectionner en schema puis la metadata correspondant à la table Client
Figure 43 : Extraction de données - Fichier avec séparateur - Composant tFileOutputDelimited - Schema
(mode automatique)
•
En sélectionnant le bouton associé à « Edit Schema », la fenêtre comporte l’ensemble des
colonnes de la table Client,
Figure 44 : Extraction de données - Fichier avec séparateur - Composant tFileOutputDelimited - Schema (mode
automatique suite)
•
•
•
Faire un click droit sur le composant MSSqlInput, puis sans relâcher le bouton, relier ce
composant au tFileOuputDelimited,
Ajouter le composant Databases/MS SQL Server/tMSSqlRollback et vérifier dans les « Basic
settings » que la connexion sera fermée,
Faire un click droit sur le composant tFileOuputDelimited et sélectionner Trigger / On
Component OK afin de créer une liaison qui doit aboutir sur le composant
tMSSqlRollback.
Tutorial-Talend V1.0.doc
31 / 57
TALEND
Tutorial
Le job est à présent terminé :
Figure 45 : Extraction de données - Fichier avec séparateur - Schéma du job
Exécuter le job afin de vérifier son bon fonctionnement.
Figure 46 : Extraction de données - Fichier avec séparateur - Exécution du job
Le fichier a été alors correctement généré.
Figure 47 : Extraction de données - Fichier avec séparateur – Fichier généré
Note : Si la liaison entre le composant de sortie et le rollback est un Main, le job ne sera pas
opérationnel. En effet, une liaison Main est appliquée à chaque itération du traitement. De ce fait,
Tutorial-Talend V1.0.doc
32 / 57
TALEND
Tutorial
la première itération va ouvrir une connexion, exporter la première ligne, clore la connexion puis
vouloir exporter la deuxième ligne. La connexion étant fermée, un exception sera levée.
Figure 48 : Extraction de données - Fichier avec séparateur – Job en erreur
Figure 49 : Extraction de données - Fichier avec séparateur – Job en erreur (suite)
5.2.2
Fichier de champs de longueur fixe
Afin d’exporter des données d’une table dans un fichier avec des champs de longueur fixe, il faut
réitérer le processus précédent en remplaçant le composant tFileOutputDelimited par un
composant tFileOutputPositional.
Tutorial-Talend V1.0.doc
33 / 57
TALEND
Tutorial
Exportons les données commandes vers un fichier txt. De manière identique au
tFileOutputDelimited, la sélection d’un schema permet d’automatiser la saisie de la composition
du fichier destination.
Figure 50 : Extraction de données - Fichier avec des champs de longueur fixe - Composant tFileOoutputPositional
Dans notre exemple, il faut cependant modifier la taille des champs DateCommande,
DateLivraisonPrevue et DateExpedition à 30 et EstCommandeEnLigne à 5.
Le job est à présent terminé :
Figure 51 : Extraction de données - Fichier avec séparateur - Schéma du job
Exécuter le job afin de vérifier son bon fonctionnement.
Tutorial-Talend V1.0.doc
34 / 57
TALEND
Tutorial
Figure 52 : Extraction de données - Fichier avec séparateur - Exécution du job
Le fichier a été alors correctement généré.
Figure 53 : Extraction de données - Fichier avec séparateur – Fichier généré
Tutorial-Talend V1.0.doc
35 / 57
TALEND
Tutorial
6
Alimentation d’une table SQL Server avec le contenu d’un ou plusieurs
fichiers
6.1
Description
A partir des fichiers générés dans les paragraphes Fichier avec séparateur et Fichier de champs de
longueur fixe, nous allons alimenter des tables.
Ce paragraphe nécessite que le paramétrage des fichiers sources a été réalisé (cf §3.1.3 et §3.1.4)
ainsi que celui du datasource CONSOLIDATION_OLTP (cf §3.1.2)
6.2 Alimentation d’une table à partir d’un fichier
L’alimentation d’une table à partir d’un fichier se décompose comme suit :
•
•
•
•
•
•
•
•
•
Création d’un folder de Job nommé « Database_Import »,
Création d’un job nommé « OneFile2DBData »,
Ajouter au job une connection SQL Server vers la datasource CONSOLIDATION_OLTP,
Ajouter au job le File Delimited Client,
Relier ces deux composants par un lien OnComponentOK,
Ajouter un composant tMSSqlOuput pour qu’elle utilise la connexion précédemment
déclarée,
Sélectionner pour « Schema » la valeur « Repository » puis la table « Clients»,
Sélectionner pour « Action on table » la valeur « Clear Table »,
Sélectionner pour « Action on data » la valeur « Insert »
Figure 54 : Alimentation d'une table à partir d'un fichier - Composant tMSSqlOuput
•
•
•
Afin de définir le mapping entre les données du fichier source et la table cible, il faut
ajouter le composant Processing / tMap
Relier le File Delimited Client à ce tMap et relier ce tMap au tMSSqlOuput,
Sélectionner dans l’onglet Component du tMap le bouton associé au Map Editor
Tutorial-Talend V1.0.doc
36 / 57
TALEND
Tutorial
Figure 55 : Alimentation d'une table à partir d'un fichier - Composant tMap
•
Une fenêtre permet de glisser-déposer de mapper les données du fichier source et celle
de la table cible. En sélectionnant « Auto map ! » de la partie droite, un mapping
automatique est effectué par homonymie en non case-sensitive
Figure 56 : Alimentation d'une table à partir d'un fichier - Mapping
•
•
•
Supprimer dans un premier temps le mapping sur DateMAJ,
Le champ DateMAJ ne devant pas être null, se placer dans la première colonne du output
et sélectionner le bouton « … » afin d’afficher l’Expression Builder qui permet d’apporter
une aide sur les expressions,
Choisir comme « Category » la valeur « Talend Date » puis dans « Functions » la valeur
« getCurrentDate »,
l’expression
est
automatiquement
mise
à
jour
à
« TalendDate.getCurrentDate() »
Tutorial-Talend V1.0.doc
37 / 57
TALEND
Tutorial
Figure 57 : Alimentation d'une table à partir d'un fichier - Mapping (suite)
•
Insérer un composant tMSSqlCommit et relier le composant tMSSqlOuput précédent à ce
composant par un lien « onComponentOk ».
Le schéma du job ainsi généré est :
Figure 58 : Alimentation d'une table à partir d'un fichier - Schéma du Job
L’exécution du Job en cochant la case Statistics aboutit au résultat suivant :
Figure 59 : Alimentation d'une table à partir d'un fichier - Exécution du Job
Tutorial-Talend V1.0.doc
38 / 57
TALEND
Tutorial
Et la table Clients comprend les 190 000 lignes.
Figure 60 : Alimentation d'une table à partir d'un fichier - Visualisation des lignes Clients
6.3 Alimentation d’une table à partir de plusieurs fichiers
Nous allons dans cet exemple utiliser deux fichiers sources afin d’alimenter une table.
Pour ce faire, les étapes à suivre sont :
•
•
•
•
•
•
•
•
Créer un nouveau job « ManyFiles2DB »,
Ajouter un Composant tMSSqlConnection,
Faire glisser le fichier positional sur le designer du Job,
Relier les deux composants précédents via Trigger / On Component OK,
Faire glisser le fichier delimited sur le designer du Job,
Ajouter un composant tMap,
Relier le fichier positional au tMap par un click droit puis glisser le lien en restant appuyé,
Ajouter un composant tMSSqlOutput afin qu’il pointe vers la table Commandes
Figure 61 : Alimentation d'une table à partir de plusieurs fichiers - Basic Settings du tMSSqlOutput
•
•
Relier les deux composants tMSSqlOutput et tMap,
Répondre Yes à la question « Do you want to get the schema of the target component »,
afin que le système mette à jour les champs en sortie du tMap,
Tutorial-Talend V1.0.doc
39 / 57
TALEND
Tutorial
Figure 62 : Alimentation d'une table à partir de plusieurs fichiers - Mise à jour des champs en sortie du tMap
•
•
•
Dans Basic Settings, sélectionner Map Editor du tMap,
Par glisser/déposer dans les entrées, relier les champs ClientID afin de créer une jointure,
Par glisser/déposer, mapper les champs du row2 vers le output
Figure 63 : Alimentation d'une table à partir de plusieurs fichiers - Mapping
•
Le champ DateCommande est incorrect car il n’est pas possible de convertir la chaîne de
caractère en date. L’expression à utiliser est :
TalendDate.parseDateLocale("EEE
row1.DateCommande,"EN")
Tutorial-Talend V1.0.doc
MMM
dd
HH:mm:ss
zzz
yyyy",
40 / 57
TALEND
Tutorial
Figure 64 : Alimentation d'une table à partir de plusieurs fichiers - Mapping (suite)
•
Ajouter un composant tMSSqlCommit et le relier au tMSSqlOuput via un lien
onComponentOK.
Le schéma du job réalisé est le suivant :
Figure 65 : d'une table à partir de plusieurs fichiers - Schéma du Job
Le Job est exécuté correctement.
Tutorial-Talend V1.0.doc
41 / 57
TALEND
Tutorial
Figure 66 : Alimentation d'une table à partir de plusieurs fichiers - Exécution du Job
6.4 Gestion des rejets
Lors de l’utilisation de filtres, il est parfois nécessaire de récolter les données ne respectant pas
les critères. De telles données sont appelées rejets.
Afin de réaliser une table de rejet, les étapes à suivre sont :
•
•
•
•
•
Créer un folder de job nommé « Database_Uses »,
Créer un job nommé « Rejects »,
Ajouter un composant tMSSqlConnection référençant la base LABD_OLTP,
Ajouter un composant tMSSqlInput pointant sur la table Commande,
Ajouter un composant tFileOuputDelimited destiné à accueillir les commandes validées
(les colonnes du fichier sont CommandeId et Etat),
Tutorial-Talend V1.0.doc
42 / 57
TALEND
Tutorial
Figure 67 : Gestion des rejets - Composition Fichier Output
•
•
•
•
•
•
•
De même, ajouter un composant tFileOuputDelimited destiné à accueillir les commandes
validées (les colonnes du fichier sont CommandeId et Etat),
Ajouter un composant tMap,
Relier les deux composants tFileOuputDelimited précédent au tMap,
Ouvrir le Map Editor du tMap,
Relier le champ CommandeID en entrée avec celui des fichiers de sortie,
Relier le champ Etat en entrée avec celui des fichiers de sortie,
Pour la sortie Valide, sélectionner l’icône d’activation de filtres
Figure 68 : Gestion des rejets - Activation des filtres
•
Saisir un filtre sous la syntaxe Java,
Tutorial-Talend V1.0.doc
43 / 57
TALEND
Tutorial
Figure 69 : Gestion des rejets - Saisie d'un filtre
•
Pour la sortie de rejet, sélectionner l’icône d’activation des rejets
Figure 70 : Gestion des rejets - Activation des rejets
Figure 71 : Gestion des rejets - Mapping
Tutorial-Talend V1.0.doc
44 / 57
TALEND
Tutorial
•
Ajouter un composant tMSSqlRollback.
Le schéma du job est le suivant :
Figure 72 : Gestion des rejets - Schéma du Job
L’exécution du Job permet de constater la répartition des commandes en fonction de leur état
Figure 73 : Gestion des rejets - Exécution du Job
Tutorial-Talend V1.0.doc
45 / 57
TALEND
Tutorial
7
Composants Talend
La liste suivante, non-exhaustive, décrit des composants de Talend. Celle-ci sera revue
régulièrement.
Palette
tMsgBox
Composant
Misc
tRowGenerator
Misc
tFlowToIterate
Misc
tFor
Misc
Description
Affiche une alerte Windows. Les
boutons accessibles peuvent être
choisis parmi une liste prédéfinie
Génère des jeux de données de test en
définissant un schéma et les patterns
pour les données de test
Permet de définir des actions à
répéter pour tous les enregistrements
d’une source
Permet de lister les fichiers d’un
répertoire
Paragraphe
§4
Pour accéder au nom du fichier :
globalMap.get("$idtFor$_CURRENT_I
TERATION") où idtFor correspond à
l’identifiant
du
tFileList
qui
correspond à la valeur entre
parenthèse après son nom
tLogRow
tStatCatcher
tFileList
Logs & Errors
Logs & error
File
Permet d’afficher les données sur la
console
§8.2
Attention : Ce composant est très lent
Permet le calcul de performance
Peut être utilisé au niveau du
composant par l’onglet Job Settings
/Stats & Logs
Permet de lister les fichiers d’un
répertoire
Pour accéder au nom du fichier :
((String)globalMap.get("$idFileList$_
CURRENT_FILE"))
où
idFileList
correspond à l’identifiant du tFileList
Tutorial-Talend V1.0.doc
46 / 57
TALEND
Tutorial
tFileInputDelimited
File / Input
tFileInputPositional
File / Input
tFileOutputDelimited
File / Output
tFileOutputPositional
File / Output
tMysqlInput
Databases/MySQL
tMysqlOutput
Databases/MySQL
tMysqlConnection
Databases/MySQL
tMysqlCommit
Databases/MySQL
tMysqlRollback
Databases/MySQL
tMysqlBulkExec
Databases/MySQL
tMSSqlInput
Databases/MS SQL
Server
tMSSqlOutput
Databases/MS SQL
Server
tMSSqlConnection
Databases/MS SQL
Server
Databases/MS SQL
Server
tMSSqlCommit
tMSSqlRollback
Databases/MS SQL
Server
tMSSqlBulkExec
Databases/MS SQL
Server
Tutorial-Talend V1.0.doc
qui correspond à la valeur entre
parenthèse après son nom
Définit un fichier en entrée dont les
champs sont séparés par un
séparateur
Définit un fichier en entrée dont une
longueur fixe est associée à chaque
champ
Définit un fichier en sortie dont les
champs sont séparés par un
séparateur
Définit un fichier en sortie dont une
longueur fixe est associée à chaque
champ
Est linké avec une table MySql afin de
fournir des données en entrée
Est linké avec une table MySql afin de
pouvoir recevoir des données
Ouvre une connexion à une base
MySql
Effectue un commit sur une
connexion
MySql
et
permet
également de la clore
Effectue un rollback sur une
connexion
MySql
et
permet
également de la clore
Permet le chargement de masse sous
MySql
Est linké avec une table MS SQL
Server afin de fournir des données en
entrée
Est linké avec une table MS SQL
Server afin de pouvoir recevoir des
données
Ouvre une connexion à une base MS
SQL Server
Effectue un commit sur une
connexion MS SQL Server et permet
également de la clore
Effectue un rollback sur une
connexion MS SQL Server et permet
également de la clore
Permet le chargement de masse sous
MS SQL Server
§5.2.2
§5.2.1
§5.2.1
§6.2
§5.2.1
§6.2
§5.2.1
47 / 57
TALEND
Tutorial
tELTMysqlMap
ELT/MySQL
tELTMysqlInput
ELT/MySQL
tELTMysqlOutput
ELT/MySQL
tMap
Processing
Permet d’effectuer un mapping pour
la génération de flux
Permet de définir une entrée
(structure libre ou table) pour
effectuer un mapping
Permet de définir une sortie
(structure libre ou table) pour
effectuer un mapping
Permet de réaliser entre autre :
•
•
•
•
•
•
tJoin
tFilterJoin
Processing
Processing
tUnite
Processing
tSortRow
Processing
tExternalSortRow
Processing
tAggregateRow
Processing
tNormalize
Processing
tDenormalize
Processing
tJava
tJavaRow
Processing
Processing
tRunJob
System
Tutorial-Talend V1.0.doc
§6.2
Jointure (interne/externe),
Transformation des données,
Concaténation et inversion de
champs,
Filtrage,
Gestion des rejets,
qualité de données.
Réalise des jointures
Permet de limiter les colonnes en
sortie du composant
Permet de fusionner les données de
deux structures différentes
Permet de trier les données suivant
une ou plusieurs colonnes.
Permet de faire appel à un
programme externe pour réaliser un
tri (perfs accrues mais job non
portable)
Permet de faire des aggrégats avec
les fonctions : count, min, max, avg,
sum, first, last, liste, count(distinct)
Permet pour un champ contenant des
tokens de créer une ligne pour chaque
token
Permet de regrouper des données en
fonction d’une colonne commune et
indique les données de la colonne
regroupée sous forme de token
Permet d’exécuter des méthodes Java
Permet d’exécuter des méthodes Java
sur l’ensemble des lignes d’un flux de
données
Permet de lancer des jobs
48 / 57
TALEND
Tutorial
tSystem
System
tSSH
System
tSetEnv
System
tUniqRow
Data Quality
tPop
Internet
Tutorial-Talend V1.0.doc
Permet de lancer une ligne de
comamnde
Permet de lancer une succession de
commande sous une connexion ssh
Permet de définir une variable
d’environnement
Permet de déterminer les doublons en
fonction d’une colonne de données en
entrée. En sortie, il est possible soit
d’avoir les données uniques soit
d’avoir les données dont la colonne
étudiée a déjà été rencontrée.
Permet de recevoir des mails en pop
49 / 57
TALEND
Tutorial
8
Composants Java
8.1
Description
Il est possible sous Talend de créer des méthodes Java, nommées « Routines », pouvant être
utilisées dans les composants ainsi que de définir ses propres composants.
8.2 Création d’une routine
La création d’une Routine est accessible dans la section Routines de la partie Code du repository.
Créons une routine simple prenant en paramètre une valeur à laquelle sera préfixée « Hello ». Les
étapes à suivre sont :
•
•
Création d’un folder UserRoutines dans la section Routines
Création d’une routine ConcatenateHello
Tutorial-Talend V1.0.doc
50 / 57
TALEND
Tutorial
Figure 74 : Création de routine - Création
Tutorial-Talend V1.0.doc
51 / 57
TALEND
Tutorial
Figure 75 : Création de routine - Code Par défaut d'une routine
•
Modifier la classe générée par défaut par code préfixant le message par Hello et
retournant la valeur ainsi obtenue,
Tutorial-Talend V1.0.doc
52 / 57
TALEND
Tutorial
Figure 76 : Création de routine - Méthode prefixeHello
•
•
•
•
•
•
Création d’un folder Java_Component au niveau des Jobs,
Création d’un job RoutineHello,
Ajout d’un fichier en entrée,
Ajout d’un composant tLogRow avec une unique colonne Message,
Ajout d’un tMap devant être relié aux deux composants précédents,
Mapping dans le Map Editor de la valeur de sortie Message par l’expression
ConcatenateHello.prefixeHello(row1.Prenom)
(la categorie « *User Defined » permet d’atteindre aisément la routine définie)
Tutorial-Talend V1.0.doc
53 / 57
TALEND
Tutorial
Figure 77 : Création de routine - Expression Builder
Tutorial-Talend V1.0.doc
54 / 57
TALEND
Tutorial
Figure 78 : Création de routine - Mapping
Le schéma du Job ainsi généré est :
Figure 79 : Création de routine - Job généré
L’exécution du Job confirme que l’utilisation de la routine est possible.
Tutorial-Talend V1.0.doc
55 / 57
TALEND
Tutorial
Figure 80 : Création de routine - Exécution du job
Tutorial-Talend V1.0.doc
56 / 57
TALEND
Tutorial
9
Annexes
9.1
Ressources du tutorial
9.1.1
Base de données
9.1.1.1
Script de création de CONSOLIDATION_OLTP.Clients
USE [CONSOLIDATION_OLTP]
GO
/****** Objet : Table [dbo].[Clients] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Clients](
[ClientID] [int] NULL,
[Nom] [varchar](50) NOT NULL,
[prenom] [varchar](50) NOT NULL,
[Email] [varchar](50) NULL,
[DateMaj] [datetime] NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
9.1.1.2
Script de création de CONSOLIDATION_OLTP.Commandes
USE [CONSOLIDATION_OLTP]
GO
/****** Objet : Table [dbo].[Commandes] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Commandes](
[CommandeID] [int] NOT NULL,
[NumeroCommande] [char](18) NOT NULL,
[DateCommande] [datetime] NOT NULL,
[TotalOrdre] [money] NOT NULL,
[TotalHorsLivraison] [money] NOT NULL,
[FraisLivraison] [money] NOT NULL,
[ClientNom] [varchar](50) NOT NULL,
[ClientPrenom] [varchar](50) NOT NULL,
[ClientEmail] [varchar](50) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
Tutorial-Talend V1.0.doc
57 / 57
Téléchargement