Talend Open Studio for Data Integration

Dans cet exercice, nous allons fusionner 2 CSV (marketing.csv et departementsInsee2003.csv du projet Fantastic), suite à 2 transformations, pour obtenir un unique CSV.

departements2.csv

marketing.csv

Question

Créez votre premier projet TOS for Data Integration.

Solution
  • Ouvrir l'assistant de TOS for Data Integration en double-cliquant sur le raccourci du logiciel

  • Sélectionner "Créer un nouveau projet" puis "Ok"

  • Saisissez le nom du projet puis cliquez sur "Terminer"

  • Dans l'assistant de TOS, sélectionner ce nouveau projet et ouvrez-le

  • Fermez l'onglet d'accueil en cliquant sur "Start now !"

Question

Créez un job design qui s'intitule "Exercice1".

Solution
  • Dans le référentiel à gauche de l'écran, cliquez droit sur "Jobs", puis sur "Créer un job"

  • Dans l'assistant qui s'ouvre, nommez votre job "Exercice1", puis cliquez sur "Terminer"

  • Un job vierge devra apparaître au niveau du job designer

Question

Créez des métadonnées pour chacun des 2 fichiers CSV.

Solution
  • Toujours dans le référentiel, développez la catégorie "Métadonnées"

  • Cliquez droit sur "Fichier délimité", puis "Créer un fichier délimité"

  • Dans l'assistant qui s'ouvre, entrez "Magasins" dans le champ nom, puis cliquez sur "Suivant"

  • Dans la fenêtre suivante, cliquez sur "Parcourir" et sélectionnez le fichier marketing.csv à l'endroit approprié ; sélectionnez également le bon format de votre ordinateur (son OS), puis faites "Suivant"

  • En bas de l'assistant, dans la zone "Aperçu", attendez que le premier aperçu soit terminé, puis cliquez sur "définir la ligne d'en-tête comme noms des colonnes" puis sur "Rafraîchir l'aperçu", puis sur "Suivant"

  • Dans la zone "description du schéma" cochez la case "clé" pour la seconde colonne (numéro des magasins) et décochez la case "nullable" (pour définir la clé primaire), puis "Terminer"

  • Procéder exactement de la même manière pour le second fichier CSV

Remarque : vos métadonnées apparaissent au niveau de Métadonnées => Fichier délimité

Question

Ajoutez les 2 fichiers délimités en entrée dans le job "Exercice1"

Solution
  • Appuyez sur Ctrl+Maj tout en glissant le fichier délimité dans votre job vierge : un composant tFileInputDelimited est alors automatiquement créé dans votre job

  • Procédez de même pour le second job

Question

Transformez vos numéros de départements pour qu'ils soient les mêmes que ceux renseignés dans le fichier des magasins.

Indice
  • Enlevez les 0 devant les numéros de département inférieurs à 10

  • Utilisez le composant tMap, et affichez le résultat avec tLogRow pour effectuer un simple test

Solution
  • Dans la palette de composants sur la droite, trouvez le composant tLogRow, glissez-le et déposez-le dans le job designer (vers la droite)

  • Entre tLogRow et Departements, glissez-déposez le composant tMap

  • Relier les 3 composants (Departements -> tMap -> tLogRow) : créez donc 2 liens en cliquant droit sur le composant de départ, puis glissez ce lien jusqu'au composant d'arrivée, pour chaque lien. Nommez ces liens.

  • Une erreur apparaît sur tMap : c'est normal

  • Double cliquez sur tMap pour afficher les paramètres de transformation : glissez-déposez tous les attributs de la table de départements vers la table de sortie.

  • Mettez votre souris sur l'attribut num_dpt de la table de sortie, "..." s'affiche, cliquez dessus.

  • Dans la partie "Expression", saisissez la fonction Java : Integer.parseInt(XXX.num_dept), avec XXX le nom de votre premier lien.

  • Puis changez en bas à droite le type de cet attribut en int | Integer, et cliquez sur Terminer

  • Exécutez le job dans la vue Exécution (flèche verte)

Question

Transformez vos numéros de magasins pour que tous commencent par un M.

Indice
  • Utilisez une expression régulière Java

  • Utilisez le composant tMap, et affichez le résultat avec tLogRow pour effectuer un simple test

Solution
  • Cette fois, vous ne pouvez pas utiliser une fonction prédéfinie : il faut vous-même écrire votre fonction Java en créant une routine Talend !

    Dans le référentiel, sous l'arborescence "code", cliquez droit sur "routines" et sélectionnez "creer une routine" ;

    Nommez votre routine et cliquez sur Terminer

    Une fenetre s'affiche alors avec une classe java portant le meme nom que votre routine : remplacez la fonction helloExample par la fonction suivante (noubliez pas "import java.util.regex.Pattern;") :

1
public static String corrigerNumMagasin(String s) {
2
if (Pattern.matches("M.*", s)==false) return "M"+s;
3
else return s;
4
}
  • Sauvegardez votre routine et retournez dans le job initial

  • Utilisez à nouveau tMap et tLogRow comme précédemment

  • Relier les 3 composants (Departements -> tMap -> tLogRow) : créez donc 2 liens en cliquant droit sur le composant de départ, puis glissez ce lien jusqu'au composant d'arrivée, pour chaque lien. Nommez ces liens.

  • Double cliquez sur tMap pour afficher les paramètres de transformation : glissez-déposez tous les attributs de la table de départements vers la table de sortie.

  • Mettez votre souris sur l'attribut num_magasin de la table de sortie, "..." s'affiche, cliquez dessus.

  • Dans la partie "Expression", saisissez la fonction routines.nom_routine.nom_fonction(XXX.Num_Magasin), avec XXX le nom de votre premier lien.

  • Cliquez sur Terminer

  • Exécutez le job

Question

Joignez les 2 fichiers après transformation et récupérez les données de sortie dans un CSV

Indice
  • Utilisez le composant tMap, et transformez le résultat en CSV grâce au composant tFileOutputDelimited

Solution
  • Supprimez les composants tLogRow (ils servaient juste à effectuer un test en affichant dans la console les données de sortie du tMap. Sans celui-ci nous n'aurions pu tester nos deux premiers tMap avant la toute fin de l'exercice !)

  • Dans la palette de composants sur la droite, trouvez le composant tFileOutputDelimited, glissez-le et déposez-le dans le job designer (vers la droite)

  • Remettre un nouveau composant tMap : il aura pour entrée la sortie des deux autres tMap ; en sortie, il aura le tFileOutputDelimited

  • Relier tMap avec ses 2 entrées (attention ! d'abord le tMap de transformation de Magasins, puis le tMap de transformation de Departements) et sa sortie

  • 3 erreurs apparaissent : procédez exactement comme précédemment pour les tMap de transformation afin de définir leur sortie. Double cliquez sur le dernier tMap 

  • Glissez-déposez tous les attributs des magasins vers la table de sortie SAUF le numéro du département

  • Puis sélectionnez le numéro département depuis la table des magasins et déposez-le sur la clé de la table des départements. Un lien violet apparaît.

  • Glissez-déposez tous les attributs des départements vers la table de sortie ; cliquez sur Appliquer, acceptez la propagation, puis Terminer

  • Configurez tFileOutputDelimited : double-cliquez sur le composant. Dans la vue Component qui s'ouvre sous le job, sélectionnez le bon chemin du fichier qui sera créé. Cochez la case "Include Header".

  • Exécutez le job et vérifiez que le CSV a bien été créé.

  • Votre job ressemble alors à ceci :

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Clarisse Durand Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)