Vous êtes sur la page 1sur 23

Bien dbuter un projet Talend

Par Jean-Sbastien DARGES - Fleur-Anne.Blain

Date de publication : 15 mars 2010 Dernire mise jour : 16 mars 2010

Ce tutoriel va vous expliquer comment bien dbuter un projet Talend. Quelles sont les tapes essentielles ne pas oublier et quels sont les piges viter.

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

I - Introduction..............................................................................................................................................................3 II - Configuration matrielle......................................................................................................................................... 4 III - Les environnements de travail..............................................................................................................................5 IV - Ajout des variables de contexte........................................................................................................................... 7 V - Dfinir les types de variables.............................................................................................................................. 10 VI - Grer les mtadonnes...................................................................................................................................... 12 VI-A - Dfinir les connexions aux bases de donnes......................................................................................... 12 VI-B - Dfinir les fichiers sources/cibles.............................................................................................................. 15 VI-C - Utilisation des mtadonnes..................................................................................................................... 17 VII - Gestion des logs................................................................................................................................................20 VIII - Conclusion........................................................................................................................................................ 22 IX - Remerciements................................................................................................................................................... 23

-2-

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

I - Introduction
Lorsque l'on commence un projet Talend, il est parfois difficile de savoir par o commencer et on s'aperoit trop tard qu'on aurait d dfinir plus de variables de contexte, plus de schmas... Du coup on revient sur les dveloppements et la perte de temps qui en dcoule peut, dans certains cas, tre critique pour un projet. Que ce soit avec Talend Open Studio (TOS : version Open Source) ou Talend Integration Suite (TIS : version payante collaborative), il convient d'organiser ds le dbut l'espace de travail de faon optimise pour la suite des dveloppements. Ce tutoriel va donc vous expliquer pas pas comment bien dbuter un projet avec Talend. Tous les exemples seront tirs de la version gratuite TOS 3.2.1 mais la mthode est approximativement la mme avec TIS ou d'autres version de TOS.

-3-

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

II - Configuration matrielle
Pour utiliser le client Talend, il faut savoir qu'il se base sur une plateforme clipse. Cette plateforme est trs gourmande en CPU et en mmoire vive. Prfrez des postes avec au minimum : un processeur double cur cadenc 2GHz 2Go de mmoire

et si vous tes sous TIS : idem qu'avant (voir mme plus de mmoire) connexion gigabit (pour mettre jour plus rapidement le workspace partag) disque dur 7200tr/min (pour acclrer la lecture/criture) Plus votre poste sera performant et plus vous chargerez rapidement le client Talend au dmarrage, dvelopperez et excuterez vos jobs (en phase de tests).

-4-

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

III - Les environnements de travail


Tout d'abord, il est ncessaire de dfinir les environnements de travail. Par l, je veux parler des trois voir quatre environnements qu'on peut trouver sur un projet, savoir : l'environnement de dveloppement (DEV), de prproduction (PREPROD) et de production (PROD). Vous pouvez bien videment en dfinir plus suivant vos besoins, comme par exemple un environnement de performance (PERF) o serait test le projet avec un maximum de donnes pour vrifier que la monte en charge se droule correctement. Une fois ces environnements dfinis, il faut maintenant faire une liste de toutes les variables, noms de fichiers, accs aux bases de donnes, ftp, ssh... qui seront utilises dans le projet suivant l'environnement dans lequel on se trouve. On peut d'ailleurs le faire sous forme de tableau, ce qui permet d'avoir une vision globale de tout cela : Variable Description Default serverAddress Adresse du localhost serveur projectFolder Racine du C:/tests/ projet binFolder Dossier bin/ contenant les binaires de l'application logFolder Dossier de log/ logs inFileFolder Dossier in-file/ des fichiers source outFileFolder Dossier des out-file/ fichiers cible SshUsername Login SSH test SshPassword Mot de passe testPasswd SSH SshPort Port SSH 22 SshHost Nom d'hte / 192.168.3.2 IP du serveur SSH FtpUsername Login FTP testFt FtpPassword Mot de passe testFTPpwd FTP FtpHost Nom/IP du ftp-test serveur FTP hte DBHost Nom du localhost serveur de base de donnes DBUsername Nom DBTest d'utilisateur DEV 192.168.3.1 PREPROD srv1-preprod PROD developpez.com /appli/ myProject/ bin/

