tRules - 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 de votre studio si vous avez souscrit au Studio Talend.

Propriétés du tRules

Famille de composant

Processing

 

Fonction

Le composant tRules permet d'appliquer une ou plusieurs règles de gestion métier à un flux de données afin de n'obtenir que les données pertinentes en sortie.

Objectif

tRules permet d'utiliser des règles métier définies dans un fichier Drools au format .xls ou .drl, afin de filtrer des données.

Basic settings

Property type

Peut être Built-in ou Repository.

 

 

Built-in : Propriétés utilisées ponctuellement.

 

 

Repository : Sélectionnez le fichier de propriétés du composant. Les champs suivants sont alors pré-remplis à l'aide des données collectées.

 

DRL/XLS FILE

Sélectionnez le fichier Drools ou Excel contenant les règles que vous souhaitez utiliser dans le Job.

Vous pouvez utiliser des règles métier stockées dans des fichiers externes ou créer des règles métier au format DRL dans le Studio Talend. Des scénarios d'exemple vous présentent les deux possibilités.

 

Outputs

Configurez les règles à transmettre en sortie.

Schema : Créez ou sélectionnez le schéma à transmettre en sortie.

Rule : Créez ou sélectionnez la règle à utiliser pour la sortie correspondante.

Note

Le champ Import dans le code d'un fichier de règle doit correspondre au nom du projet.

Pour plus d'informations concernant la création de règles, consultez la documentation Drools sur le site suivant : http://www.jboss.org/drools/documentation.html

Advanced settings

tStatCatcher Statistics

Cochez cette case pour collecter les données de log, aussi bien au niveau du Job qu'au niveau de chaque 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.

NB_LINE : nombre de lignes lues par un composant d'entrée ou passées à un composant de sortie. Cette variable est une variable After et retourne un entier.

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 est un composant intermédiaire dans un flux de données, il nécessite un composant d'entrée et un composant de sortie.

Scénario 1 : Extraire des données clients selon des règles métier stockées dans un fichier externe

Ce scénario est un Job comprenant quatre composants dont l'objectif est de lire des données clients et de récupérer uniquement les clients répondant aux règles métier stockées dans un fichier Drools externe.

Prérequis

Dans ce scénario, vous devez avoir un fichier Drools, au format .xls ou .drl, contenant les règles métier à utiliser dans le Job.

Dans cet exemple, les règles métier sont définies dans un fichier Excel, comme suit :

  • Le champ Import (cellule C:2) doit respecter le format <projectname>.<lowercase jobname>_0_1.<jobname>.*. Par exemple, dq_project.business_rule_0_1.Business_Rule.* signifie que le nom du projet dans le studio est dq_project et le nom du Job est Business_Rule.

    Assurez-vous de saisir dans ce champ le nom exact du projet et du Job de votre studio.

  • la règle RuleAGE récupère tous les clients dont l'âge est compris entre 30 et 39 ans et les écrit dans le premier flux de sortie.

  • la règle RuleREGION récupère tous les clients vivant dans la zone EMEA et les écrit dans le second flux de sortie.

Dans le schéma de sortie du tRules, assurez-vous d'utiliser le nom exact des règles définies dans le fichier Drools Excel.

Construire le Job et configurer les données d'entrée

  1. Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : un tFileInputExcel, un tRules et deux tLogRow.

  2. Double-cliquez sur le composant tFileInputExcel pour afficher sa vue Basic settings et configurer ses propriétés.

  3. Dans la liste Property type, sélectionnez Built-in et renseignez les champs qui suivent.

  4. Cliquez sur le bouton [...] à côté du champ File Name/Stream et parcourez votre système jusqu'au fichier source. Le fichier source utilisé dans cet exemple est nommé client et contient les données clients.

    Si besoin, cliquez-droit sur le tFileInputExcel et sélectionnez Data viewer pour prévisualiser les données d'entrée.

  5. Cochez la case All sheets pour récupérer les données de toutes les feuilles du fichier Excel.

  6. Dans la liste Schema, sélectionnez Built-in et cliquez sur Edit schema pour ouvrir une boîte de dialogue dans laquelle définir le schéma du fichier d'entrée.

    Dans cet exemple, le fichier source contient quatre colonnes : id, name, age et region.

  7. Cliquez sur OK afin de valider vos modifications et fermer la boîte de dialogue.

Définir les règles métier

