tRuleSurvivorship - 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

Avertissement

Ce composant est disponible dans la Palette du Studio Talend si vous avez souscrit à l'un des produits Talend Platform.

Propriétés du tRuleSurvivorship

Famille du composant

Data Quality

 

Fonction

Le composant tRuleSurvivorship reçoit des enregistrements dans lesquels les doublons, ou les doublons possibles, sont déjà estimés et regroupés. A partir de règles métier personnalisées, il crée un représentant unique de chaque groupe de doublons à l'aide des données consolidées.

Objectif

Le tRuleSurvivorship crée un représentant unique d'une entité selon des règles métier. Il permet de créer une copie maître des données pour MDM.

Basic settings

Schema et Edit schema

Un schéma est une description de lignes, il définit le nombre de champs qui sont traités et passés au composant suivant. Le schéma est soit local (Built-in) soit distant dans le Repository.

Ce composant fournit deux colonnes en lecture seule :

  • SURVIVOR : cette colonne est de type Boolean. Elle indique si un enregistrement est l'enregistrement consolidé (true) ou non (false). Il y a un enregistrement consolidé pour chaque groupe.

  • CONFLICT : cette colonne affiche les conflits lorsque plus d'un enregistrement répond à une règle métier donnée.

 

 

Built-in : Le schéma est créé et conservé pour ce composant seulement. Voir également le Guide utilisateur du Studio Talend.

 

 

Repository : Le schéma existe déjà et est stocké dans le Repository. Ainsi, il peut être réutilisable dans divers projets et Job designs. Voir également le Guide utilisateur du Studio Talend.

 Group identifierSélectionnez la colonne dont le contenu indique les identifiants de groupe requis du schéma d'entrée.
 Group sizeSélectionnez la colonne dont le contenu indique la taille requise du groupe dans le schéma d'entrée.

 

Rule package name

Saisissez le nom de l'ensemble de règles que vous créez via ce composant.

  Generate rules and survivorship flow

Une fois que toutes les règles ont été configurées dans un ensemble via ce composant, cliquez sur l'icône pour générer cet ensemble de règles sous le nœud Survivorship Rules du dossier Rules Management sous Metadata dans le Repository de la perspective Integration de votre Studio Talend. Cette étape est nécessaire pour valider l'ensemble de règles.

Note

Cette étape est nécessaire pour valider les modifications et les prendre en compte lors de l'exécution. Si un ensemble de règles du même nom existe déjà dans le Repository, ces modifications, une fois validées, vont l'écraser dans le Repository, sinon celui du Repository aura priorité lors de l'exécution.

 

Rule table

Renseignez cette table pour créer un flux complet de consolidation. Chaque règle donnée est définie comme une étape d'exécution. Ainsi, dans l'ordre descendant dans la table, ces règles représentent une séquence et un flux prend forme. Les colonnes de cette table sont :

Order : Dans la liste, sélectionnez l'ordre d'exécution des règles que vous créez afin de définir un flux de consolidation. Les types d'ordre peuvent être :

  • Sequential : une règle Sequential est une étape d'exécution d'un flux de consolidation. Par exemple, la première règle en haut de la table Rule table sera la première étape et, en descendant, la règle Sequential suivante sera la deuxième étape.

    La première règle en haut doit être une règle Sequential.

  • Multi-condition : une règle Multi-condition est une règle supplémentaire pour une étape d'exécution donnée. Elle est toujours ajoutée à la dernière règle Sequential du dessus dans la table et, à cette étape, les deux règles doivent obligatoirement être respectées. Par exemple, après avoir défini la première règle Sequential, définissez une règle Multi-condition en-dessous ; les deux règles deviennent les règles de la première étape.

  • Multi-target : après exécution, chaque étape valide la valeur des champs d'un enregistrement d'une colonne Reference column donnée et sélectionne la valeur correspondante comme étant celle de meilleure qualité pour renseigner une colonne Target column donnée, une règle Multi-target vous permet d'ajouter une ou plusieurs colonne(s) Target column dans la même étape.

    Vous devez définir chaque colonne Reference column et Target column manuellement dans cette table.

Rule Name : Saisissez le nom de chaque règle que vous créez. Cette colonne est disponible uniquement pour les règles Sequential puisqu'elle définit les étapes du flux de consolidation.

Reference column : Sélectionnez la colonne sur laquelle vous souhaitez appliquer une règle donnée. Ce sont les colonnes définies dans le schéma de ce composant. Cette colonne n'est pas disponible pour les règles Multi-target car elles définissent uniquement les colonnes Target column.

