Scénario 2 : Rapprocher des données clients via de multiples passes - 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

Le Job de ce scénario regroupe des enregistrements clients similaires en exécutant deux passes à la suite (deux composants tMatchGroup) et écrit en sortie les correspondances calculées dans des groupes. Chaque passe fournit des correspondances à la passe suivante qui ajoute d'autres correspondances identifiées via les nouvelles règles et clés de bloc.

Dans ce Job :

  • le composant tMysqlInput se connecte aux enregistrements clients à traiter.

  • chaque composant tGenKey définit une manière de partitionner des enregistrements de données. La première clé partitionne les données et la seconde crée d'autres groupes, moins nombreux, qui contiennent des groupes parmi les précédents, selon la définition de la clé de bloc.

  • Le composant tMap renomme la clé générée par le second composant tGenKey.

  • le premier tMatchGroup traite les partitions définies par le premier composant tGenKey et le second tMatchGroup traite celles définies par le second tGenKey.

    Avertissement

    Les deux composants tMatchGroup doivent avoir le même schéma.

  • Le composant tLogRow présente les résultats de correspondance après les deux passes.

Construire le Job

Dans ce scénario, vous avez déjà stocké le schéma d'entrée principal dans le Repository. Pour plus d'informations concernant le stockage des métadonnées de schéma dans le référentiel, consultez le Guide utilisateur du Studio Talend.

  1. Dans la vue Repository, développez Metadata - DB Connections où vous avez stocké le schéma principal d'entrée et déposez la table de base de données dans l'espace de modélisation graphique. La table d'entrée utilisée dans ce scénario est customer.

    Une boîte de dialogue s'ouvre et affiche une liste de composants.

  2. Sélectionnez le composant de base de données adéquat, tMysqlInput dans cet exemple et cliquez sur OK.

  3. Déposez deux composants tGenKey, deux tMatchGroup, un tMap et un tLogRow de la Palette dans l'espace de modélisation graphique.

  4. Reliez le composant d'entrée aux composants tGenKey et tMap à l'aide de liens Main.

  5. Dans les deux composants tMatchGroup, cochez les cases Output distance details dans la vue Advanced settings des deux composants avant de les relier.

    Cela ajoute la colonne MATCHING_DISTANCES dans le schéma de sortie de chaque tMatchGroup.

    Note

    Si les deux composants tMatchGroup sont déjà reliés, cochez d'abord la case Output distance details dans le second composant du flux du Job. Sinon, une erreur peut survenir.

  6. Reliez les deux tMatchGroup et le tLogRow à l'aide de liens Main.

  7. Si nécessaire, renommez les composants afin de mieux comprendre leur rôle au sein du Job.

    Pour plus d'informations concernant le renommage d'un composant, consultez le Guide utilisateur de Studio Talend.

Configurer les données d'entrée et la génération de clé

Se connecter aux données d'entrée

  1. Double-cliquez sur le tMysqlInput pour ouvrir sa vue Component.

    Les propriétés du tMysqlInput sont automatiquement renseignées. Si vous n'avez pas stocké votre schéma en local dans votre référentiel, renseignez manuellement les champs après avoir sélectionné Built-in dans les listes Schema et Property Type.

    La table d'entrée utilisée dans ce scénario se nomme customer.

  2. Modifiez la requête dans le champ Query pour sélectionner uniquement les colonnes que vous souhaitez rapprocher : account_name, lname, fname, mi, address1, city, state_province et postal_code.