Configurer le schéma des règles

  1. Dans l'espace de modélisation graphique, double-cliquez sur le tRules pour afficher sa vue Basic settings.

  2. Dans la liste Property type, sélectionnez Repository si vous avez stocké le fichier contenant les règles métier dans le nœud Metadata > Rules Management de la vue Repository. Si ce n'est pas le cas, sélectionnez Built-in et parcourez votre système jusqu'au fichier Drools.

    Pour plus d'informations concernant la création et le stockage des règles métier, consultez le Guide utilisateur du Studio Talend.

  3. Dans la table Outputs, cliquez sur le bouton [...] pour ajouter deux lignes représentant les deux flux de sortie, chacun utilisant l'une des deux règles métier définies dans le fichier Drools.

  4. Cliquez dans la première ligne de la colonne Schema pour afficher un bouton [...]. Cliquez sur le bouton pour ouvrir une boîte de dialogue et donner un nom au schéma de sortie.

  5. Saisissez le nom exact de la première règle, comme écrit dans le fichier Drools, ruleAGE dans cet exemple, puis cliquez sur OK.

    Une boîte de dialogue s'ouvre.

  6. Configurez le schéma de sortie. Dans cet exemple, récupérez le schéma d'entrée. Cliquez sur OK pour fermer la boîte de dialogue.

  7. Répétez l'opération dans la seconde ligne de la colonne Schema.

    Saisissez le nom exact de la seconde règle, comme écrit dans le fichier Drools, ruleREGION pour nommer le second schéma de sortie et récupérez le schéma d'entrée en cliquant sur Yes dans la boîte de dialogue ouverte.

    Un message d'erreur s'affiche lorsque vous essayer d'exécuter le Job, si les noms des schémas de sortie de votre Job ne correspondent pas aux noms des règles du fichier Drools.

Sélectionner les règles

  1. Cliquez dans la première ligne de la colonne Rule pour afficher un bouton [...]. Cliquez sur ce bouton pour ouvrir la boîte de dialogue [Rule].

  2. Sélectionnez l'option correspondant à vos besoins :

    • View Rules : pour ouvrir le fichier de règles en lecture seule.

    • Select a rule from repository : pour sélectionner la règle prédéfinie correspondante du fichier de règles métier stocké dans le Repository.

  3. Dans la liste Rule, sélectionnez la règle à appliquer au premier schéma de sortie, RuleAGE, puis cliquez sur OK.

    La règle sélectionnée s'affiche dans la colonne Rules.

    Dans cet exemple, la règle RuleAGE est appliquée au premier schéma de sortie et la règle RuleREGION est appliquée au second.

  4. Répétez l'opération pour le second schéma de sortie, rule_age puis cliquez sur OK.

  5. Dans l'espace de modélisation graphique, double-cliquez sur chaque tLogRow pour configurer ses propriétés. Pour plus d'informations, consultez tLogRow.

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

    La console Run affiche les deux flux de sortie : le premier flux de sortie liste tous les clients dont l'âge est compris entre 30 et 39 ans. Le second flux de sortie liste tous les clients habitant dans la zone EMEA.

Scénario 2 : Extraire des codes postaux à l'aide de règles DRL créées dans le Studio

Le Job de ce scénario comprend trois composants dont le but est de créer des règles métier de format DRL dans le studio. Vous pouvez utilisez ces règles afin de récupérer des codes postaux pour deux villes spécifiques définies dans les règles.

Créer le modèle de règle DRL

  1. Dans la vue Repository, développez les nœuds Metadata > Rules management.

  2. Cliquez-droit sur Embedded Rules et sélectionnez Create Rule.

  3. Dans l'assistant ouvert, saisissez un nom pour le modèle de règle, renseignez les paramètres et cliquez sur Next.

  4. Sélectionnez l'option Create et, dans la liste Type of rule resource, sélectionnez New DRL.

  5. Cliquez sur Finish.

    Un modèle de règle est créé et s'ouvre dans un éditeur de règle, dans l'espace de modélisation graphique.

Ce modèle de règle est embarqué dans le composant tRules. Vous pouvez définir une ou plusieurs règles DRL dans le modèle à l'intérieur du tRules.

Construire le Job et configurer les données d'entrée

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

  2. Dans le nœud Embedded Rules de la vue Repository, déposez le modèle de règle créé.

    Un composant tRules s'affiche dans l'espace de modélisation graphique, avec le modèle de règle embarqué.

  3. Reliez le tFixedFlowInput au tRule à l'aide d'un lien Row > Main.

  4. Double-cliquez sur le tFileInputDelimited pour afficher sa vue Basic settings.

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

  6. Ajoutez deux lignes à l'aide du bouton [+]. Nommez-les respectivement zipCode et CityName et cliquez sur OK.

    Lorsque vous définissez les règles DRL, utilisez la colonne zipCode afin de faire correspondre les codes postaux à la colonne CityName, pour écrire en sortie le nom de la ville correspondant à un code postal.

    Note

    Assurez-vous que le nom de ville avec lequel mettre en correspondance le code postal est en minuscules. Sinon, une erreur survient lorsque vous tentez d'exécuter le Job.

  7. Dans la zone Mode, sélectionnez l'option Use Inline Content (delimited file).

  8. Configurez le séparateur de lignes (Row Separator) ainsi que le séparateur de champs (Field Separator) et, dans la table Content, saisissez les données délimitées sur lesquelles appliquer les règles DRL.