//192.168.3.1/ //srv1appli/dev/ preprod/ bin/ bin/

log/ in-file/ out-file/ jsd03 myPasswd 22 192.168.3.2

log/ in/ out/ bob secret 22 192.168.4.5

log/ in/ out/ dupont verySecret 23 developpez.com ftpProd vSec ftp-prod developpez.com

jsd03 ftpPreprod myFtpPasswd sec ftp-dev 192.168.3.1 ftp-preprod serv-preprod

DBdev

DBpreprod

DBProd

-5-

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

de la base de donnes DBPassword Mot de passe de la base de donnes DBPort Port de la base de donnes Paramtres Paramtres additionnels additionnels de la base de de la base de donnes donnes DBBase Nom de la base de donnes RefFileName1 Nom du fichier de rfrences ... ...

DBpwd 3306

DBpwd 1290

DBpwd 1551

DBpwd 1551

noDatetimeStringSync=true charset=UTF-8 charset=UTF-8 charset=UTF-8

DEV

XE

PREPROD

PROD

ref_users.csv ref_users.csv ref_users.csv ref_users.csv ... ... ... ...

Plusieurs choses retenir par rapport ce tableau : J'ai rajout volontairement une colonne pour un environnement nomm "Default". Car Talend, par dfaut, enregistre toutes les variables d'un projet dans le contexte (environnement) "Default". Il servira, dans notre exemple, pour dfinir l'environnement local du dveloppeur (trs pratique pour les phases de tests). Dans le tableau j'ai ensuite ajout les informations sur l'architecture logicielle du projet : dossier de log, les binaires... Puis les accs un serveur SSH et FTP. Pour terminer, j'ai aussi ajout un nom de fichier o se trouve certaines rfrences qui seront utilises par exemple en lookup de certains jobs et dont le nom est fix par avance. Vous pouvez ainsi lister toutes les informations qui ne varieront pas tout au long du projet et dont vous vous servirez de faon rptitive.

-6-

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

IV - Ajout des variables de contexte


Les variables tant maintenant listes, nous allons les ajouter au projet en les organisant par groupe de contexte. Pour cela faites un clic droit sur "Contextes" dans le menu de gauche. Puis slectionnez "Crer un groupe de contexte"

Pour commencer on va ajouter les variables concernant les informations relatives au serveur en crant un groupe de contexte nomm "server".

Vous pouvez voir que l'on peut modifier le type de donnes renseignes (String, int, boolean...) Cliquez maintenant sur l'onglet "Valeurs en table". C'est ici que l'on va dfinir les valeurs des variables.

Nous n'allons pas dfinir tout de suite les valeurs des variables mais ajouter les trois environnements que nous avons mentionn plus haut en cliquant sur le bouton entour en rouge sur l'image ci-dessous.

-7-

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

Une fois que vous aurez cliquez sur OK, Talend va ajouter autant de colonnes que d'environnements renseigns. Pour changer d'environnement lors de l'excution d'un job, allez dans l'onglet "Excuter" et choisissez le contexte voulu.

Vous pouvez maintenant reprendre votre liste de variables et ajouter les valeurs.

Le groupe de contexte "server" va s'ajouter la liste des contextes.

-8-

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

Vous pouvez refaire cette opration autant de fois que vous avez de groupe de contexte dfinir. N'ajoutez pas pour le moment les informations relatives aux bases de donnes car Talend va pouvoir importer les informations de connexion automatiquement comme nous allons le voir dans le chapitre VI. Pour utiliser ces variables, il suffit d'ajouter dans l'onglet "Context" du job, les variables de contextes ncessaires et d'appeler une variable de cette manire :
context.logFolder

-9-

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

V - Dfinir les types de variables


