Scénario 1 : Sélectionner les meilleures données d'un groupe de doublons afin de créer un enregistrement consolidé - 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 utilise cinq composants pour regrouper les données en doublon et créer un représentant unique de ces doublons. Ce représentant est l'enregistrement consolidé à la fin du processus de sélection et vous pouvez l'utiliser, par exemple, pour créer une copie maître des données pour MDM.

Les composants utilisés dans ce Job sont :

  • un tFixedFlowInput : il fournit les données d'entrée à traiter par ce Job. Dans un cas d'utilisation réel, vous pouvez utiliser un autre composant d'entrée afin de remplacer le tFixedFlowInput et fournir les données nécessaires.

  • un tMatchGroup : il regroupe les doublons des données d'entrée et donne et donne à chaque groupe des informations concernant l'identifiant et la taille de son groupe. Les noms techniques de ces informations sont respectivement GID et GRP_SIZE et elles sont requises par le composant tRuleSurvivorship.

  • un tRuleSurvivorship : il crée le flux personnalisé de consolidation afin de sélectionner les données de meilleure qualité composant le représentant unique de chaque groupe de doublons.

  • un tFilterColumns : il exclut les colonnes techniques et écrit en sortie les colonnes contenant les informations qui vous intéressent.

  • et un tLogRow : il présente le résultat de l'exécution du Job.

Pour reproduire ce scénario, procédez comme dans les sections suivantes.

Déposer et relier les composants

Pour ce faire, effectuez les opérations suivantes :

  1. Déposez un tFixedFlowInput, un tMatchGroup, un tRuleSurvivorship, un tFilterColumns et un tLogRow de la Palette dans l'espace de modélisation graphique.

  2. Cliquez-droit sur le composant tFixedFlowInput afin d'ouvrir son menu contextuel et sélectionnez Row > Main afin de relier ce composant au tMatchGroup.

  3. Répétez l'opération pour créer un lien Main reliant le tMatchGroup au tRuleSurvivorship, puis le tFilterColumns au tLogRow.

Les composants sont tous placés et reliés. Vous pouvez les configurer.

Configurer le regroupement des données d'entrée

Pour ce faire, procédez comme suit :

Configurer les enregistrements d'entrée

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

  2. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir l'éditeur de schéma.

  3. Cliquez neuf fois sur le bouton [+] afin d'ajouter neuf lignes. Renommez-les lignes respectivement acctName, addr, city, state, zip, country, phone, data et credibility.

  4. Dans la colonne Type, sélectionnez les types de données pour les lignes qui vous intéressent. Dans cet exemple, sélectionnez Date pour la colonne data et Double pour la colonne credibility.

    Note

    Veillez à définir le bon type de données afin de pouvoir configurer plus facilement vos règles de validation.

  5. Dans la colonne Date Pattern, saisissez le modèle de données reflétant le format de date qui vous intéresse. Dans ce scénario, saisissez yyyyMMdd.

  6. Cliquez sur OK pour valider ces modifications et acceptez la propagation demandée par la fenêtre pop-up.

  7. Dans la zone Mode de la vue Basic settings, sélectionnez Inline Content (delimited file) pour saisir les données d'entrée.

  8. Dans le champ Content, saisissez les données d'entrée à traiter. Ces données doivent correspondre au schéma défini et, dans cet exemple, le contenu des données est :

    GRIZZARD CO.;110 N MARYLAND AVE;GLENDALE;CA;912066;FR;8185431314;20110101;5
    GRIZZARD;110 NORTH MARYLAND AVENUE;GLENDALE;CA;912066;US;9003254892;20110118;4
    GRIZZARD INC;110 N. MARYLAND AVENUE;GLENDALE;CA;91206;US;(818) 543-1315;20110103;2
    GRIZZARD CO;1480 S COLORADO BOULEVARD;LOS ANGELES;CA;91206;US;(800) 325-4892;20110115;1