Configurer la génération de clé pour la première passe

  1. Double-cliquez sur le premier tGenKey pour ouvrir la vue Component.

  2. Cliquez sur et importez les clés de bloc des règles de rapprochement créées et testées dans la perspective Profiling du Studio Talend et utilisez-les dans votre Job. Sinon, définissez les paramètres des clés de bloc comme décrit dans les étapes ci-dessous.

  3. Sous la table Algorithm, cliquez deux fois sur le bouton [+] pour ajouter deux lignes à la table.

  4. Dans la colonne column, cliquez sur la nouvelle ligne et, dans la liste, sélectionnez la colonne que vous souhaitez traiter à l'aide d'un algorithme. Dans cet exemple, sélectionnez lname.

  5. Répétez l'opération pour la seconde ligne, afin de sélectionner postal_code.

  6. Dans la colonne pre-algorithm, cliquez sur la nouvelle ligne et sélectionnez dans la liste le pré-algorithme que vous souhaitez appliquer sur la colonne correspondante

    Dans cet exemple, sélectionnez remove diacritical marks and convert to upper case afin de supprimer toute marque diacritique et passer les champs de la colonne lname en majuscules.

    Note

    Cette conversion ne modifie pas les données brutes.

  7. Dans la colonne algorithm, cliquez sur la nouvelle ligne et, dans la liste, sélectionnez l'algorithme à appliquer sur la colonne correspondante. Dans cet exemple, sélectionnez N first characters of each word.

  8. Répétez l'opération pour la seconde ligne de la colonne algorithm et sélectionnez first N characters of the string.

  9. Cliquez dans la colonne Value à côté de la colonne algorithm et saisissez la valeur de l'algorithme sélectionné, lorsque c'est nécessaire.

    Dans ce scénario, saisissez 1 pour les deux lignes, ce qui signifie que la première lettre de chaque champ dans les colonnes correspondantes sera utilisée pour générer la clé.

Configurer la génération de clé pour la seconde passe

  1. Double-cliquez sur le second tGenKey pour ouvrir sa vue Component.

  2. Dans la table Algorithm, définissez la colonne à utiliser pour partitionner les données, account_num dans ce scénario. Sélectionnez l'algorithme first N characters of the string et configurez sa valeur à 1 dans la colonne Value.

    Chaque composant tGenKey génère une colonne T_GEN_KEY en lecture seule dans le schéma de sortie. Vous devez renommer l'une des colonnes nommée T_GEN_KEY pour les empêcher de s'écraser mutuellement.

  3. Double-cliquez sur le composant tMap pour ouvrir son éditeur.

  4. Dans l'éditeur Schema editor, copiez les colonnes de la première table dans la seconde table et renommez, par exemple T_GEN_KEY en T_GEN_KEY1.

  5. Dans la partie supérieure de l'éditeur, déposez toutes les colonnes de la table d'entrée dans la table de sortie.

  6. Cliquez sur Ok pour sauvegarder la transformation de données et fermer l'éditeur.

  7. Dans la vue Basic settings du tGenKey cliquez sur le bouton pour vérifier que les deux clés générées sont nommées différemment dans le schéma de sortie.

Configurer les deux passes de rapprochement

Configurer la première passe

  1. Double-cliquez sur le premier tMatchGroup nommé pass1 pour afficher l'assistant Configuration Wizard.

  2. Cliquez sur et importez les clés de rapprochement depuis les règles de rapprochement créées et testées dans la perspective Profiling du Studio Talend et utilisez-les dans votre Job. Sinon, définissez les paramètres, des clés de rapprochement comme décrit dans les étapes ci-dessous.

  3. Dans la table Key definition, cliquez sur le bouton [+] pour ajouter les colonnes sur lesquelles effectuer les opérations de rapprochement, lname dans ce scénario.

    Note

    Lorsque vous sélectionnez une colonne de dates sur laquelle appliquer un algorithme ou un algorithme de mise en correspondance, vous pouvez choisir ce que vous souhaitez comparer dans le format de date.

    Par exemple, si vous souhaitez comparer uniquement l'année, attribuez le type Date à la colonne concernée dans le schéma du composant puis saisissez "yyyy" dans le champ Date Pattern. Le composant convertit le format de date en une chaîne de caractères, selon le modèle défini dans le schéma, avant de comparer les chaînes de caractères.

  4. Sélectionnez l'algorithme Jaro-Winkler dans la colonne Matching Function.

  5. Configurez la colonne Weight à 1 et, dans la colonne Handle Null, sélectionnez l'opérateur null à utiliser pour gérer les attributs nulls dans la colonne, Null Match Null dans ce scénario.

  6. Cliquez sur le bouton [+] sous la table Blocking Selection pour ajouter une ou plusieurs lignes à la table, puis cliquez dans la ligne et sélectionnez dans la liste la colonne que vous souhaitez utiliser comme valeur de bloc, T_GEN_KEY dans cet exemple.

    Utiliser une valeur de bloc réduit le nombre de paires d'enregistrements nécessitant examen. Les données d'entrée sont partitionnées en blocs exhaustifs basés sur la clé fonctionnelle. Cela permet de réduire le nombre de paires à comparer, puisque la comparaison est restreinte aux paires d'enregistrement dans un même bloc.

  7. Si nécessaire, cliquez sur le bouton Edit schema pour ouvrir l'éditeur de schéma et visualiser le schéma récupéré du composant précédent dans le Job.

  8. Cliquez sur l'onglet Advanced settings et cochez la case Sort the output data by GID pour trier les données de sortie par leur ID de groupe.