Talend permet de dfinir les tailles par dfaut des variables Java. Pour configurer cela, cliquez sur le menu "Fentre > Prfrences". Dans cette fentre dveloppez l'arborescence en cliquant successivement sur "Talend > Specific Settings > Default type and Length".

Vous pouvez ainsi dfinir les longueurs par dfaut du type String une taille de 300. Maintenant que vous avez dfini les types et les longueurs des variables, cliquez sur "Metadata of TalendType" pour dfinir les relations types base de donnes / variables Java. Car par exemple, Talend va charger les donnes de type NUMBER (pour une base de donnes Oracle) dans une variable de type BigDecimal, alors que vous souhaitez plutt que le type NUMBER soit mapper avec un type Integer Java (plus maniable).

Dans cette fentre, vous pouvez voir une liste de fichiers XML qui mappent les types "base de donnes" avec les types Java. Par exemple, on va modifier le mapping NUMBER -> BigDecimal d'une base de donnes Oracle pour obtenir NUMBER -> Integer Double cliquez sur le fichier mapping_Oracle.xml et recherchez la section suivante :
<talendType type="id_BigDecimal"> <dbType type="DEC" default="true"/> <dbType type="DECIMAL"/> <dbType type="NUMERIC"/> <dbType type="NUMBER"/> </talendType>

- 10 -

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

Coupez la ligne :
<dbType type="NUMBER"/>

et collez-l dans la section :


<talendType type="id_Integer"> <dbType type="INT" default="true"/> <dbType type="INTEGER"/> <dbType type="PLS_INTEGER"/> </talendType>

Reprez enfin la section :


<dbType type="NUMBER"> <talendType type="id_BigDecimal" default="true" /> </dbType>

et changez la valeur du paramtre type par id_Integer. Maintenant les valeurs de type NUMBER seront exportes/importes en Integer dans Talend la place du type BigDecimal.

- 11 -

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

VI - Grer les mtadonnes VI-A - Dfinir les connexions aux bases de donnes
Un ETL permet de rcuprer des donnes de plusieurs sources diffrentes, de les transformer et de les recharger dans un entrept de donnes central. Nous allons donc maintenant dfinir les connexions aux bases de donnes. Faites un clic droit sur "DB Connections" dans le menu de droite puis sur "Crer une connexion".

Renseignez le nom que vous voulez donner la connexion.

Aprs avoir cliquez sur [Suivant], renseignez toutes les informations relatives la connexion. Vous pouvez enfin tester la connexion en cliquant sur le bouton [Vrifier].

- 12 -

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

Maintenant, chose trs importante ce niveau, on va pouvoir exporter les variables lies la connexion dans un groupe de contexte en cliquant sur le bouton [Exporter comme context].

Comme dans le chapitre prcdent vous allez pouvoir dfinir les valeurs de la connexion pour chaque environnement de travail. Cliquez successivement sur le bouton [Suivant] puis sur l'onglet "Valeurs en table" ensuite, cliquez comme indiqu sur l'image :

Pour la suite, reportez vous au chapitre prcdent. Une fois les variables exportes dans un groupe de contexte, cliquez sur le bouton [Terminer]. La connexion s'est ajoute aux mtadonnes ainsi que le groupe de contexte en relation.

- 13 -

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

Vous pouvez maintenant rcuprer le schma des tables de la connexion prcdemment paramtre. Pour cela faites un clic droit sur la connexion voulue puis sur "Rcuprer le schma"

Une fentre va vous demander quel rfrentiel utiliser pour se connecter la base de donnes : vous de choisir.

Vous pouvez ensuite choisir quels objets importer. Pour l'exemple, je ne vais importer que le schma des tables.

- 14 -

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

Cochez ensuite les tables importer et cliquez sur le bouton [Suivant].

Dfinissez le schma des tables si ncessaire et cliquez sur le bouton [Terminer]. Les schmas des tables ont t ajouts aux mtadonnes et pourrons tre utiliss dans les jobs.

VI-B - Dfinir les fichiers sources/cibles


