Tester les analyseurs syntaxiques - 6.3

Talend Real-time Big Data Platform Studio Guide utilisateur

EnrichVersion
6.3
EnrichProdName
Talend Real-Time Big Data Platform
task
Création et développement
Qualité et préparation de données
EnrichPlatform
Studio Talend

Après avoir créé ou importé un ensemble de règles et avant de les utiliser réellement, vous devez tester cet ensemble d'analyseurs syntaxiques, afin de l'améliorer et/ou de le valider.

La perspective Profiling de votre studio fournit un ensemble complet d'outils de test combinant tous les processus de test en une seule vue.

Dans cette vue, vous pouvez effectuer les opérations suivantes :

  • Sélectionner la règle que vous devez tester.

  • Créer un exemple de données par rapport auquel le test est effectué.

  • Editer les règles lorsque c'est nécessaire.

  • Analyser et découvrir les éléments utilisés pour composer une règle par rapport aux données d'exemple.

  • Sauvegarder et réutiliser l'exemple d'intérêt.

  • Sauvegarder les résultats du test.

  • Améliorer les règles testées.

  • Créer un nouvel ensemble de règles à partir des améliorations effectuées.

Accéder à la vue de test

Prérequis : La vue Parser Rule Settings correspondant à la règle devant être testée doit être ouverte.

  • Dans cette vue, cliquez sur le bouton de test sous la table Parser Rules de la zone Parser Rule.

    La vue de test [Combined.g] s'ouvre avec l'ensemble d'analyseurs syntaxiques automatiquement saisi.

    Note

    Si l'un des analyseurs syntaxiques à tester n'est pas conforme à la grammaire de l'analyseur ANTLR, un message d'erreur apparaît et la vue de test ne s'affiche pas.

    Si la vue Parser Rule Settings n'est pas ouverte, double-cliquez sur la règle qui vous intéresse dans le nœud Libraries > Rules > Parser de la vue DQ Repository.

    Si la zone Parser Rule est masquée, cliquez sur le titre de cette zone pour l'afficher.

La capture d'écran ci-dessous est un exemple de la vue de test :

Note

Le processus de test de règles est créé pour tester les règles de types Enumeration, Format ou Combination utilisant la grammaire ANTLR. Pour plus d'informations concernant ces types de règles et comment comprendre les règles utilisées dans l'exemple, consultez le Guide de référence des Composants Talend.

Les onglets Interpreter et Grammar sont disponibles en bas de la vue de test et fournissent l'accès à la vue correspondante. La vue Grammar est en lecture seule et vous permet de vérifier la grammaire ANTLR utilisées par vos règles. Vous devez utiliser la vue Interpreter pour effectuer des tests.

Dans la vue Interpreter, vous pouvez voir les zones suivantes :

La zone des éléments.

Cette liste présente tous les éléments de règles disponibles pour un ensemble de règles mais chaque élément n'est pas nécessairement utilisé par un ensemble de règles. Ces éléments contiennent les éléments ANTLR prédéfinis ainsi que les éléments personnalisés. Ces derniers sont automatiquement générés à partir des noms des règles à tester. Dans cet exemple, les éléments length, weight et SKU, entre autres, sont tous des éléments personnalisés ayant leur règle correspondante dans l'ensemble de règles à tester.

Vous pouvez constater qu'un élément en minuscules possède souvent son équivalent en majuscules listé dans cette zone. Cela est généralement dû au fait que l'analyseur syntaxique ANTLR (parser) requiert des minuscules et l'analyseur lexical (lexer) requiert des majuscules. Pour plus d'informations concernant les analyseurs syntaxique et lexical ANTLR, consultez :

https://theantlrguy.atlassian.net/wiki/display/ANTLR3/Quick+Starter+on+Parser+Grammars+-+No+Past+Experience+Required.

Comme la règle Format en majuscules requiert une correspondance exacte et la règle Format en minuscules ne la requiert pas, lorsque vous nommez une règle Format avec des lettres majuscules, l'élément équivalent en minuscules est généré. L'inverse ne se produit pas.

Pour plus d'informations concernant l'utilisation des éléments ANTLR prédéfinis dans le Studio Talend, consultez le composant tStandardizeRow dans le Guide de référence des Composants Talend. Pour des informations plus détaillées, consultez le site Web d'ANTLR.

Chaque élément est traité comme une unité que vous pouvez tester. L'élément rule, au début de la liste représente l'ensemble complet d'analyseurs syntaxiques. Pour tester chaque règle contenue dans un ensemble, vous devez utiliser cet élément.

