New Article

Talend Certification Tips - Tip #002 : Know your tMap Joins

Image
Hi Talend Addicts, Ready to learn more about the Talend great ETL tool! This post is part of the new series discussing the most important things (Tips) to know for anybody who want to tackle the Talend Open Studio for Data Integration Certification Exam. Today's Tip is:  Tip #002: Know your tMap Joins! tMap is one, if not THE, most important component in a Talend Job.  P ersonally  I have never seen any Talend Job without at least one occurence of this component, and  believe  it or not many questions around this component on the certification exam! the tMap can be used to (obviously) map data from input to output, but even more. Map data - already said that, but very important, so I say it again! Filter input data Filter output data Transform data Join data In today's post I'll focus on the last but not least one - JOIN Data So let's kick this off with some examples; and see what are the different types of joins you can build with Talend tMap component. Setting up the

Création du tout premier job Talend Open Studio

Ce tutoriel explique l'utilisation de l'ETL Open Source Talend Open Studio pour la transformation d'une table d'une base de données Oracle en une multitude de fichiers XML, un fichier XML par ligne.
  
1. Introduction 
Le document suivant nous présente les étapes de création d'un job sous Talend Open Studio, il aura comme but de migrer les lignes d'une table d'une base de données Oracle vers des fichiers XML. Le schéma suivant représente ce scénario :
D:\Etudes\PFE\Procedure de creation\Sans titre.bmp 


2. La source de données

Avant de parler de la création du job TOS on va tout d'abord présenter la source de données, qui n'est autre qu'une table dans une base de données Oracle qui a été créée dans le schéma « TEST » avec le script suivant : 

CREATE TABLE CLIENT( CODE VARCHAR2(100 BYTE), NOM VARCHAR2(100 BYTE), PRENOM VARCHAR2(100 BYTE), ADRESSE VARCHAR2(100 BYTE), EMAIL VARCHAR2(100 BYTE) );

Puis des lignes ont été insérées dans cette table en utilisant ce script : 

INSERT INTO CLIENT VALUES ('cli001', 'ELHASSAK', 'MUSTAPHA', 'N8 BLOC10 RUE20 CASA', 'ELHASSAK.M@HOTMAIL.COM');
INSERT INTO CLIENT VALUES ('cli002', 'Esbaiss', 'MOUAD', 'N9 BLOC310 RUE21 RABAT', 'ESBAISS.M@HOTMAIL.COM');
INSERT INTO CLIENT VALUES ('cli003', 'zAkI', 'ANASS', 'N18 BLOC1 RUE33 CASA', 'ZAKI.A@HOTMAIL.COM');
INSERT INTO CLIENT VALUES ('cli004', 'MoufRIJE', 'KHALID', 'N82 BLOC33 RUE220 FES', 'MOUFRIJE.K@HOTMAIL.COM');
INSERT INTO CLIENT VALUES ('cli005', 'hadri', 'ZAKARIA', 'N1 BLOC21 RUE10 TANGER', 'HADRI.Z@HOTMAIL.COM');

Finalement on se retrouve avec le résultat suivant :

image 

3. La destination des données

Dans cette partie on va présenter le format de sortie de nos données, autrement dit du fichier XML résultant du job. Ce dernier aura la forme suivante : 

<?xml version="1.0"> 
  <Client code="_CODE_"> 
   <Nom>_NOM_</Nom> 
   <Prenom>_PRENOM_</Prenom> 
   <Coordonnes> 
     <Adresse>_ADRESSE_</Adresse> 
     <Email>_EMAIL_<Email> 
   </Coordonnes> 
  </Client>

Les valeurs entre deux "_" représentent les parties qui vont changer suivant chaque ligne de la table.

Après cette description des données d'entrée et du format de sortie, on va montrer les étapes de création de notre job TOS.

4. Job Talend Open Studio

La création du job TOS va se dérouler suivant les étapes :
  • création d'une connexion avec la base de données ;
  • création du schéma de notre table ;
  • création de la requête SQL à utiliser ;
  • définition du job.

4.1 Création d'une connexion avec la base de données

Dans l'onglet « Référentiel » on développe l'arborescence jusqu'à « Métadonnées » puis on fait un clic droit sur « DBConnexion » et on choisit « Créer une connexion ».

image

L'assistant de création de connexion s'affiche.
  • On remplit les différents champs en saisissant le nom, l'objectif et une description.
  • On clique sur « Suivant ».


image 

  • On choisit le type de la BD dans le combobox. Dans notre exemple c'est Oracle. 
  • On remplit les différentes informations pour se connecter à la base. 
  • On clique sur « Terminer ».


image

Voilà notre connexion est créée et on peut la voir dans l'arborescence de l'onglet « référentiel ».

