38183288 Tutorial Talend V1 0

57
Tutorial-Talend V1.0.doc 1 / 57 Simplifions les projets décisionnels TALEND Tutorial version 1.0 du 07/10/2008

Transcript of 38183288 Tutorial Talend V1 0

Page 1: 38183288 Tutorial Talend V1 0

Tutorial-Talend V1.0.doc 1 / 57

Simplifions les projets décisionnels

TALEND

Tutorial

version 1.0 du 07/10/2008

Page 2: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 2 / 57

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 Configuration de la DataSource LABD_OLTP .......................................................................... 7

3.1.2 Configuration de la DataSource CONSOLIDATION_OLTP ...................................................... 12

3.1.3 Configuration d’un fichier Delimited ..................................................................................... 13

3.1.4 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 Fichier avec séparateur ......................................................................................................... 28

5.2.2 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 Base de données .................................................................................................................... 57

Page 3: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 3 / 57

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 :

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

1.2 Suivi des révisions du document

Version Date Modifications Auteur

1.0 07/10/08 Création du document C. HOUPE

1.3 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-et-

restauration-de-la-base-OLTP-sous-SQL-Server.html)

Page 4: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 4 / 57

• 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/Laboratoire-

Talend/Installation-Talend-Open-Studio.html )

Page 5: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 5 / 57

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.

Page 6: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 6 / 57

Figure 2 : Ecran de création de projet

Sélectionner ce projet afin d’ouvrir Talend

Figure 3 : Ecran d'accueil

Page 7: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 7 / 57

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.

Page 8: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 8 / 57

Figure 6 : Création de Metadata – Datasource - Création d'une datasource - Etape 1

Page 9: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 9 / 57

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.

Page 10: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 10 / 57

Figure 8 : Création de Metadata – Datasource - Retrieve Schema - Etape 1

Figure 9 : Création de Metadata – Datasource - Retrieve Schema - Etape 2

Page 11: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 11 / 57

Figure 10 : Création de Metadata – Datasource - Retrieve Schema - Etape 3

Page 12: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 12 / 57

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

Page 13: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 13 / 57

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,

Page 14: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 14 / 57

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),

Page 15: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 15 / 57

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,

Page 16: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 16 / 57

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.

Page 17: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 17 / 57

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

Page 18: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 18 / 57

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),

Page 19: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 19 / 57

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,

Page 20: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 20 / 57

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.

Page 21: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 21 / 57

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

Page 22: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 22 / 57

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

Page 23: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 23 / 57

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

Page 24: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 24 / 57

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.

Page 25: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 25 / 57

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

Page 26: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 26 / 57

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

Page 27: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 27 / 57

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

Page 28: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 28 / 57

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)

Page 29: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 29 / 57

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

Page 30: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 30 / 57

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

Page 31: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 31 / 57

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

Page 32: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 32 / 57

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,

Page 33: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 33 / 57

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.

Page 34: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 34 / 57

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.

Page 35: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 35 / 57

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é

Page 36: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 36 / 57

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

Page 37: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 37 / 57

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() »

Page 38: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 38 / 57

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

Page 39: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 39 / 57

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,

Page 40: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 40 / 57

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 MMM dd HH:mm:ss zzz yyyy",

row1.DateCommande,"EN")

Page 41: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 41 / 57

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.

Page 42: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 42 / 57

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),

Page 43: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 43 / 57

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,

Page 44: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 44 / 57

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

Page 45: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 45 / 57

• 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

Page 46: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 46 / 57

7 Composants Talend

La liste suivante, non-exhaustive, décrit des composants de Talend. Celle-ci sera revue

régulièrement.

Palette Composant Description Paragraphe

tMsgBox Misc Affiche une alerte Windows. Les

boutons accessibles peuvent être

choisis parmi une liste prédéfinie

§4

tRowGenerator Misc 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

tFlowToIterate Misc Permet de définir des actions à

répéter pour tous les enregistrements

d’une source

tFor Misc Permet de lister les fichiers d’un

répertoire

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 Logs & Errors Permet d’afficher les données sur la

console

Attention : Ce composant est très lent

§8.2

tStatCatcher Logs & error Permet le calcul de performance

Peut être utilisé au niveau du

composant par l’onglet Job Settings

/Stats & Logs

tFileList File 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

Page 47: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 47 / 57

