Scénario 4 : Utiliser deux niveaux de parsing pour extraire des informations de données non structurées - 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

Ce scénario décrit comment construire un ensemble de règles pour extraire des informations de données non structurées. Il explique comment utiliser une règle ANTLR simple afin de diviser en jetons les données, puis d'utiliser une règle avancée afin de vérifier chaque jeton créé par ANTLR par rapport à une expression régulière.

Ce scénario utilise :

  • un composant tFixedFlowInput pour créer les chaînes de données non structurées.

  • un tStandardizeRow afin de définir les règles nécessaires à l'extraction des quantités de liquide des chaînes de données.

  • un tLogRow pour afficher les données de sortie.

Construire le Job

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

  2. Reliez ces trois composants à l'aide de liens Main.

Créer les données non structurées

  1. Double-cliquez sur le composant tFixedFlowInput pour afficher sa vue Basic settings.

  2. Cliquez sur le bouton [...] pour ouvrir la boîte de dialogue [Schema]. Cliquez sur le bouton [+] pour ajouter une colonne, nommez cette colonne product puis cliquez sur OK afin de valider et fermer la boîte de dialogue.

  3. Dans la zone Mode, sélectionnez Use Inline Content (delimited file).

  4. Dans le champ Content, saisissez les trois chaînes de caractères suivantes :

    3M PROJECT LAMP 7 LUMENS 32ML
    A 5 LUMINES 5 LOW VANILLA 5L 5LIGHT 5 L DULUX L
    54MLP FAC 32 ML

Créer les règles d'analyse

  1. Double-cliquez sur le composant tStandardizeRow pour afficher sa vue Basic settings.

  2. Dans la liste Column to parse, sélectionnez product.

  3. Dans la table Conversion rules, définissez une règle simple et une règle avancée, comme suit :

    • Cliquez deux fois sur le bouton [+] pour ajouter deux colonnes. Nommez la première "Amount" et la seconde "LiquidAmount".

    • Sélectionnez Format comme type de règle simple et saisissez "INT WHITESPACE* WORD".

    • Sélectionnez RegExp comme type pour la règle avancée et saisissez "\\d+\\s*(L|ML)\\b".

      La règle avancée est exécutée après la règle simple ANTLR. La règle "Amount" divise en jetons les quantités des trois chaînes de caractères, met en correspondance un mot et une valeur numérique. La règle RegExp vérifie chaque jeton créé par ANTLR par rapport à une expression régulière.

  4. Cliquez sur le bouton Generate parser code in Routines afin de générer le code sous le dossier Routines dans la vue DQ Repository de la perspective Profiling.

    Cette étape est obligatoire, sinon le Job ne s'exécute pas.

  5. Dans la vue Advanced settings, laissez les options par défaut dans la zone Output format.

    Le paramètre Max edits for fuzzy match est configuré à 1 par défaut.

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

Exécuter le Job

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

    La quantité de liquide est extraite des données non structurées à l'aide d'une règle ANTLR simple divisant en jetons les quantités. Ensuite, une règle avancée vérifie chaque jeton créé par ANTLR par rapport à l'expression régulière.

    Chaque instance de données XML est écrite dans une ligne séparée car la case Pretty print est cochée dans la vue Advanced settings du composant tStandardizeRow.