Accéder au contenu principal Passer au contenu complémentaire

Utiliser un mapping avec des tables de sortie contenant une jointure

Le scénario suivant décrit un Job traitant des flux de rejet sans les séparer du flux principal.

Relier les composants

Before you begin

Vous avez créé deux métadonnées de fichiers dans Metadata > File delimited, dans la vue Repository pour les deux fichiers suivants.
  • states.csv
  • customers.csv

Pour plus d'informations concernant la centralisation des métadonnées, consultez Gestion des métadonnées dans le Studio Talend.

Procedure

  1. Dans la vue Repository, cliquez sur Metadata > File delimited. Glissez-déposez la métadonnée customers dans l'espace de modélisation graphique.
    La métadonnée customers contient des informations relatives aux clients, comme leur ID, leur nom, leur adresse, etc.
  2. Une boîte de dialogue s'ouvre et vous demande de choisir le type de composant que vous souhaitez utiliser. Sélectionnez le composant tFileInputDelimited et cliquez sur OK.
  3. Ensuite, glissez-déposez la métadonnée states. Sélectionnez le même composant dans la boîte de dialogue et cliquez sur OK.
    La métadonnée states contient l'identifiant de l'état, ainsi que son nom.
  4. Glissez-déposez de la Palette dans l'espace de modélisation graphique un tMap et deux composants tLogRow.
  5. Reliez le composant customers au tMap à l'aide d'un lien Row > Main.
  6. Reliez le composant states au tMap, en utilisant un lien Row > Main. Il sera automatiquement défini comme Lookup.

Configurer les composants

Procedure

  1. Double-cliquez sur le composant tMap pour accéder au Map Editor.
    Glissez-déposez la colonne idState de la table d'entrée principale vers la colonne idState de la table de référence pour créer une jointure.
    Cliquez sur le bouton tMap settings et sélectionnez Inner Join pour Join Model.
  2. Cliquez sur le bouton Property settings en haut de la zone d'entrée afin d'ouvrir la boîte de dialogue Property settings et décochez la case Die on error si vous souhaitez gérer les erreurs d'exécution.
    La table ErrorReject est maintenant créée.
  3. Sélectionnez les colonnes ididStateRegTime et RegisterTime de la table d'entrée et déposez-les dans la table ErrorReject.
  4. Cliquez sur le bouton [+] en haut à droite de l'éditeur afin d'ajouter une table de sortie. Dans la boîte de dialogue qui s'ouvre, sélectionnez New output. Dans le champ à côté, saisissez le nom de la table, out1. Cliquez sur OK.
  5. Déposez les colonnes suivantes des tables d'entrée dans la table out1 : id, CustomerName, idState et LabelState.
    Ajoutez deux colonnes RegTime et RegisterTime à la fin de la colonne out1 et paramétrez leur format de date : "dd/MM/yyyy HH:mm" et "yyyy-MM-dd HH:mm:ss.SSS", respectivement.
  6. Cliquez sur le champ Expression pour RegTime et appuyez sur Ctrl+Espace pour afficher la liste d'autocomplétion. Recherchez et double-cliquez sur TalendDate.parseDate. Changez le modèle en ("dd/MM/yyyy HH:mm",row1.RegTime.)
  7. Répétez l'opération pour la colonne RegisterTime, mais changez le modèle en ("yyyy-MM-dd HH:mm:ss.SSS",row1.RegisterTime).
  8. Cliquez sur le bouton [+] en haut à droite de l'éditeur, afin d'ajouter une table de sortie. Dans la boîte de dialogue qui s'ouvre, sélectionnez Create join table from, choisissez Out1 et donnez le nom rejectInner. Cliquez sur OK.
  9. Cliquez sur le bouton tMap settings et sélectionnez true pour Catch lookup inner join reject, afin de gérer les rejets.
  10. Déposez les colonnes idCustomerName et idState des tables d'entrée dans les colonnes correspondantes de la table rejectInner.
    Cliquez dans le champ Expression de la colonne LabelState et saisissez "UNKNOWN".
  11. Cliquez dans le champ Expression de la colonne RegTime, appuyez sur Ctrl+Espace, et sélectionnez TalendDate.parseDate. Changez le modèle en ("dd/MM/yyyy HH:mm",row1.RegTime.)
  12. Cliquez dans le champ Expression de la colonne RegTime, appuyez sur Ctrl+Espace, et sélectionnez TalendDate.parseDate, mais changez le modèle en ("yyyy-MM-dd HH:mm:ss.SSS",row1.RegisterTime).
    Si les données de la ligne row1 ont un modèle incorrect, elles seront retournées par le flux ErrorReject.
    Cliquez sur OK afin de valider les modifications et fermer l'éditeur.
  13. Double-cliquez sur le composant tLogRow afin d'afficher sa vue Component.
    Cliquez sur Sync columns pour récupérer la structure du schéma depuis le Mapper si nécessaire.
    Dans la zone Mode, sélectionnez Table.
    Répétez l'opération avec le second tLogRow.

Exécuter le Job

Procedure

  1. Appuyez sur les touches Ctrl + S pour sauvegarder votre Job.
  2. Appuyez sur F6 pour l’exécuter.

Results

La console de la vue Run affiche le flux de sortie principal et le flux ErrorReject. Le flux de sortie principal unifie les données valides et les rejets Inner Join, alors que le flux ErrorReject contient les informations des erreurs concernant les lignes ayant un format de date non analysable.

Pour des exemples d'utilisation des schémas dynamiques avec le tMap, consultez :

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.