qui correspond à la valeur entre

parenthèse après son nom

tFileInputDelimited File / Input Définit un fichier en entrée dont les

champs sont séparés par un

séparateur

tFileInputPositional File / Input Définit un fichier en entrée dont une

longueur fixe est associée à chaque

champ

§5.2.2

tFileOutputDelimited File / Output Définit un fichier en sortie dont les

champs sont séparés par un

séparateur

§5.2.1

tFileOutputPositional File / Output Définit un fichier en sortie dont une

longueur fixe est associée à chaque

champ

tMysqlInput Databases/MySQL Est linké avec une table MySql afin de

fournir des données en entrée

tMysqlOutput Databases/MySQL Est linké avec une table MySql afin de

pouvoir recevoir des données

tMysqlConnection Databases/MySQL Ouvre une connexion à une base

MySql

tMysqlCommit Databases/MySQL Effectue un commit sur une

connexion MySql et permet

également de la clore

tMysqlRollback Databases/MySQL Effectue un rollback sur une

connexion MySql et permet

également de la clore

tMysqlBulkExec Databases/MySQL Permet le chargement de masse sous

MySql

tMSSqlInput Databases/MS SQL

Server

Est linké avec une table MS SQL

Server afin de fournir des données en

entrée

§5.2.1

tMSSqlOutput Databases/MS SQL

Server

Est linké avec une table MS SQL

Server afin de pouvoir recevoir des

données

§6.2

tMSSqlConnection Databases/MS SQL

Server

Ouvre une connexion à une base MS

SQL Server

§5.2.1

tMSSqlCommit Databases/MS SQL

Server

Effectue un commit sur une

connexion MS SQL Server et permet

également de la clore

§6.2

tMSSqlRollback Databases/MS SQL

Server

Effectue un rollback sur une

connexion MS SQL Server et permet

également de la clore

§5.2.1

tMSSqlBulkExec Databases/MS SQL

Server

Permet le chargement de masse sous

MS SQL Server

Page 48: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 48 / 57

tELTMysqlMap ELT/MySQL Permet d’effectuer un mapping pour

la génération de flux

tELTMysqlInput ELT/MySQL Permet de définir une entrée

(structure libre ou table) pour

effectuer un mapping

tELTMysqlOutput ELT/MySQL Permet de définir une sortie

(structure libre ou table) pour

effectuer un mapping

tMap Processing Permet de réaliser entre autre :

• Jointure (interne/externe),

• Transformation des données,

• Concaténation et inversion de champs,

• Filtrage,

• Gestion des rejets,

• qualité de données.

§6.2

tJoin Processing Réalise des jointures

tFilterJoin Processing Permet de limiter les colonnes en

sortie du composant

tUnite Processing Permet de fusionner les données de

deux structures différentes

tSortRow Processing Permet de trier les données suivant

une ou plusieurs colonnes.

tExternalSortRow Processing Permet de faire appel à un

programme externe pour réaliser un

tri (perfs accrues mais job non

portable)

tAggregateRow Processing Permet de faire des aggrégats avec

les fonctions : count, min, max, avg,

sum, first, last, liste, count(distinct)

tNormalize Processing Permet pour un champ contenant des

tokens de créer une ligne pour chaque

token

tDenormalize Processing 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

tJava Processing Permet d’exécuter des méthodes Java

tJavaRow Processing Permet d’exécuter des méthodes Java

sur l’ensemble des lignes d’un flux de

données

tRunJob System Permet de lancer des jobs

Page 49: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 49 / 57

tSystem System Permet de lancer une ligne de

comamnde

tSSH System Permet de lancer une succession de

commande sous une connexion ssh

tSetEnv System Permet de définir une variable

d’environnement

tUniqRow Data Quality 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.

tPop Internet Permet de recevoir des mails en pop

Page 50: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 50 / 57

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

Page 51: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 51 / 57

Figure 74 : Création de routine - Création

Page 52: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 52 / 57

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,

Page 53: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 53 / 57

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)

Page 54: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 54 / 57

Figure 77 : Création de routine - Expression Builder

Page 55: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 55 / 57

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.

Page 56: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 56 / 57

Figure 80 : Création de routine - Exécution du job

Page 57: 38183288 Tutorial Talend V1 0

TALEND

Tutorial

Tutorial-Talend V1.0.doc 57 / 57

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