Le champ Rule est un outil de filtre dans lequel vous pouvez saisir le nom de l'élément que vous souhaitez tester.

Note

Les éléments prédéfinis ne sont pas tous affichés dans cet exemple. De plus, lorsque vous avez créé vos propres analyseurs syntaxiques, cette liste peut être différente de celle présentée dans la capture d'écran.

La zone des données d'exemple

Dans cette zone, saisissez les données d'exemple par rapport auxquelles vous souhaitez tester l'ensemble de règles qui vous intéresse. Chaque exemple doit être représentatif d'une des structures données que vous souhaitez standardiser via les règles à tester.

Pour exécuter un test, cliquez sur le bouton .

Pour vider le champ contenant les données d'exemple afin de saisir de nouvelles données, cliquez sur le bouton .

Pour sauvegarder l'exemple de données se trouvant dans la zone, cliquez sur le bouton et saisissez un nom pour cet exemple, dans la fenêtre [Save test case] qui s'ouvre alors.

La zone de l'ensemble de règles

Cette zone est automatiquement rempli par les règles à tester. Vous pouvez éditer ces règles dans cette zone, selon les résultats du test.

La barre d'outils fournie est la même que celle sous la table Parser Rules, permettant de modifier les règles dans la vue Parser rule settings. Pour plus d'informations, consultez Modifier un ensemble d'analyseurs syntaxiques déjà configuré.

Une fois l'ensemble de règles amélioré, sauvegardez-le ou créez un autre ensemble de règles à partir de l'ensemble amélioré.

Pour le sauvegarder :

  • Cliquez sur le bouton de cette zone.

    Note

    A chaque fois que vous cliquez sur ce bouton pour sauvegarder un ensemble de règles, le code de l'analyseur et la vue de test sont automatiquement rafraîchis. La zone des exemples de données et la zone des résultats de tests sont vidées. Il est recommandé de sauvegarder l'exemple courant de données et les résultats des tests, avant de cliquer sur ce bouton.

Pour créer un autre ensemble de règles :

  • Cliquez sur le bouton Create Rule et saisissez les informations relatives dans l'assistant [New Parser Rule]. La vue Parser rule settings correspondante s'ouvre alors automatiquement.

La zone des tests

Cette zone liste tous les exemples de données sauvegardés (tests). Vous pouvez cliquer sur l'un d'entre eux pour le réutiliser.

Le champ Test est un outil de filtre vous permettant de trouver l'exemple qui vous intéresse dans la liste, en saisissant son nom.

La vue graphique des résultats des tests

Note

Dans le schéma présenté dans la capture d'écran, le nœud basic représente le type de règle des éléments prédéfinis. Les nœuds word et integer font partie des éléments prédéfinis ANTLR. Pour plus d'informations, consultez le composant tStandardizeRow dans le Guide de référence des Composants Talend.

Cette zone présente le diagramme des relations entre les éléments de données. par exemple, l'élément sku correspond à 34-9923 et l'élément integer correspond à 6125.

Le diagramme est généré une fois qu'un test a été effectué. Vous pouvez lire les correspondances entre chaque unité des données d'exemple et l'élément correspondant de ce diagramme.

Lorsqu'un élément n'a pas d'unité lui correspondant dans les données d'exemple, une erreur est affichée dans la vue Problems de cette zone.

Note

Le test utilise tous les éléments disponibles dans la zone listant les éléments afin de mettre en correspondance les unités dans les données d'exemple. Cependant, pour des raisons grammaticales, le nom des règles de type Combination et de type Format en majuscules ne s'affichent pas dans le diagramme.

Tester un ensemble de règles

Cette section est un exemple et vous montre comment tester un ensemble d'analyseurs syntaxiques.

Dans cet exemple, les règles à tester sont les suivantes :

Nom

Type

Valeur

"SKU"

"Format"

"(DIGIT DIGIT|LETTER LETTER) '-'? DIGIT DIGIT DIGIT DIGIT (DIGIT DIGIT?)? "

"LengthUnit"

"Enumeration"

" 'm' | '\'' | 'inch' | 'inches' | '\"'"

"by"

"Enumeration"

"'X' | 'x' | 'by' "

"length"

"Format"

"(INT | FRACTION | DECIMAL) LengthUnit "

"Size"

"Combination"

"length by length"

"WeightUnit"

"Enumeration"

" 'lb' | 'lbs' | 'pounds' | 'Kg' | 'pinds'"

"weight"

"Format"