Configurer la seconde passe

  1. Double-cliquez sur le second tMatchGroup nommé pass2 pour afficher son assistant Configuration Wizard.

    Si ce composant n'a pas le même schéma que le composant précédent, une icône d'avertissement s'affiche. Dans ce cas, cliquez sur le bouton Sync columns pour récupérer le schéma du composant précédent. Cela fait, l'icône disparaît.

  2. Dans la table Key Definition, cliquez sur le bouton [+] pour ajouter la colonne sur laquelle vous souhaitez effectuer l'opération de rapprochement, lname dans ce scénario.

    Note

    Lorsque vous sélectionnez une colonne de dates sur laquelle appliquer un algorithme ou un algorithme de mise en correspondance, vous pouvez choisir ce que vous souhaitez comparer dans le format de date.

    Par exemple, si vous souhaitez comparer uniquement l'année, attribuez le type Date à la colonne concernée dans le schéma du composant puis saisissez "yyyy" dans le champ Date Pattern. Le composant convertit le format de date en une chaîne de caractères, selon le modèle défini dans le schéma, avant de comparer les chaînes de caractères.

  3. Sélectionnez l'algorithme Jaro-Winkler dans la colonne Matching Function.

  4. Configurez la colonne Weight à 1 et, dans la colonne Handle Null, sélectionnez l'opérateur null à utiliser pour gérer les attributs nulls dans la colonne, Null Match Null dans ce scénario.

  5. Cliquez sur le bouton [+] sous la table Blocking Selection pour ajouter une ligne à la table, puis cliquez dans la ligne et sélectionnez dans la liste la colonne à utiliser comme valeur de bloc, T_GEN_KEY1 dans cet exemple.

  6. Cliquez sur l'onglet Advanced settings et cochez la case Multi-pass. Cette option permet au tMatchGroup de recevoir des ensembles de données du tMatchGroup précédent dans le Job.

  7. Dans la vue Advanced settings, cochez la case Sort the output data by GID pour trier les données de sortie selon leur ID de groupe.

Exécuter le Job et afficher les résultats dans la console

Pour montrer les groupes de correspondance créés après la première passe et les comparer aux groupes créés après la seconde passe, modifiez le Job comme suit :

  • utilisez un composant tReplicate afin de répliquer le flux d'entrée à traiter comme dans la capture d'écran ci-dessus. Faites un copier-coller pour créer les deux parties du Job.

  • conservez uniquement la première passe, le tMatchGroup de la partie supérieure du Job et affichez les résultats de correspondance via un composant tLogRow.

  • utilisez deux passes dans la partie inférieur du Job et affichez les résultats finaux via un tLogRow.

  1. Double-cliquez sur chaque composant tLogRow pour ouvrir leur vue Component. Dans la zone Mode, sélectionnez l'option Table (print values in cells of a table).

  2. Sauvegardez votre Job et appuyez sur F6 pour l'exécuter.

    Les résultats après la première passe sont les suivants :

    Les résultats après la seconde passe sont les suivants :

    Lorsque vous comparez, par exemple, le nom Wilson dans les résultats des deux passes, vous constatez qu'il y a plus de clients utilisant le nom Wilson groupés après la seconde passe.