Professional Documents
Culture Documents
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.
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.............................................................................................................................. 11 VI - Grer les mtadonnes...................................................................................................................................... 14 VI-A - Dfinir les connexions aux bases de donnes......................................................................................... 14 VI-B - Dfinir les fichiers sources/cibles.............................................................................................................. 18 VI-C - Utilisation des mtadonnes..................................................................................................................... 21 VII - Gestion des logs................................................................................................................................................24 VIII - Conclusion........................................................................................................................................................ 27 IX - Remerciements................................................................................................................................................... 28
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
-2-
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.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
-3-
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).
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
-4-
log/ in/ out/ dupont verySecret 23 developpez.com ftpProd vSec ftp-prod developpez.com
DBdev
DBpreprod
DBProd
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
-5-
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
DEV
XE
PREPROD
PROD
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.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
-6-
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.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
-7-
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.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
-8-
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.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
-9-
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
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 10 -
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).
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 11 -
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>
Coupez la ligne :
<dbType type="NUMBER"/>
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 12 -
Bien dbuter un projet Talend par Jean-Sbastien DARGES (http://jsdarges.developpez.com/) <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.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 13 -
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".
Aprs avoir cliquez sur [Suivant], renseignez toutes les informations relatives la connexion. Vous pouvez enfin tester la connexion en cliquant sur le bouton [Vrifier].
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 14 -
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.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 15 -
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.
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"
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 16 -
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.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 17 -
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.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
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].
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.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 19 -
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.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 20 -
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.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 21 -
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
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 :
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 22 -
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. 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.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 23 -
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" :
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 24 -
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 :
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 :
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 25 -
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
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 26 -
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.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 27 -
IX - Remerciements
Je remercie jacques_jean pour ses remarques et sa relecture.
http://jsdarges.developpez.com/tutoriels/bi/bien-debuter-projet-talend/
- 28 -