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

Rapprochement de données clients via de multiples passes

Le Job de ce scénario groupe les enregistrements clients similaires en exécutant deux passes de rapprochement consécutives, via deux composants tMatchGroup, et écrit en sortie les correspondances par groupes.

La première passe fournit ses correspondances à la seconde, pour qu'elle ajoute d'autres correspondances identifiées par les nouvelles règles et clés de bloc.

Ce scénario s'applique uniquement à Talend Data Management Platform, Talend Big Data Platform, Talend Real-Time Big Data Platform, Talend MDM Platform, Talend Data Services Platform, Talend MDM Platform et Talend Data Fabric.

Note InformationsRemarque : Ce scénario a été effectué avec le composant Standard mais vous pouvez utiliser le composant Apache Spark Batch.

Pourquoi et quand exécuter cette tâche

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.
    Note InformationsImportant : 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.

    Job comprenant sept composants.

Configurer votre Job

Pourquoi et quand exécuter cette tâche

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 la vue Repository, consultez Gestion des métadonnées dans le Studio Talend.

Procédure

  1. Dans la vue Repository, développez les nœuds Metadata - DB Connections où vous avez stocké les schémas d'entrée principaux.
  2. 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.
  3. Sélectionnez le composant de base de données adéquat, tMysqlInput dans cet exemple et cliquez sur OK.
  4. Déposez deux composants tGenKey, deux tMatchGroup, un tMap et un tLogRow de la Palette dans l'espace de modélisation graphique.
  5. Reliez le composant d'entrée aux composants tGenKey et tMap à l'aide de liens Main.
  6. 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.
    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.
  7. Reliez les deux tMatchGroup et le tLogRow à l'aide de liens Main.
  8. Si nécessaire, renommez les composants afin de mieux comprendre leur rôle au sein du Job.
    Pour plus d'informations concernant le nommage d'un composant, consultez Onglet View.

Se connecter aux données d'entrée

Procédure

  1. Double-cliquez sur le tMysqlInput pour ouvrir sa vue Component.
    Configuration du composant tMysqlInput.
    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 est 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

Procédure

  1. Double-cliquez sur le premier tGenKey pour ouvrir la vue Component.
    Configuration du premier composant tGenKey.
  2. Cliquez sur Import blocking keys from repository (Importer les clés de bloc depuis le référentiel) et importez les clés de bloc à partir des règles de rapprochement créées et testées dans la perspective Profiling , puis 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 à 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.
    Cette conversion ne modifie pas les données brutes.
  7. Dans la colonne algorithm, cliquez sur la nouvelle ligne et sélectionnez dans la liste l'algorithme à appliquer sur la colonne correspondante.

    Dans cet exemple, sélectionnez N first characters of each word.

    Si vous cochez la case Show help, vous pouvez afficher les instructions concernant la définition des paramètres des algorithmes et des options.
  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. Cela signifie que la première lettre de chaque champ dans les colonnes correspondantes sera utilisée pour générer la clé.
    Assurez-vous de définir une valeur pour l'algorithme qui en a besoin, autrement le Job s'exécute avec une erreur de compilation.

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

Procédure

  1. Double-cliquez sur le second tGenKey pour ouvrir sa vue Component.
    Configuration du second composant tGenKey.
  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.
    Configuration du composant tMap.
  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.
    Exemple de schémas d'entrée et de sortie.

Configurer la première passe

Procédure

  1. Dans l'onglet Basic settings du tMatchGroup nommé pass1, sélectionnez Simple VSR dans la liste Matching Algorithm.
    Dans ce scénario, la règle de rapprochement utilise l'algorithme VSR.
  2. Cliquez sur le bouton Preview pour afficher l'assistant Configuration Wizard.
    Configuration du premier composant tMatchGroup.
  3. Cliquez sur Import match rule from repository (Importer une règle de rapprochement du référentiel) et importez les clés de rapprochement à partir des règles de rapprochement créées et testées dans la perspective Profiling , puis utilisez-les dans votre Job. Sinon, définissez les paramètres, des clés de rapprochement comme décrit dans les étapes ci-dessous.
    Il est important d'importer ou de définir dans les propriétés simples du composant le même type de règle, sinon, le Job s'exécute avec les valeurs par défaut des paramètres n'étant pas compatibles avec le deux algorithmes.
  4. 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 InformationsRemarque : Lorsque vous sélectionnez une colonne de dates sur laquelle appliquer un algorithme ou un algorithme de rapprochement, 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.

  5. Sélectionnez l'algorithme Jaro-Winkler dans la colonne Matching Function.
  6. À partir de la liste Tokenized measure, sélectionnez Any order.
  7. 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.
  8. Cliquez sur le bouton [+] sous la table Blocking Selection (Sélection des blocs) pour ajouter une ligne à la table.
  9. Cliquez dans la ligne et sélectionnez dans la liste la colonne à utiliser comme valeur de bloc, par exemple T_GEN_KEY.
    L'utilisation d'une valeur de bloc réduit le nombre de paires d'enregistrements à examiner. Les données d'entrée sont partitionnées en blocs exhaustifs basés sur la clé fonctionnelle. Cela permet de diminuer le nombre de paires à comparer, puisque la comparaison est limitée aux paires d'enregistrements dans chaque bloc.
  10. 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.
    Exemple de schémas d'entrée et de sortie.
  11. 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.
  12. Cochez la case Deactivate matching computation when opening the wizard si vous ne souhaitez pas exécuter les règles de rapprochement lors de la prochaine ouverture de l'assistant.

Configurer la seconde passe

Procédure

  1. Dans l'onglet Basic settings du tMatchGroup nommé pass2, sélectionnez Simple VSR dans la liste Matching Algorithm.
    Dans ce scénario, la règle de rapprochement utilise l'algorithme VSR.
  2. Cliquez sur le bouton Preview pour afficher l'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.
  3. 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 InformationsRemarque : Lorsque vous sélectionnez une colonne de dates sur laquelle appliquer un algorithme ou un algorithme de rapprochement, 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 (Sélection des blocs) pour ajouter une ligne à la table.
  7. Cliquez dans la ligne et sélectionnez dans la liste la colonne à utiliser comme valeur de bloc, par exemple T_GEN_KEY1.
  8. Cliquez sur l'onglet Advanced settings et cochez la case Multi-pass. Cette option permet au tMatchGroup de recevoir des jeux de données du tMatchGroup précédent dans le Job.
  9. 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.
  10. Cochez la case Deactivate matching computation when opening the wizard si vous ne souhaitez pas exécuter les règles de rapprochement lors de la prochaine ouverture de l'assistant.

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

Pourquoi et quand exécuter cette tâche

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 :
Job comprenant treize composants.
  • 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.

Procédure

  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.

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.