Un peu comme les connexions aux bases de donnes, on va ajouter les fichiers sources/cibles dont le schma n'voluera pas au cours du temps et qui seront utiliss de faon rptitive dans les jobs. Dans l'exemple qui va suivre, on va ajouter un fichier de type dlimit. Faites un clic droit du "Fichier Dlimit" dans le menu de gauche dans la partie Metadata, puis cliquez sur "Crer un fichier dlimit". Dans le fentre qui s'affiche, renseignez le nom du fichier (il peut tre diffrent du nom physique du fichier dans le file system). Cliquez sur le bouton [Suivant].

- 15 -

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

La fentre qui s'affiche maintenant va vous permettre de visualiser les donnes du fichier dont on veut rcuprer le schma. vitez de charger un fichier de plus de 1 Mo car plus le volume sera important et plus Talend risque d'avoir du mal charger ce fichier et rcuprer son schma. Privilgiez un fichier peu volumineux. Aprs avoir cliqu sur le bouton [Suivant], la fentre suivante s'affiche et vous permet de paramtrer le fichier savoir : l'encodage, le sparateur et tout un tas d'autres choses que je vous laisse dcouvrir et qui n'ont pas besoin d'tre expliques.

La fentre suivante permet de dfinir le schma du fichier. Par dfaut, Talend propose un schma qu'il a automatiquement rcupr en fonction des donnes prsentes dans le fichier.

- 16 -

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

Pour finir, cliquez sur le bouton [Terminer]. Le schma du fichier s'est ajout aux mtadonnes.

Faites de mme pour tous les flux de donnes entrant et sortant. Vous pouvez ajouter des schmas gnriques qui n'aurons pas une tiquette attache du genre "schma de fichier dlimit" ou encore "schma de fichier XML". Ces schmas pourront tre utiliss dans n'importe quel composant.

VI-C - Utilisation des mtadonnes


Vous avez pu ajouter de nouveaux schmas dans les mtadonnes et vous vous demandez quoi cela va servir ? Tout simplement ne pas redfinir chaque fois dans chaque job le schma des composants. Admettons que vous allez utiliser plusieurs fois la table "Users" de la base de donnes Mysql_in, que j'ai dfinie plus haut, dans plusieurs jobs. Ce serait dommage d'avoir redfinir le schma de la table chaque utilisation d'un tMySQLInput. Pour utiliser la connexion la base de donnes MySQL et le schma de la table "Users", suivez la procdure indique ci-dessous : : faites un glisser/dposer de table Users de la connexion MySQL dfini dans les metadatas. Talend va vous demander quel type de composant sera utilis avec cette table : choisissez tMysqlInput

- 17 -

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

Une seconde fentre s'affiche pour savoir si vous voulez ou non importer les contextes relatifs la connexion la base de donnes. Cliquez sur le bouton [Ajouter].

Le composant ajout, vous pouvez double-cliquer sur ce dernier pour voir son paramtrage :

On voit alors que la base de donnes est issue du rfrentiel (metadata) et que le schma de la table est lui aussi issu du rfrentiel. Talend a mme gnr automatiquement la requte de rcupration de l'ensemble de la table.

- 18 -

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

En une minute : en faisant uniquement un glisser/dposer et deux clics vous avez cr une connexion la table Users de la base mysql sans coder une seule ligne ! chaque fois que vous utiliserez un composant, vous pourrez ainsi faire appel au mtadonnes du rfrentiel et donc ne plus avoir dfinir manuellement les schmas des composants. Soit un gain de temps non ngligeable.

- 19 -

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

VII - Gestion des logs


Il ne faut pas oublier de grer les logs de vos jobs Talend. On oublie trop souvent ou trop tard de gnrer des logs d'application. On va donc voir comment gnrer automatiquement des logs dans vos jobs. Cliquez successivement sur "Fichier > Edit project Properties". Dans la fentre qui s'affiche, dveloppez le menu de gauche en cliquant sur "Job Settings" > "Stats and logs". Cochez ensuite la case "Utiliser les logs (tLogCatcher) puis choisissez o sauvegarder les logs. Je vous conseille de le faire dans un fichier car si vous sauvegardez vos logs dans une base de donnes rien ne dit que cette dernire ne plantera jamais. Alors qu'un fichier est lisible depuis n'importe quel poste et le risque de plantage li au logs sera moindre. Exemple :

