fbpx

Dans ce troisième tutoriel, nous allons vous expliquer comment utiliser le composant tMap afin de joindre deux sources de données. 

Les deux sources de données en question que nous allons utiliser sont les fichiers générés lors des deux tutoriaux précédents, à savoir « Personne.csv » et « adresse.csv ». Si vous ne les avez pas, vous pouvez rejouer les jobs précédents, sinon vous pouvez les télécharger ici.




Comment utiliser le composant tMap ?

 

Après avoir téléchargé les fichiers indiqués ci-dessus, nous allons juste modifier un peu le fichier « Personnes.csv » afin d’ajouter un champ « adresse_id » comme l’illustre l’image ci-dessous. 



Ce champ permettra de faire la jointure avec le fichier « adresse.csv ». Pour rappel, voici ce que contient ce fichier. 



Vous avez surement remarqué que la personne ayant l’id n°3 n’a pas d’adresse et que l’adresse_id n°2 est présente deux fois. C’est normal, cela permettra d’illustrer pleinement la puissance du tMap. 

Ouvrez le projet que nous avons utilisé lors des deux précédents projets nommé « tutoriels_talend ». Créez maintenant un nouveau job que l’on nommera « tMap ». 

Rappelez-vous, une bonne pratique est de remplir les champs « Objectif » et « Description ». Prenez l’habitude de le faire dès maintenant, cela deviendra automatique lorsque vous serez confronté à de vrais projets. 



Vous voici sur votre nouveau job, dans un premier temps nous allons ouvrir nos deux fichiers à l’aide du composant tFileinputDelimited que nous avons déjà étudié précédemment. 

Votre « job designer » possède donc ces deux composants. Bien sûr, il va falloir définir leur schéma, ainsi que définir quel fichier ils doivent lire. 



Avant ça, je voudrais vous donner une petite astuce. Vous avez surement remarqué que le nom par défaut du composant n’est pas très explicite. Ici nous n’avons que deux fichiers à ouvrir, mais si on en avait eu ne serait-ce que 5, ça se complexifie un peu. 

Cliquez sur le premier composant nommé « tFileInputDelimited_1 », ensuite allez dans l’onglet « Composant » puis « View » et enfin changez le texte dans « Format du libellé » comme sur l’image ci-dessous. 



Voyez, le nom a changé, ça vous permettra de vous y retrouver plus facilement. 

Vous pouvez faire de même pour l’autre composant et modifier les schémas en fonction des champs présents dans les fichiers « Personne.csv » et « adresse.csv ». 

Pour le schéma du fichier « Personne.csv » vous devriez avoir ceci. 



Et pour le fichier « adresse.csv » vous devriez avoir cela. 



Afin de vérifier que vous avez les bons paramétrages, vous pouvez insérer un tLogRow qui permet d’afficher les données lues. 

Bien il est temps de disposer sur votre job designer le fameux composant que vous attendez depuis le début de ce tutoriel, le tMap. 

Vous allez devoir dans un premier temps relier le flux venant du fichier « Personne.csv » au tMap, puis dans un second temps le flux venant du fichier « adresse.csv » au même tMap. 



Remarquez que la première connexion que vous avez effectué est de type « Main » alors que la seconde est de type « Lookup ». 

Les connexions «Lookup » sont des connexions entrantes secondaires (ou de référence). Ces données de référence peuvent dépendre directement ou indirectement du flux principal. 

Maintenant, vous pouvez double cliquer sur votre composant tMap pour ouvrir la fenêtre de configuration du composant. 



Quelques petites explications sont nécessaire. 

A gauche vous trouverez les flux d’entrées, avec en haut le flux « Main » et en dessous les flux « lookup ». 

A droite les flux de sortie, qui ne sont pas encore définis. D’ailleurs c’est ce que nous allons faire maintenant. Cliquez sur le « + » vert encadré en rouge dans la capture d’écran ci-dessus. Laissez par défaut les champs renseignés et cliquez sur « OK ». 

Vous pouvez voir que votre schéma de sortie est créé mais il est vide pour l’instant. 

Vous allez donc sélectionner les champs en bas à gauche et cliquer sur l’icône permettant de copier les champs.



Puis cliquez sur l’icône permettant de coller le schéma en bas à droite. 



Votre schéma doit maintenant être défini et devrait ressembler à l’image ci-dessous. 



Cliquez sur mapping auto afin de créer les connexions entre les entrées et la sortie du tMap. 

Maintenant que nous avons un paramétrage de base pour le tMap, il va falloir apporter quelques modifications afin d’avoir le résultat attendu. Commencez par renommer le champ « adresse_id » en « adresse » comme sur l’image ci-dessous. 


Maintenant il faut modifier la valeur qui sera transmise à ce champ. 

En effet dans cette configuration, nous allons récupérer l’identifiant de l’adresse que nous avons défini dans le fichier « Personne.csv », or nous voulons que ce soit l’adresse correspondante qui y soit indiquée. 

Modifiez l’expression du champ adresse comme suit. 



Remarquez que « row4 » correspond à l’entrée de type « lookup » et le champ « adresse » à la valeur de cette dernière. 

Vous pouvez simplement faire glisser le champ voulu de l’entrée vers la sortie, ou bien l’écrire vous-même. 

Il ne nous reste plus qu’à créer une clef de référence pour correctement faire correspondre les « adresse-id » du fichier « Personne.csv » aux adresse définies dans le fichier « adresse.csv ». 

Pour se faire, faites glisser le champ « adresse_id » vers le champ « Clé d’expr. » de la colonne « id » comme l’illustre l’image ci-dessous. 



Vous pouvez remarquer qu’un lien c’est créé, votre clé d’expression est définie et votre tMap est correctement paramétré. 

Vous pouvez maintenant cliquer sur « Appliquer » puis « OK ». 

Ajoutez un tLogRow à droite de votre tMap, et reliez-le avec la sortie que vous venez de créer (Clic droit sur le tMap puis « Row » et enfin « out1 » si vous avez laissés par défaut, sinon le nom que vous avez choisi) puis exécutez le job. 



Remarquez que la personne possédant l’id n°3 ne possède pas d’adresse (valeur null), ce qui est normal car dans notre fichier « Personne.csv » nous n’avions pas définit de valeur dans le champ « adresse_id ». 

Vous pouvez fermer votre job et le versionner. Modifiez la description comme suit. 



Dans la version 0.1 de ce job nous avons simplement affiché les résultats dans la console. La version 0.2 va sauvegarder les résultats de la jointure dans un fichier XML ce qui permettra de changer des fichiers csv. 

Réouvrez votre job et ajoutez un tFileOutputXML après le tLogRow et liez-le par un flux « Main » et paramétrez le composant comme illustré ci-dessous. 



Exécutez le job et rendez vous dans le dossier où se trouve le fichier de sortie puis ouvrez le. 



Vous devriez obtenir ce résultat. Vous pouvez sauvegarder votre job et le versionner.

Ce tutoriel est désormais terminé, n'hésitez pas à nous suivre sur les réseaux sociaux afin d'être tenu informé des derniers tutos !

 

Sur le même sujet...


Créer un fichier .csv

Découvrez comment créer un fichier .csv

Découvrir

Lire un fichier .csv

Apprendre de A à Z à lire un fichier .csv

Découvrir