Function : Sélectionnez le type d'opération de validation à effectuer sur une colonne Reference column données. Les types disponibles comprennent :

  • None : aucune opération de validation n'est effectuée.

  • Most common : valide la valeur de champ la plus fréquente dans chaque groupe de doublons.

  • Most recent ou Most ancient : le premier valide la valeur de date la plus récente et le second valide la valeur de date la plus ancienne, dans chaque groupe de doublons. La colonne de référence correspondante doit être de type Date.

  • Longest or Shortest : le premier valide la valeur de champ la plus longue et le second valide la valeur de champ la plus courte, dans chaque groupe de doublons.

  • Largest ou Smallest : le premier valide la plus grande valeur numérique plus grand numéro et le second la plus petite valeur numérique, dans chaque groupe de doublons.

  • Match regex : valide le champ lorsqu'il est conforme à l'expression régulière dans la colonne Value.

  • Expression : valide le champ lorsqu'il est conforme à l'expression saisie dans la colonne Value. La valeur de l'expression doit être écrite à l'aide du langage Drools.

  • Most complete : valide le champ lorsque l'enregistrement auquel il appartient possède le moins de champs vides.

Value : saisissez l'expression qui vous intéresse, correspondant à la fonction Match regex ou Expression sélectionnée dans la colonne Function.

Target column : lorsqu'une étape est exécutée, elle valide la valeur d'un champ d'un enregistrement d'une colonne Reference column donnée et sélectionne la valeur correspondante de meilleure qualité pour renseigner la colonne Target column donnée. Sélectionnez cette colonne Target column parmi les colonnes du schéma du composant.

Ignore blanks : Cochez les cases correspondant au nom des colonnes dont vous souhaitez ignorer les valeurs vides.

 Advanced settings

tStatCatcher Statistics

Cochez cette case pour collecter les données de log au niveau du Job et du composant.

Global Variables

ERROR_MESSAGE : message d'erreur généré par le composant lorsqu'une erreur survient. Cette variable est une variable After et retourne une chaîne de caractères. Cette variable fonctionne uniquement si la case Die on error est décochée, si le composant a cette option.

Une variable Flow fonctionne durant l'exécution d'un composant. Une variable After fonctionne après l'exécution d'un composant.

Pour renseigner un champ ou une expression à l'aide d'une variable, appuyez sur les touches Ctrl+Espace pour accéder à la liste des variables. A partir de cette liste, vous pouvez choisir la variable que vous souhaitez utiliser.

Pour plus d'informations concernant les variables, consultez le Guide utilisateur du Studio Talend.

Utilisation

Ce composant requiert un composant d'entrée et un composant de sortie.

Comme il requiert des données groupées à traiter, ce composant fonctionne avec des composants comme le tMatchGroup comprenant donc des colonnes GID (identifiant du groupe) et GRP_SIZE (taille du groupe). Il requiert également que les données d'entrée soient triées par l'identifiant du groupe et que la première ligne du groupe contienne la taille du groupe.

Lorsque vous exportez un Job à l'aide d'un tRuleSurvivorship, vous devez cocher la case Export Dependencies afin d'exporter ensemble les règles de consolidation générées. Pour plus d'informations concernant l'export d'un Job, consultez le Guide utilisateur du Studio Talend.

Scénario 1 : Sélectionner les meilleures données d'un groupe de doublons afin de créer un enregistrement consolidé

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é.

Scénario 2 : Modifier le fichier de règle manuellement afin de coder les conditions à utiliser pour créer un enregistrement consolidé

Dans un Job, le composant tRuleSurvivorship génère un ensemble de règles de consolidation basées sur les conditions définies dans la table Rule table, dans la vue Basic settings.

Si vous souhaitez que les enregistrements soient consolidés selon un ou plusieurs critère(s) avancé(s), vous devez coder manuellement les conditions dans la règle à l'aide du langage Drools.

Le Job de ce scénario fournit un exemple complet concernant la modification complète du code de la règle générée par le composant, afin d'utiliser des conditions spécifiées pour créer un enregistrement consolidé. Vous pouvez utiliser cet enregistrement consolidé, par exemple pour créer une copie maître des données pour MDM.

Les composants utilisés dans ce Job sont :

  • un tFixedFlowInput : pour fournir les données d'entrée à traiter dans le Job.

  • un tRuleSurvivorship : pour créer le flux de validation de consolidation à partir des conditions codées dans la règle. Ce composant sélectionne les meilleures données composant la représentation unique de chaque groupe de doublons.

  • un tLogRow : pour afficher les résultats de l'exécution du Job.