Explications : J'ai renseign dans le champ "chemin du fichier" (dossier de sauvegarde des logs) context.projectFolder +context.logFolder car prcdemment j'ai ajout un groupe de contexte "server" avec les variables projectFolder et logFolder. La combinaison des deux variables me donne le dossier de sauvegarde des logs. Pour ce qui est du nom des logs plusieurs options s'offrent vous : 1 2 3 soit vous indiquez un nom de fichier fixe par exemple mesLogs.log. Dans ce cas, tous les logs iront dans ce fichier ce qui pourrait poser des problmes de taille; soit vous indiquez un nom de fichier par rapport la date courante (comme j'ai fais) : TalendDate.getDate("CCYYMMDD")+".log". Les logs seront sauvegards par jour dans un fichier avec un nom de type 20100222.log; soit vous choisissez un fichier de log pour chaque job et dans ce cas il faut utiliser la variable "jobName" que vous pouvez concatner avec le nom du projet par exemple et la date (pour faire compliqu :)) : projectName+"."+jobName+"_"+TalendDate.getDate("CCYYMMDD")+".log"

J'ai prfr utiliser les variables de contexte car cela permet de passer d'un environnement de travail l'autre sans problme de chemin invalide. Maintenant, si vous ajoutez un nouveau job, vous aurez ceci dans l'onglet "Job" partie "Stats and Logs" :

Par contre le job n'a pas automatiquement ajout les contextes propres la configuration des logs. Il faut donc maintenant le faire. Pour cela, cliquez sur l'onglet "Contexts" puis sur le bouton ct de la flche bas :

- 20 -

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

Choisissez ensuite les deux variables de contexte logFolder et projectFolder du groupe server.

Une autre fentre s'affiche quand vous cliquez sur [OK]. Cette fentre permet d'importer les environnements de travail.

Une fois termin, les variables de contexte relatives aux logs seront ajouts et vous pourrez alors commencer dvelopper vos jobs. Les fichiers de logs pourront ressembler cela :
2010-02-17 15:20:08;E2BzGt;E2BzGt;E2BzGt;MONPROJET;test2;Default;6;Java Exception;tFileInputDelimited_1;java.io.FileNotFoundException:C:\Documents and Settings\Developpez \Bureau\monFichier.csv (Le fichier spcifi est introuvable);1

On a ainsi l'endroit o le process plant : MONPROJET (le nom du projet), test2 (le nom du job). Les informations sur le contexte utilis : Default et l'erreur java. On peut faire exactement la mme chose pour les mtriques des jobs (combien de donnes entres, combien de donnes traites...) et leurs statistiques (heure de dbut, heure de fin et temps d'excution) . Exemple de fichier des statistiques :
2010-02-17 15:26:02;WeW17F;WeW17F;WeW17F;2400;MONPROJET;test2;_kR0M0BvNEdWqpfVv2WXGQ;0.1;Default;;begin;; 2010-02-17 15:26:02;WeW17F;WeW17F;WeW17F;2400;MONPROJET;test2;_kR0M0BvNEdWqpfVv2WXGQ;0.1;Default;;end;success;47
- 21 -

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

VIII - Conclusion
Pour bien commencer dvelopper un projet sous Talend, voici les sept tapes essentielles : 1 2 3 4 5 6 7 choisir des postes de travail performants pour une meilleure souplesse de dveloppement; choisir un serveur encore plus performant que les poste de travail; lister les variables qui seront utilises dans le projet; ajouter les variables de contexte se basant sur la liste prcdente; ajouter les connexions aux bases de donnes; ajouter les schmas sources et cibles (metadata); ne pas oublier les logs.

Maintenant que vous avez bien retenu ces tapes, vos PC et bon dveloppement.

- 22 -

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/

Bien dbuter un projet Talend par Jean-Sbastien DARGES - Fleur-Anne.Blain

IX - Remerciements
Je remercie jacques_jean pour ses remarques et sa relecture.

- 23 -

http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/