"(INT | FRACTION | DECIMAL) WeightUnit "

Prérequis : Vous devez savoir comment créer un ensemble d'analyseurs syntaxiques et comment accéder à la vue de test correspondant dans la fenêtre principale de votre studio. Pour plus d'informations, consultez Créer des analyseurs syntaxiques et Accéder à la vue de test

Note

Si vous devez importer des règles d'exemple, vous pouvez le faire depuis le composant tStandardizeRow dans un Job existant, tel que le Job products_parsing dans le répertoire standardization_examples > product fourni dans le projet Data Quality Demos dans le studio. Pour plus d'informations, consultez le composant tStandardizeRow dans le Guide de référence des Composants Talend.

  1. Dans la zone listant les règles, dans le coin supérieur gauche de la vue de test Interpreter, cliquez sur l'élément rule, ce qui signifie que vous devez tester l'ensemble complet de règles.

  2. Dans la zone des données d'exemple située dans la partie supérieure de la vue de test, saisissez des données d'exemple.

    Dans cet exemple, saisissez 34-9923, Monolithic Membrane 6125; four by eight sheet, 26 lbs 26 lbs. Ces données décrivent une marchandise.

  3. Cliquez sur le bouton de sauvegarde dans le coin supérieur droit de la zone d'exemple avant de sauvegarder ce test et saisissez un nom dans la fenêtre pop-up [Save test case], par exemple, SKU.

  4. Cliquez sur OK. Ce test apparaît dans la liste des tests dans le coin inférieur gauche.

    La vue Interpreter doit ressembler à ceci :

  5. Cliquez sur le bouton dans le coin supérieur droit pour exécuter ce test. Une fois exécuté, les résultats du test s'affiche dans la partie inférieure de cette vue.

    Dans ces résultats, vous pouvez facilement visualiser où améliorer les règles données. Les données four by eight sheet représentent une taille mais ne sont pas mises en correspondance avec la règle correspondante. Vous pouvez ajouter de nouvelles règles ou modifier les règles existantes. Les deux manières de procéder sont contextuelles et l'une n'est pas nécessairement meilleure que l'autre. Dans cet exemple, ajoutez une règle Enumeration et modifiez les règles Length et LengthUnit afin d'améliorer l'exactitude des correspondances.

    Nom

    Type

    Valeur

    "length"

    "Format"

    "(INT | FRACTION | DECIMAL ) LengthUnit | Number LengthUnit?"

    "Number"

    "Enumeration"

    "'four' | 'eight' "

    "LengthUnit"

    "Enumeration"

    " 'm' | '\'' | 'inch' | 'sheet' | 'inches' | '\"' "

    La nouvelle règle Length signifie que four et eight, avec ou sans unité de longueur (length) peuvent être mises en correspondance :

    Note

    Pour mettre à jour ces règles, vous devez connaître la grammaire ANTLR et les éléments ANTLR utilisés pour écrire une règle. Pour plus d'informations, consultez le Guide de référence des Composants Talend. Pour des informations plus détaillées, consultez le site Web d'ANTLR.

  6. Cliquez sur le bouton de sauvegarde sous la table de règles afin de rafraîchir la vue de test et regénérer le code de l'analyseur. Les zones de données d'exemple et de test sont vidées.

  7. Dans la liste des tests, dans le coin inférieur gauche, sélectionnez l'exemple de données SKU précédemment sauvegardé.

  8. Cliquez sur le bouton dans le coin supérieur droit pour exécuter le test. Une fois exécuté, les résultats du nouveau test s'affichent dans la zone correspondante :

    Dans ces résultats, vous pouvez voir que les données four by eight sheet ont été mises en correspondance avec la règle Size de type Combination.

    Note

    La vue de test n'affiche pas le nom des règles de type Combination, puisque ce type permet la répétition des noms des règles. Ainsi, dans la vue Grammar ANTLR, les noms des règles de type Combination, pas toujours uniques, ne sont pas générés dans le code, afin d'éviter les erreurs de doublons. La capture d'écran suivante affiche le code correspondant à l'exemple : le nom Size est toujours une valeur littérale entre guillemets, sans l'élément code équivalent, alors que les règles de format SKU et length ont leur éléments de code correspondant, sku et length. Pour plus d'informations concernant la grammaire ANTLR, consultez le site Web d'ANTLR.

    Vous pouvez utiliser d'autres exemples de données afin de continuer à améliorer ces règles. Les résultats peuvent être très variés. Cette vue de test vous permet de composer les règles répondant le mieux à vos besoins.