Scénario 2 : Mettre en correspondance des données d'entrée par rapport à un fichier de référence basé sur une colonne dynamique - 6.1

Composants Talend Guide de référence

EnrichVersion
6.1
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Ce scénario décrit un Job à cinq composant mettant en correspondance des informations relatives à des gens dans le fichier d'entrée principal par rapport à celles d'un fichier de référence en entrée et affiche les correspondances exactes ainsi que les données rejetées dans différentes tables de la console. La fonctionnalité de schéma dynamique permet de gagner du temps, sans avoir à configurer les colonnes du schéma de chaque composant.

Déposer et relier les composants

  1. Déposez deux tFileInputDelimited, un tJoin et deux composants tLogRow de la Palette dans l'espace de modélisation graphique et nommez-les afin de mieux identifier leur rôle dans le Job.

  2. Connectez le tFileInputDelimited nommé Main_Input au composant tJoin nommé Check, à l'aide d'un lien Row > Main.

  3. Répétez cette étape afin de relier le tFileInputDelimited nommé Ref_Input au composant tJoin. Le lien Row apparaît automatiquement comme lien Lookup.

  4. Connectez le composant tJoin au tLogRow nommé Matches à l'aide d'un lien Row > Main. Ce lien va rassembler les données des correspondances exactes.

  5. Connectez le tJoin au tLogRow composant Rejects à l'aide d'un lien Row > Inner join reject. Ce lien va rassembler les données rejetées.

Configurer les composants

  1. Double-cliquez sur le composant tFileInputDelimited nommé Main_Input afin d'afficher sa vue Basic settings.

    Avertissement

    La fonctionnalité de schéma dynamique est supportée uniquement un mode Built-In et nécessite que le fichier d'entrée ait une ligne d'en-tête.

  2. Cliquez sur le bouton [...] à côté du champ File Name/Stream afin de parcourir votre système jusqu'à votre fichier d'entrée et saisissez 1 dans le champ Header afin de définir que la première ligne est une ligne d'en-tête.

    Dans ce scénario, le fichier d'entrée principal contient les informations suivantes :

    FirstName;LastName;HouseNo;Street;City
    Gerald;Roosevelt;48;Fairview Avenue;Oklahoma City
    Benjamin;Harrison;27;Katella Avenue;Little Rock
    Bob;Clinton;11;Bowles Avenue;Raleigh
    James;Quincy;45;Cerrillos Road;Saint Paul
    Gerald;Harrison;27;Katella Avenue;Little Rock
    Harry;Madison;85;Santa Monica Road;Raleigh
    Helen;Roosevelt;48;Fairview Avenue;Oklahoma City
    Mary;Clinton;11;Bowles Avenue;Raleigh
    Cathey;Quincy;45;Cerrillos Road;Saint Paul
    John;Smith;64;Market Street;Helena
  3. Cliquez sur Edit schema pour définir le schéma du composant.

    Dans ce scénario, le fichier d'entrée principal contient cinq colonnes : FirstName, LastName, HouseNo, Street et City. Cependant, vous pouvez tirer parti de la fonctionnalité de schéma dynamique, en définissant simplement deux colonnes : une de type String pour les prénoms et une dynamique pour les informations concernant la famille. Pour ce faire :

    1. Cliquez sur le bouton [+] pour ajouter deux colonnes et nommez-les FirstName et FamilyInfo respectivement.

    2. Sélectionnez String dans la liste Type afin que la colonne FirstName récupère le prénom de chaque personne de la liste.

    3. Sélectionnez Dynamic dans la liste Type afin que la colonne FamilyInfo récupère les autres informations de chaque personne dans la liste des noms : le nom de famille, le numéro de la maison, la rue et la ville.

    4. Cliquez sur OK pour propager le schéma et fermer la boîte de dialogue [Schema].

  4. Les étapes suivantes sont similaires à celles ci-dessus : définissez les propriétés du composant tFileInputDelimited nommé Ref_Input.

    Le chemin d'accès au fichier d'entrée de référence, la ligne d'en-tête et le schéma. Définissez juste la colonne dynamique, FamilyInfo, afin de récupérer les quatre colonnes du fichier d'entrée de référence contenant les informations suivantes :

    LastName;HouseNo;Street;City
    Clinton;11;Bowles Avenue;Raleigh
    Quincy;45;Cerrillos Road;Saint Paul
    Smith;64;Market Street;Helena
  5. Double-cliquez sur le composant tJoin pour ouvrir sa vue Basic settings.

  6. Cliquez sur Edit schema pour ouvrir la boîte de dialogue [Schema] et vérifier la structure des données des fichiers d'entrée, puis définissez les données que vous souhaitez passer aux composants de sortie.

    Dans ce scénario, passez les deux colonnes du fichier d'entrée principal, FirstName et FamilyInfo aux fichiers de sortie, copiez simplement les colonnes des schémas du fichier d'entrée principal en cliquant sur le bouton [->>]. Puis cliquez sur OK pour valider le schéma et fermer la boîte de dialogue.

  7. Dans la zone Key definition, cliquez sur le bouton [+] pour ajouter une colonne à la liste et sélectionnez la colonne d'entrée que vous souhaitez mettre en correspondance, de la liste Input key attribute et la colonne de référence par rapport à laquelle vous souhaitez mettre en correspondance la colonne d'entrée, dans la liste Lookup key attribute, FamilyInfo et row2.FamilyInfo respectivement.

  8. Vérifiez que la case Inner join (with reject output) est cochée afin de définir l'une des sorties comme table des rejets Inner Join.

  9. Dans la vue Basic settings de chaque tLogRow, cochez la case Table pour afficher les informations de sortie dans des cellules de tableau.

Sauvegarder et exécuter le Job

  1. Appuyez sur Ctrl+S pour sauvegarder votre Job.

  2. Appuyez sur F6 ou cliquez sur le bouton Run dans l'onglet Run afin d'exécuter le Job.

    La console affiche les correspondances exactes et les données rejetées dans deux tableaux différents.