Construire le Job

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

  2. Cliquez-droit sur le tFixedFlowInput et sélectionnez le lien Row > Main afin de connecter ce composant au tRuleSurvivorship.

  3. Répétez l'opération pour connecter le tRuleSurvivorship au tLogRow à l'aide d'un lien Row > Main .

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 cinq fois sur le bouton [+] pour ajouter cinq lignes.

    Renommez respectivement ces lignes : Record_ID, File, Acctname, GRP_ID et GRP_SIZE.

    Les données d'entrée contiennent des informations concernant un ID de groupe, ainsi que la taille du groupe. Dans un scénario réel, ces informations peuvent être rassemblées par le composant tMatchGroup comme dans le scénario 1. Le tMatchGroup regroupe les doublons des données d'entrée et donne à chaque groupe un ID et une taille. Ces deux colonnes sont requises par le tRuleSurvivorship.

  4. Dans la colonne Type, sélectionnez les types de données pour les colonnes. Dans cet exemple, configurez le type à Integer pour Record_ID et GRP_SIZE et configurez à String pour les autres colonnes.

    Note

    Assurez-vous de configurer le bon type de date afin de pouvoir définir les règles de validation sans message d'erreur.

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

  6. Dans la zone Mode de la vue Basic settings, sélectionnez Use Inline Content (delimited file).

  7. Dans le champ Content, saisissez les données d'entrée à traiter.

    Ces données doivent correspondre au schéma défini. Dans cet exemple, les données d'entrée se présentent comme suit :

    1;2;AcmeFromFile2;1;2
    2;1;AcmeFromFile1;1;0
    3;1;AAA;2;1
    4;2;BBB;3;1
    5;1;  ;4;2
    6;2;NotNull;4;0
  8. Dans les champs Row Separator et Field Separator, saisissez respectivement le séparateur de lignes et le séparateur de champs.

Définir le flux de validation de consolidation

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

  2. Sélectionnez GRP_ID dans la liste Group Identifier et GRP_SIZE dans la liste Group size.

  3. Dans le champ Rule package name, remplacez le nom par défaut, org.talend.survivorship.sample par le nom de votre choix, si nécessaire.

    Le flux de validation de consolidation est généré et sauvegardé sous son nom, dans la vue Repository de la perspective Integration.

  4. Dans la table Rule table, cliquez sur le bouton [+] pour ajouter une ligne par règle.

    Dans cet exemple, définissez une règle et complétez-la comme suit :

    Ordre

    Nom de la règle

    Colonne de référence

    Fonction

    Valeur

    Colonne cible

    Sequential

    "Rule1"

    File

    Expression

    .equals("1")

    Acctname

    Une règle, "Rule1", est générée et exécutée par le composant tRuleSurvivorship. Cette règle valide les enregistrements dans la colonne File qui correspondent à l'expression saisie dans la colonne Value de la table Rule table. Le composant sélectionne la valeur correspondante comme étant la meilleure de la colonne cible Acctname.

  5. A côté du champ Generate rules and survivorship flow, cliquez sur l'icône pour générer l'ensemble de règles selon les conditions définies.

    L'ensemble de règles est généré et sauvé sous les nœuds Metadata > Rules Management > Survivorship Rules dans la vue Repository de la perspective Integration.

  6. Dans la vue Repository, parcourez votre système jusqu'au dossier Survivorship Rules et double-cliquez sur "Rule1" pour l'ouvrir.

    Cette règle sélectionne les valeurs provenant du fichier 1. Cependant, vous pouvez également consolider des enregistrements selon des critères spécifiques, par exemple, si Acctname a une valeur dans le premier fichier, vous pouvez utiliser cette valeur ou utiliser celle du second fichier. Pour ce faire, vous devez modifier le code manuellement dans le fichier de règle.

  7. Modifiez la règle avec le code Drools suivant :

    package org.talend.survivorship.sample 
    
    rule "ExistInFile1"
        no-loop true
        dialect "mvel"
        ruleflow-group "Rule1Group"
    when
        $input : RecordIn( file.equals("1"), acctname!= null, !acctname.trim().equals("") )  
    then
        System.out.println("ExistInFile1 fired\t" + $input.record_id);
        dataset.survive( $input.TALEND_INTERNAL_ID, "Acctname" );
        dataset.survive( $input.TALEND_INTERNAL_ID, "File" );
    end
    
    rule "NotExistFile1"
        no-loop true
        dialect "mvel"
        ruleflow-group "Rule1Group"
    when
        $input : RecordIn( file.equals("2"), acctname!= null && !acctname.trim().equals("") )  
        (not (exists (RecordIn( file.equals("1") ))) 
        or exists( RecordIn( file.equals("1"), acctname== null || acctname.trim().equals("") ) ))
    then
        System.out.println("NotExistFile1 fired\t" + $input.record_id);
        dataset.survive( $input.TALEND_INTERNAL_ID, "Acctname" );
        dataset.survive( $input.TALEND_INTERNAL_ID, "File" );
    end

    Avertissement

    Après avoir modifié le fichier de règle, vous ne devez pas cliquer sur l'icône . Sinon, vos modifications seront remplacées par la nouvelle génération de l'ensemble de règles.

Exécuter le Job

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

    Les résultats d'exécution du Job sont affichés dans la table.

  2. Appuyez sur F6 pour exécuter le Job.

    La vue Run s'ouvre automatiquement et affiche les résultats d'exécution.

    Vous pouvez constater que quatre lignes constituent les enregistrements consolidés car leur colonne SURVIVOR indique true. Dans les enregistrements consolidés, la valeur Acctname est sélectionnée dans le fichier 1, si la valeur existe. Sinon, la valeur est sélectionnée dans le fichier 2 comme défini dans la règle. D'autres lignes sont des doublons des mêmes groupes.

    La colonne CONFLICT montre qu'aucune colonne n'a plus d'une valeur correspondant aux règles de validation données.