Regrouper les enregistrements en doublon

  1. Cliquez-droit sur le composant tMatchGroup pour ouvrir son menu contextuel et sélectionnez Configuration wizard.

    Dans l'assistant, vous pouvez voir à quoi ressemblent vos groupes et ajuster les paramètres du composant afin d'obtenir correctement les correspondances similaires.

  2. Cliquez sur le bouton [+] sous la table Key Definition afin d'ajouter une ligne.

  3. Dans la colonne Input Key Attribute de cette ligne, sélectionnez acctName. Ainsi, cette colonne devient la référence utilisée pour mettre en correspondance les doublons des données d'entrée.

  4. Dans la colonne Matching Function, sélectionnez l'algorithme de mise en correspondance Jaro-Winkler.

  5. Dans le champ Match threshold, saisissez la valeur numérique pour indiquer la valeur de correspondance de deux enregistrements. Dans cet exemple, saisissez 0.6.

  6. Cliquez sur le bouton Chart pour exécuter cette règle de mise en correspondance et afficher le résultat dans l'assistant. Si les enregistrements d'entrée ne sont pas groupés en un seul groupe, remplacez 0.6 par une valeur inférieure et cliquez à nouveau sur Chart pour vérifier le résultat, jusqu'à ce que les quatre enregistrements soient dans le même groupe.

    Le Job de ce scénario regroupe quatre enregistrements similaires en un seul groupe de doublons, afin que le composant tRuleSurvivorship puisse créer un enregistrement consolidé. Cet exemple simple vous permet d'avoir une vision claire du fonctionnement du tRuleSurvivorship avec d'autres composants pour créer des données de meilleure qualité. Cependant, dans un cas réel d'utilisation, vous pouvez traiter beaucoup plus de données, dans des situations de duplication très complexes, et regrouper les données dans de plus nombreux groupes.

  7. Cliquez sur OK pour fermer l'assistant [Configuration wizard]. La vue Basic settings du composant tMatchGroup est automatiquement renseignée avec les paramètres que vous avez définis.

    Pour plus d'informations concernant l'assistant [Configuration wizard], consultez Assistant de configuration.

Définir le flux de consolidation

Après avoir configuré et regroupé les données d'entrée, vous devez créer le flux de consolidation à l'aide du composant tRuleSurvivorship. Pour ce faire, procédez comme suit :

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

  2. Dans la liste Group Identifier, sélectionnez GID, puis, dans la liste Group size, sélectionnez GRP_SIZE.

  3. Dans le champ Rule package name, saisissez le nom de l'ensemble de règles que vous devez créer afin de définir le flux de consolidation. Dans cet exemple, le nom est org.talend.survivorship.sample.

  4. Dans la table Rule table, cliquez sur le bouton [+] pour ajouter autant de lignes que nécessaire et renseignez-les à l'aide des définitions des règles correspondantes. Dans cet exemple, ajoutez dix lignes et renseignes-les comme suit :

    Order

    Rule name

    Reference column

    Function

    Value

    Target column

    Sequential

    "1_LengthAcct"

    acctName

    Expression

    ".length >11"

    acctName

    Sequential

    "2_LongestAddr"

    addr

    Longest

    n/a

    addr

    Sequential

    "3_HighCredibility"

    credibility

    Expression

    "> 3"

    credibility

    Sequential

    "4_MostCommonCity"

    city

    Most common

    n/a

    city

    Sequential

    "5_MostCommonZip"

    zip

    Most common

    n/a

    zip

    Multi-condition

    n/a

    zip

    Match regex

    "\\d{5}"

    n/a

    Multi-target

    n/a

    n/a

    n/a

    n/a

    state

    Multi-target

    n/a

    n/a

    n/a

    n/a

    country

    Sequential

    "6_LatestPhone"

    date

    Most recent

    n/a

    phone

    Multi-target

    n/a

    n/a

    n/a

    n/a

    date

    Ces règles sont exécutées dans l'ordre descendant. La règle Multi-condition est l'une des conditions de la règle 5_MostCommonZip, le code postal conforme à la règle doit donc être le code postal le plus courant, comprenant cinq chiffres. La colonne zip est la colonne cible de la règle 5_MostCommonZip et les deux règles Multi-target suivantes ajoutent deux colonnes cible, state et country. Les colonnes zip, state et country seront la source des données consolidées. Une fois qu'un code postal est validé, les valeurs correspondantes des champs dans les colonnes zip, state et country seront sélectionnés comme les données de meilleure qualité.

    Cela est vrai également pour la règle Sequential 6_LatestPhone. Une fois la valeur d'une date validée, les valeurs correspondantes des champs seront sélectionnées depuis les colonnes phone et date.

    Note

    Dans le tableau, les champs contenant n/a ne sont pas disponibles pour les types Order ou Function sélectionnés. Dans la table Rule table de la vue Basic settings du composant tRuleSurvivorship, ces champs indisponibles sont grisés. Pour plus d'informations concernant cette table de règles, consultez le tableau des propriétés du composant tRuleSurvivorShip, en haut de la section.

  5. A côté de Generate rules and survivorship flow, cliquez sur l'icône afin de générer l'ensemble de règles avec son contenu défini.

    Cela fait, vous pouvez trouver l'ensemble de règles généré dans le répertoire Metadata > Rules Management > Survivorship Rules dans la vue Repository de votre Studio Talend. Vous pouvez ouvrir le flux de consolidation créé et consulter son diagramme. Pour plus d'informations, consultez le Guide utilisateur du Studio Talend.

