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

Création de routines avec l'ETL Talend Open Studio

Ce tutoriel explique la création et l'utilisation des routines de l'ETL Open Source Talend Open Studio dans un job simple.


1. Introduction

Le document suivant nous présente les étapes de création d'une routine sous Talend Open Studio, pour cela on créera un job très simple qui lira un fichier texte avec trois colonnes de type float : jour, mois et année; et le transformera en un fichier avec une seule colonne de type date sous la forme dd/mm/yyyy.

2. La source et la destination de données

Avant toute création de job on présentera la source et la destination de données.
Pour la source il s'agit d'un fichier texte comportant trois colonnes délimitées par des points virgules, ces trois colonnes seront lues par notre job comme des floats.
Notre source ressemblera à ça :



image du fichier texte source
Quant à la destination, il s'agit là aussi d'un fichier texte, mais cette fois-ci avec une seule colonne de type date sous la forme dd/mm/yyyy.
Notre destination ressemblera à ça :



image du fichier texte destination

3. Job Talend Open Studio

On commence par créer un job vide.
  • On glisse un composant "tFileInputDelimited" depuis la palette.
  • Dans l'onglet "Component" on définit le chemin du fichier d'entrée.
  • On remplit le champ "séparateur de lignes" par "\n".
  • On remplit le champ "séparateur de champs" par ";"
  • Puis on clique sur le bouton "..." pour éditer le schéma comme ci-dessous :
 


image du composant source 
 
image du schéma source
  • Après ça on glisse un composant "tFileOutputDelimited" depuis la palette. Ce dernier représentera notre sortie.
  • Dans l'onglet "Component" on définit le chemin du fichier de sortie.
  • On remplit le champ "séparateur de lignes" par "\n"
  • Puis on clique sur le bouton "..." pour éditer le schéma comme ci-dessous :


image du composant destination
image du schéma destination
Ceci fait on ajoute notre dernier composant "tMap" qui va servir à faire le lien entre l'entrée et la sortie, mais aussi c'est lui qui va nous permettre de faire appel à la routine que nous allons créer.
On lie le composant d'entrée et le "tMap" avec un lien de type "main", puis le "tMap" et le composant de sortie avec un lien de type "main" tout en récupérant le schéma de ce dernier. On obtient alors un job qui ressemble à ça :



image du job

4. Création de la routine

La création de routine Talend Open Studio se fait dans l'onglet "Référentiel" sous l'arborescence "Code".
  • On fait un clic-droit sur "Routines".
  • Puis on clique sur "Créer une routine"
 


image de création de la routine
 
  • On remplit les informations jugées nécessaires.
  • Puis on clique sur "Terminer".
 


image des informations de la routine
Une fenêtre s'affiche avec une classe Java portant le nom de la routine créée, c'est à l'intérieur de cette classe qu'on va pouvoir créer nos routines. D'ailleurs il y'a une classe exemple "helloExample" qui a été créée par défaut par TOS, on peut la supprimer si on veut. Ensuite on colle le code suivant :

/**
     * threefloatToDate: return date.
     * 
    * 
    * {talendTypes} float
    * 
    * {Category} Conversion
    * 
    * {param} Float(12), Float(8), Float(1974) input: The three floats  
    * needed
    * to be converted.
    * 
    * {example} threefloatToDate(12,8,1974) # La date : 12 Aout 1974.
    */
   public static Date threefloatToDate(float j, float m, float a) {
    if (j == 0 || m == 0 || a == 0)
     return null;
  
    Calendar gc = Calendar.getInstance();
    gc.set(Calendar.DATE, (int) j);
    gc.set(Calendar.MONTH, (int) m - 1);
    gc.set(Calendar.YEAR, (int) a);
  
    return gc.getTime();
} 

Ce code représente une fonction Java normale qui prend comme argument trois floats et qui retourne une date. Ce code se compose de deux parties, une partie commentaire utilisée par Talend pour l'affichage de l'aide sur l'utilisation de la fonction, cette partie n'est pas obligatoire mais je vous conseille de la remplir quand même, pour savoir comment la remplir, inspirez-vous de la fonction "helloExample" générée automatiquement après la création de la routine. Quant à la deuxième partie, c'est le code Java proprement dit, sur cette partie il n'y a rien à expliquer, c'est du Java pur et dur.
Ceci fait, il suffit maintenant de sauvegarder puis fermer la routine.

5. Utilisation de la routine dans le job TOS

La création de la routine étant terminée on peut maintenant lui faire appel dans notre job.
  • On retourne sur notre job et on double-clique sur le composant "tMap".
  • On va sur la partie de droite, dans le schéma de sortie on clique sur la partie "Expression" de la colonne "dateComplete".
 


image expression colonne
 
  • La fenêtre "Constructeur d'expression" s'affiche.
  • Pour faire appel à notre routine on tape le code suivant :
routines.maroutine.threefloatToDate(row1.jour, row1.mois, row1.annee)
 
Ce code se compose de la façon suivante :
  • "routines", cette partie est fixe ;
  • "maroutine", le nom de la routine créée ;
  • "threefloattodate", le nom de la fonction créée à l'intérieur de la routine ;
  • Ce qu'il y a entre parenthèse, ce sont les arguments de la fonction. Il s'agit là de lui faire passer les colonnes récupérées depuis le fichier d'entrée.
 


image constructeur expression
 
  • Ceci fait, on clique sur "Ok" pour fermer le constructeur d'expression, puis sur "Ok" pour fermer la fenêtre de Mapping.
 


image mapping final
 
  • Notre job est maintenant terminé on peut le lancer pour vérifier le résultat.
 


image résultat final
 
6. 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 leur conseille d'aller voir sur ce même blog les autres tutos, sinon je vous donne rendez-vous pour un prochain tuto cette fois-ci sur comment utiliser les variables de contexte dans Talend.

Comments