Joindre deux sources de données avec le composant tMap

Dans ce tutoriel, vous apprendrez à joindre facilement deux sources de données avec le composant tMap.

Ce tutoriel utilise Talend Open Studio for Data Integration version 6.

1. Créer un Job et ajouter un composant source

Dans un nouveau Job, ajoutez le fichier de métadonnées movies comme composant tFileInputDelimited.

Notez que la dernière colonne du fichier movies est intitulée directorID. Dans ce tutoriel, vous utiliserez cette colonne pour joindre le fichier movies à la colonne directorID du fichier directors.

2. Créer un nouveau fichier de métadonnées à partir du fichier simple nommé directors.txt et l'ajouter comme deuxième source

  1. Créez un nouveau fichier délimité de métadonnées nommé directors.
  2. Pour spécifier le fichier d'exemple, cliquez sur Parcourir à côté du champ Fichier, sélectionnez le fichier txt sur votre disque local, puis cliquez sur Ouvrir.
  3. Le séparateur de champs dans ce fichier est la virgule. Pour changer le séparateur, sélectionnez Comma dans la liste déroulante Séparateur de champs.
  4. Pour actualiser l'affichage et voir les changements, cliquez sur Rafraîchir l'aperçu.
    Remarque : ce fichier n'a que deux colonnes : directorID et directorName.
  5. Changez les noms de colonnes en directorID et directorName et réglez la longueur du champ directorName sur 40. Le nouveau fichier de métadonnées, directors 0.1, est affiché sous Métadonnées dans le Référentiel de projet. Vous pouvez joindre la colonne directorID du fichier movies à la colonne directorID du fichier directors.
  6. Ajoutez au Job le fichier de métadonnées directors comme deuxième source d’entrée.

3. Ajouter et configurer un composant tMap pour joindre les deux composants sources

  1. Ajoutez un composant tMap dans le Job Designer.
  2. Pour créer un flux de données depuis les deux composants vers le composant tMap, liez d'abord movies à tMap_1, puis liez directors à tMap_1.
  3. Renommez la connexion entre le composant source movies et le composant tMap en cliquant deux fois sur le lien et en saisissant movies. Procédez de la même façon pour l'autre lien et nommez-le directors.
  4. Pour ouvrir l'assistant de composant tMap, double-cliquez sur ce composant.
    Dans la partie gauche de l'assistant, notez que les deux composants movies et directors sont indiqués comme entrées pour le composant tMap.
  5. Pour créer un flux de données de sortie, dans la section de sortie de l'assistant tMap, cliquez sur le bouton [+]. Nommez la sortie joinedOutput, puis cliquez sur OK. Un flux de données de sortie vide est créé.
  6. Pour ajouter les champs movieID, title, releaseYear et url au flux de données de sortie, sélectionnez ces quatre champs dans l'entrée movies et faites-les glisser vers le flux de données de sortie. De la même façon, ajoutez le champ directorName au flux de données de sortie depuis l'entrée directors.
  7. Pour configurer la jointure, sélectionnez la colonne directorID de la table movies et faites-la glisser vers la colonne directorID de la table directors.

4. Stocker les résultats dans un fichier

  1. Pour préciser la destination de la sortie, ajoutez un composant tFileOutputDelimited dans le Job Designer et liez la sortie joinedOutput du composant tMap à celui-ci.
  2. Pour configurer le composant de sortie, dans la vue Composant correspondante, indiquez le chemin d'accès et le nom du fichier de sortie. Incluez une ligne d'en-tête dans ce fichier.
  3. Pour exécuter le Job, cliquez sur Exécuter dans la vue Exécuter.
  4. Pour vérifier le fichier moviesComplete.csv, accédez au dossier dans lequel il a été créé et ouvrez-le.

Remarque : certains films n'affichent pas de nom de réalisateur. Ces films n'avaient pas de valeur directorID.

Comportement par défaut dans l'outil ETL :

  • Toutes les lignes de la table de pilotage sont affichées.
  • Si la condition de jointure n'est pas respectée, les champs correspondants des données de sortie sont vides. Il s'agit ici d'une jointure externe gauche.
    Vous pouvez au contraire configurer une jointure comme jointure interne dans tMap. Ce type de jointure affiche uniquement les lignes pour lesquelles la condition de jointure est respectée.