image 

4.2 Création du schéma de notre table

Dans l'onglet « Référentiel » on développe l'arborescence jusqu'à arriver à la connexion précédemment créée. On fait un clic droit puis on clique sur « Récupérer le schéma ».

image 

L'assistant de récupération de schéma s'affiche.

  • On sélectionne le type d'objet à récupérer , ici on choisit « TABLE ».
  • On clique sur « Suivant ».
image 

  • Les noms de toutes les tables s'affichent, on coche la ou les tables qui nous intéressent.
  • On clique sur « Suivant ».
image 

  • On donne un nom au schéma.
  • On vérifie les colonnes récupérées par l'assistant dans la vue « Schéma ».
  • On clique sur « Terminer ».
   image 

Le schéma est maintenant créé et on le voit dans l'arborescence.

image


4.3 Création de la requête SQL à utiliser

Dans l'onglet « Référentiel » on développe l'arborescence jusqu'à arriver à la connexion précédemment créée. On fait un clic droit puis on clique sur « Editer les requêtes ».

image

L'assistant de création de requêtes s'affiche.

  • Dans la partie « Structure de la base de données » on sélectionne la table qui nous intéresse , on fait un clic droit et on choisit : « Génération de la clause select ».


image

  • La requête est créée à droite, il ne nous reste plus qu'à la sauvegarder en lui donnant un nom.

image 

 image 
  • Finalement on clique sur « OK » pour terminer.
Notre requête est créée, elle apparaît dans l'arborescence.

image  

4.4 Définition du job

Toujours dans l'onglet « Référentiel » on fait un clic droit sur « Jobs », ensuite on clique sur « Créer un job ».

image

L'assistant de création de job s'affiche.

image

  • On remplit les différents champs décrivant le job : Nom, Objectif, Description.
  • On clique sur « Terminer ».

Maintenant que le job est créé on peut le voir dans l'arborescence.

image

On va déposer ses différents composants.

4.4.1 Création de la connexion Oracle

Dans l'onglet « Palette » on choisit le composant « tOracleInput », on le glisse et le dépose dans le « Designer » du job.

image

  • On sélectionne le composant « tOracleInput », puis on va dans l'onglet « Component ».
  • On remplit les différents champs pour configurer la connexion avec la BD, ou bien on choisit une connexion déjà créée ce qui est notre cas.
  • Dans le combobox  « Type de propriété » on choisit la valeur : « Référentiel ».
  • On clique sur le bouton « . » qui apparaît à droite, puis on parcourt les différentes connexions pour choisir celle qui nous intéresse. Puis on clique sur « OK ».
  • Après ça dans le combobox « Schéma » on choisit la valeur « Référentiel » puis récupérer le schéma déjà créé (ce qui est notre cas) , ou bien on clique sur « éditer le schéma » pour en créer un nouveau.
  • On clique sur le premier bouton « . » pour choisir notre schéma. Une fenêtre s'affiche avec les différents schémas créés. On choisit celui qui nous intéresse. Puis on clique sur « OK ».
  • Après ça il faut spécifier la requête à utiliser. Dans le combobox « Type de requête » on choisit la valeur « Référentiel ».
  • On clique sur le bouton « . » qui apparaît à droite, puis on parcourt les différentes requêtes pour choisir celle qui nous intéresse. Puis on clique sur « OK ».

image

Voilà notre connexion avec la base est configurée. On passe maintenant à créer le composant de journalisation.

4.4.2 Création du composant de journalisation

Dans l'onglet « Palette » on choisit le composant « tLogRow », on le glisse et le dépose dans le « Designer » du job.

image

  • On fait un clic droit sur le composant « tOracleInput » puis on le glisse vers le composant « tLogRow ».
  • On sélectionne le composant « tLogRow », puis on va dans l'onglet « Component ».
  • On clique sur le bouton « Synchroniser les colonnes » pour récupérer le schéma depuis le composant d'entrée (ici c'est le « tOracleInput »).
  • On choisit les autres différentes options pour notre composant.
image 

Le composant est maintenant fin prêt, et on peut déjà tester le job pour voir s'il marche en appuyant sur la touche « F6 » ou bien en allant dans l'onglet « Exécuter » et en cliquant sur le bouton « Exécuter ».
 
image 


4.4.3 Création du fichier de sortie XML 

  • Dans l'onglet « Palette » on choisit le composant « tAdvancedFileOutputXML », on le glisse et le dépose dans le « Designer » du job.
image 

  • On sélectionne le composant « tAdvancedFileOutputXML » puis on va dans l'onglet « Component ».
  • On spécifie les différentes propriétés du composant, notamment le nom et chemin du fichier de sortie.
