Scénario 4 : Mapping avancé avec filtres, jointures explicites et rejet Inner join - 6.1

Composants Talend Open Studio Guide de référence

EnrichVersion
6.1
EnrichProdName
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
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Ce scénario présente un Job utilisant le tMap et permettant de trouver les clients propriétaires d'une voiture de marque définie et avoir entre 2 et 6 enfants (inclus) dans un but de vente incitative.

Construire le Job

  1. Cliquez-déposez les composants suivants de la Palette dans l'espace de modélisation graphique : trois tFileInputDelimited, un tMap et deux tFileOutputDelimited.

  2. Connectez les composants d'entrée au tMap à l'aide de connexions de type Main row.

    Faites attention au premier composant que vous connectez car son flux de données sera automatiquement un flux Main (principal). Et toutes les autres connexions seront alors de type Lookup (flux de référence). Dans ce scénario, le composant d'entrée Owners sera relié au tMap par le flux Main.

Configurer les composants

  1. Définissez les propriétés de chaque composant d'entrée dans l'onglet Basic settings. Configurez les propriétés du composant Owners.

  2. Sélectionnez Repository dans la liste Property Type et sélectionnez le schéma resellers, dans la boîte de dialogue [Repository Content]. Les autres champs sont automatiquement renseignés.

    Note

    Dans ce scénario, les schémas d'entrée sont stockés sous le nœud Metadata du Repository afin de les retrouver facilement. Pour plus d'informations concernant la création de métadonnées dans le Repository, consultez le Guide utilisateur du Studio Talend.

    Répétez ces étapes pour les autres composants d'entrée : Cars et Resellers. Ces deux flux de référence (Lookup) renseigneront les tables secondaires (lookup) de la zone d'entrée du Map Editor.

  3. Double-cliquez sur le composant tMap pour ouvrir le Map Editor et définir le mapping et les filtres.

    Configurez une jointure explicite entre le flux Main Owner et le flux Lookup Cars en glissant-déposant la colonne ID_Owner de la table Owner dans la colonne ID_Owner de la table Cars. La jointure explicite s'affiche avec une clé de hachage.

  4. Dans le champ Expr. Key de la colonne Make (Marque), saisissez (en Java) le filtre à appliquer. Dans ce cas d'utilisation, saisissez simplement "BMW" puisque ce qui est recherché ce sont les propriétaires (Owners) de cette marque en particulier.

  5. Effectuez une jointure en cascade entre les deux tables de référence Cars et Resellers, sur la colonne ID_Reseller, afin de retrouver les informations sur les propriétaires et plus précisément le nombre d'enfants qu'ils ont.

  6. Comme vous souhaitez exclure les valeurs nulles dans une table séparée et les exclure de la sortie standard, cliquez sur le bouton tMap Settings puis sélectionnez Inner Join comme modèle de jointure pour chaque table Lookup à filtrer.

  7. Dans les paramètres du tMap, vous pouvez sélectionner une des options suivantes : Unique match, First match, ou All Matches. Dans cet exemple, sélectionnez l'option All matches. Ainsi, si plusieurs correspondances sont trouvées dans l'Inner Join (i.e. les lignes répondant à la jointure explicite ainsi qu'au filtre), elles seront toutes prises en compte dans le flux de sortie (soit dans le flux de rejet, soit dans le flux de sortie standard).

    Note

    L'option Unique match fonctionne de la même manière que l'option Last match. Les options First match et All matches fonctionnent comme l'indiquent leurs noms (respectivement première correspondance et toutes les correspondances).

  8. Puis dans la zone Output du Map Editor, ajoutez deux tables : une pour les correspondances répondant à la jointure explicite et au filtre et une pour les rejets.

  9. Déposez toutes les colonnes de la table Owners, les colonnes RegistrationMake et Color de la table Cars ainsi que les colonnes ID_Reseller et Name_Reseller de la table Reseller dans la table de sortie principale.

  10. Déposez toutes les colonnes de la table Owners dans la table de rejets.

  11. Cliquez sur le bouton Filter en haut de la table de sortie principale afin d'afficher la zone d'expression Filter.

    Saisissez une instruction afin de réduire le nombre de lignes chargées dans le flux principal de sortie. Dans cet exemple, saisissez : Owners.Children_Nr >=2 && Owners.Children_Nr <= 6.

  12. Dans la table de rejets, cliquez sur le bouton tMap settings et définissez les types de rejets.

    Sélectionnez true pour Catch output reject afin de collecter des données concernant les détenteurs de voitures BMW ayant moins de deux enfants ou plus de six enfants.

    Sélectionnez true pour Catch lookup inner join reject afin de collecter des données concernant les propriétaires d'autres marques et ceux pour qui l'information Reseller est introuvable.

    Cliquez sur OK pour valider le mapping et fermer l'éditeur.

    Dans l'éditeur graphique, cliquez-droit sur le tMap et créez une connexion de sortie vers les composants correspondants.

  13. Configurez les paramètres des composants de sortie dans l'onglet Basic settings.

    Dans ce scénario, spécifiez simplement les chemins d'accès aux fichiers de sortie et cochez la case Include Header. Laissez les autres paramètres tels qu'ils sont.

Exécuter le Job

  1. Enregistrez votre Job.

  2. Appuyez sur F6 pour exécuter votre Job. Le fichier de sortie principal contient les informations concernant les détenteurs de BMW ayant entre deux et six enfants, et le fichier de rejet contient les informations concernant les autres possesseurs de voiture(s).