Sélectionner les colonnes qui vous intéressent

Le schéma du tRuleSurvivorship comprend différentes colonnes techniques, comme GID, GRP_SIZE, qui ne sont pas pertinentes dans cet exemple. Utilisez donc le tFilterColumns pour gérer ces colonnes techniques. Les colonnes contenant les données seront écrites en sortie. Pour ce faire, procédez comme suit :

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

  2. Cliquez sur Sync columns pour récupérer le schéma du composant précédent. Si une boîte de dialogue s'ouvre et vous demande de propager, cliquez sur Yes pour accepter.

  3. Cliquez sur le bouton [...] à côté du champ Edit schema pour ouvrir l'éditeur de schéma.

  4. Du côté tFilterColumns de l'éditeur, sélectionnez les lignes GID, GRP_SIZE, MASTER et SCORE puis cliquez sur le bouton avec une croix rouge afin de les supprimer.

  5. Cliquez sur OK pour valider ces modifications et accepter la propagation proposée par la boîte de dialogue.

Exécuter le Job

Le composant tLogRow est utilisé pour présenter les résultats d'exécution du Job. Vous pouvez configurer le mode d'affichage dans sa vue Component.

Pour ce faire, double-cliquez sur le tLogRow afin d'ouvrir sa vue Component et, dans la zone Mode, cochez la case Table (print values in cells of a table).

Pour exécuter ce Job, appuyez sur F6.

Cela fait, la vue Run est automatiquement ouverte, dans laquelle vous pouvez visualiser les résultats d'exécution.

Vous pouvez voir que la dernière ligne est l'enregistrement consolidé (survivor) car la colonne SURVIVOR indique true. Cet enregistrement se compose des données de meilleure qualité de chaque colonne des quatre autres lignes, qui sont les doublons des mêmes groupes.

La colonne CONFLICT présente les colonnes contenant plus d'une valeur de champ conforme aux règles de validation données. Prenez l'exemple de la colonne credibility : outre l'enregistrement consolidé dont la crédibilité est de 5.0, la colonne CONFLICT indique que la crédibilité du deuxième enregistrement GRIZZARD est de 4.0, c'est-à-dire qu'elle est supérieure à 3, le seuil configuré dans les règles définies. Cependant, comme une crédibilité de 5.0 apparaît dans la premier enregistrement GRIZZARD CO., le composant tRuleSurvivorship le sélectionne comme étant de la meilleure qualité.