image 
 image 

  • On clique sur le bouton « . » devant le libellé « Configurer l'arbre XML » pour créer la structure de notre XML. L'assistant de création de l'arbre XML s'affiche. On choisit soit de créer la structure manuellement, soit de faire un clic droit sur le « root Tag » puis cliquer sur « Importer un arbre XML » , ce qui est notre cas ici. On sélectionne le fichier XML qui représente la structure désirée puis on clique sur « Open » et enfin sur « OK ».
image 

  • Après on définit le schéma qui doit être mappé avec la structure du XML, pour cela soit on choisit un schéma du référentiel comme avant, soit on le crée manuellement. Dans notre exemple on choisira le même schéma que celui de la connexion Oracle.
  • On fait un double-clic sur le composant « tAdvancedFileOutputXML » pour faire la relation entre les champs en entrée affichés dans la partie « Source du lien » et les balises de sortie dans la partie « Cible du lien ». Pour cela il suffit de faire des glisser/déplacer depuis la partie gauche vers celle de droite.
  • Il faut spécifier un élément de boucle , c'est la balise sur laquelle on va boucler et c'est obligatoire, on choisit ici la balise <Nom>.
  • On clique sur « OK ».

image 

Maintenant on va placer un composant « tMap » qui nous permettra de faire quelques opérations sur les champs avant de les mapper.


4.4.4 Création du composant tMap 
  • Dans l'onglet « Palette » on choisit le composant « tMap », on le glisse et le dépose dans le « Designer » du job.
image 

  • On fait un clic droit sur le composant « tLogRow » puis on glisse vers le composant « tMap ».
  • On fait un clic droit sur le composant « tMap » puis on glisse vers le composant « tAdvancedFileOutputXML », on donne un nom au lien qui sera créé. Puis on clique sur « Oui » pour récupérer les schémas de la cible.

image 

  • On fait un double-clique sur le composant « tMap » pour faire le mapping.
  • Soit on fait des glisser/déplacer entre le schéma d'entrée et celui de sortie, soit si les noms des colonnes sont identiques on clique sur le bouton « autoMap ».

image 

Le job est prêt à être exécuté, on appuie sur le bouton « F6 », et si on va sur le dossier de sortie on retrouvera nos fichiers XML.

image 

4.4.5 Transformer un champ grâce au « tMap »

On suppose qu'on veut transformer le champ « Nom » des clients en majuscules.
  • On fait un double-clic sur le « tMap ».
  • On sélectionne la colonne à transformer dans le schéma de sortie.
  • Il y a un bouton « . » qui apparaît, on clique dessus.
  • L'assistant de construction d'expression s'affiche.
  • On choisit en bas à gauche la catégorie de fonction qui nous intéresse (dans notre cas on choisira « StringHandling »), puis dans la colonne de droite on choisit la fonction désirée, dans notre cas ce sera « UPCASE ».
  • On fait un double-clic dessus.
  • On modifie l'expression du haut comme dans l'aperçu en bas.
  • Finalement on clique sur « OK ».

image

On peut maintenant relancer le job on remarque que les noms des clients sont maintenant tous en majuscules.

image 

5. Conclusion
Merci d'avoir lu tout ce document :), j'espère qu'il a pu aider quelques-uns de ses lecteurs, au moins pour les débutants sur TOS. Ceci dit pour les gens qui souhaiteraient apprendre encore plus je vous donne rendez-vous pour le prochain tuto où ce sera question de comment créer un job dynamique



Comments

  1. Beaucoup de ressources en ligne sont maintenant disponible via la communauté et ce site présente ainsi des scénario en français pour vous aider à démarrer avec les produits Talend.

    En complément, nous vous invitons à visiter https://help.talend.com/display/HOME/Current+Documentation qui présente la documentation officielle de Talend ... en français :)

    ReplyDelete
  2. salam
    pouvez-vous m'expliquer la parie " 4.4.3 Création du fichier de sortie XML " pas à pas, je suis bloqué
    merci

    ReplyDelete
    Replies
    1. A quel niveau tu as été bloqué ?

      Delete
    2. Bonjour,
      lors de l'importation de l'arbre XML... rien ne se passe !

      Delete
  3. ou est le fichier de la structure XML?

    ReplyDelete
    Replies
    1. Bonjour,
      Tu peux créer un fichier XML simple comme celui de la sortie finale. La création peut se faire avec un simple éditeur de texte de type bloc notes, ou notepad++.

      Si tu as d'autres questions n’hésitent pas.

      Bonne chance.

      Delete
  4. Bonjour, je suis à la recherche d'un tuto pour transformer un fichier TXT en une base de données oracle 11gr2. Pouvez vous m'aider SVP?

    ReplyDelete

Post a Comment