Définir les règles DRL

Configurer le schéma des règles

  1. Dans l'espace de modélisation graphique, double-cliquez sur le tRules pour afficher sa vue Basic settings.

    Dans la liste Property Type, Repository est automatiquement sélectionné, puisque le modèle de règle est stocké dans le Studio.

  2. Cliquez sur le bouton [...] pour ouvrir une boîte de dialogue listant les règles DRL stockées en local dans le référentiel.

  3. Sélectionnez le modèle de règle dans lequel définir le schéma des règles, ZipCodeRuleSet dans cet exemple, puis cliquez sur OK.

  4. Utilisez le bouton [+] pour ajouter deux lignes à la table Outputs, cliquez sur la colonne Schema puis cliquez sur le bouton [...].

  5. Dans la boîte de dialogue, saisissez un nom pour le premier schéma de sortie, Paris, puis cliquez sur OK.

  6. Dans la boîte de dialogue ouverte, définissez votre schéma de sortie. Copiez les colonnes zipCode et CityName du flux d'entrée principal dans le flux de sortie et cliquez sur OK.

  7. Répétez l'opération pour créer un second schéma de sortie, nommé Suresnes. De la même façon, copiez les deux colonnes d'entrée dans le flux de sortie.

    Chaque schéma de sortie utilise l'une des deux règles DRL définie dans le modèle de règle.

  8. Cliquez-droit sur le tRules et sélectionnez Row > Paris afin de relier le composant au premier tLogRow.

  9. Répétez l'opération afin de lier le tRules au second tLogRow à l'aide d'un Row > Suresnes.

Créer les règles DRL

  1. Dans la table Outputs, cliquez dans la colonne Rule puis sur le bouton [...] du schéma Paris.

  2. Dans la boîte de dialogue ouverte, sélectionnez une des options, comme expliqué dans le tableau :

    Sélectionnez

    Pour...

    Edit Rules

    ouvrir la règle dans l'éditeur de règles, dans l'espace de modélisation graphique.

    Create a rule with guide

    ouvrir une boîte de dialogue dans laquelle vous pouvez définir une règle dans le modèle de règle.

    select a rule from repository

    sélectionner une règle prédéfinie dans le modèle de règle créé et stocké dans le Repository.

    Dans cet exemple, sélectionnez l'option Create a rule with guide.

  3. Dans la boîte de dialogue ouverte, utilisez la syntaxe Drools pour configurer la condition de la règle "Paris" comme suit : zipCode matches "75\\d{3}", puis cliquez sur OK.

    La nouvelle règle "Paris" est générée et affichée dans la colonne Rule. Cette règle récupère tous les codes postaux du schéma Paris commençant par 75.

  4. Cliquez dans la colonne Rule puis sur le bouton [...] de la règle "Paris".

    Le modèle de règle s'ouvre dans l'éditeur de règle, dans l'espace de modélisation graphique.

  5. Dans la règle "Paris", ajoutez le code output.CityName = "Paris" pour écrire en sortie Paris comme nom de ville dans le premier flux de sortie.

  6. Répétez les étapes ci-dessus afin de créer une règle "Suresnes" et configurez sa condition comme suit zipCode == "92150".

    La nouvelle règle s'affiche dans la colonne Rule. Cette règle récupère tous les codes postaux du schéma Suresnes équivalents à 92150.

  7. Dans la règle "Suresnes", ajoutez le code output.CityName = "Suresnes" pour écrire en sortie Suresnes comme nom de ville dans le second flux de sortie.

  8. Dans l'espace de modélisation graphique, double-cliquez sur chaque tLogRow pour définir leurs propriétés.

    Pour plus d'informations, consultez tLogRow.

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

    La console de la vue Run affiche deux flux de sortie, avec les codes postaux et le nom des villes.

    Dans le premier flux de sortie, la règle "Paris" récupère tous les codes postaux commençant par 75 et écrit le nom de ville Paris.

    Dans le second flux de sortie, la règle "Suresnes" récupère tous les codes postaux équivalents à 92150 et écrit le nom de ville Suresnes.