tExtractRegexFields - 6.1

Composants Talend Open Studio Guide de référence

EnrichVersion
6.1
EnrichProdName
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
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Fonction

Le composant tExtractRegexFields génère des colonnes multiples à partir d'une colonne donnée en utilisant des correspondances regex.

Objectif

Le tExtractRegexFields permet d'utiliser des expressions régulières pour extraire les données selon un modèle.

Propriétés du tExtractRegexFields

Famille du composant

Processing/Fields

Basic settings

Field to split

Sélectionnez un champ entrant à diviser dans la liste Field to split.

 

Regex

Renseignez l'expression régulière en fonction du langage de programmation que vous utilisez.

 

Schema et Edit Schema

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

Cliquez sur Edit schema pour modifier le schéma. Si le schéma est en mode Repository, trois options sont disponibles :

  • View schema : sélectionnez cette option afin de voir le schéma.

  • Change to Built-In property : sélectionnez cette option pour passer le schéma en mode Built-In et effectuer des modifications locales.

  • Update repository connection : sélectionnez cette option afin de modifier le schéma stocké dans le référentiel et décider de propager ou non les modifications à tous les Jobs. Si vous souhaitez propager les modifications uniquement au Job courant, sélectionnez No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

Cliquez sur Sync columns pour récupérer le schéma du composant précédent.

Avertissement

Vérifiez que le schéma de sortie ne contient pas de colonne ayant le même nom que la colonne d'entrée à diviser. Sinon, l'expression régulière ne fonctionnera pas comme supposé.

 

 

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

 

 

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

Advanced settings

Die on error

Cochez cette case pour arrêter l'exécution du Job lorsqu'une erreur survient.

Décochez la case pour ignorer les lignes en erreur et terminer le processus avec les lignes sans erreur. Lorsque les erreurs sont ignorées,vous pouvez récupérer les lignes en erreur, si vous le souhaitez. Pour cela, utilisez un lien Row > Reject.

 

Check each row structure against schema

Cochez cette case afin de vérifier que le nombre total de colonnes est cohérent par rapport au schéma. Si le nombre n'est pas cohérent, un message d'erreur s'affiche dans la console.

 

tStatCatcher Statistics

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

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 traite des flux de données, il nécessite donc un composant d'entrée et un composant de sortie. Il permet d'extraire des données d'un champ délimité à l'aide d'un lien Row > Main, et permet de créer un flux de rejet avec un lien Row > Reject, filtrant les données dont le type ne correspond pas au type défini.

Log4j

Si vous utilisez une solution Talend soumise à souscription, l'activité de ce composant peut être journalisée avec la fonctionnalité log4j. Pour plus d'informations sur cette fonctionnalité, consultez le Guide utilisateur du Studio Talend.

Pour plus d'informations sur les niveaux de logs du log4j, consultez la documentation d'Apache : http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html (en anglais).

Scénario : Extraire des noms, des domaines et domaines de premier niveau à partir d'adresses e-mail

Ce scénario décrit un Job à trois composants dans lequel le tExtractRegexFields est utilisé pour définir une expression régulière correspondant à l'une des colonnes des données d'entrée. Dans ce scénario, il s'agit de la colonne email. Le composant tExtractRegexFields est également utilisé pour trouver les correspondances avec ladite expression régulière. Cette expression comprend des identifieurs de champ permettant de séparer le nom d'utilisateur, le nom de domaine ainsi que le nom du domaine de premier niveau pour chaque adresse e-mail. Si l'adresse e-mail est valide, ces trois parties sont extraites et affichées sur la console dans trois colonnes différentes. Les données des deux autres colonnes d'entrée, id et age, sont également extraites puis redirigées.

Construire le Job

  1. A partir de la Palette, cliquez-déposez les composants suivants dans l'espace graphique : le tFileInputDelimited, le tExtractRegexFields et le tLogRow.

  2. Connectez le tFileInputDelimited au tExtractRegexFields à l'aide d'un lien Row > Main, puis reliez le tExtractRegexFields au tLogRow via un autre lien Row > Main.

Configurer les composants

  1. Dans l'espace graphique, double-cliquez sur le composant tFileInputDelimited pour définir sa configuration de base.

  2. Cliquez sur le bouton [...] à côté du champ File Name/Streampour définir le chemin d'accès au fichier d'entrée.

    Dans ce scénario, le fichier d'entrée utilisé est test4. Il s'agit d'un fichier texte comportant trois colonnes : id, email et age.

    id;email;age
    1;anna@yahoo.net;24
    2;diana@sohu.com;31
    3;fiona@gmail.org;20

    Pour plus d'informations, consultez tFileInputDelimited.

  3. Cliquez sur le bouton [...] du champ Edit schema pour définir la structure des données du fichier d'entrée.

  4. Dans l'espace graphique, double-cliquez sur le composant tExtractRegexFields pour définir sa configuration de base (Basic settings).

  5. A partir de la liste déroulante Field to split, sélectionnez la colonne à séparer, à savoir email dans ce scénario.

  6. Dans le panneau Regex, renseignez l'expression régulière à utiliser pour effectuer la correspondance. Dans ce scénario, une expression régulière "([a-z]*)@([a-z]*).([a-z]*)" est utilisée pour mettre en correspondance les trois parties d'une adresse e-mail : utilisateur, domaine et domaine de premier niveau.

    Pour plus d'informations concernant les expressions régulières consultez http://fr.wikipedia.org/wiki/Expression_rationnelle.

  7. Cliquez sur Edit schema pour ouvrir la boîte de dialogue [Schema of tExtractRegexFields], cliquez cinq fois sur le bouton [+] pour ajouter cinq colonnes au schéma.

    Dans ce scénario, vous allez diviser la colonne d'entrée email en trois colonnes dans le flux de sortie, name, domain et tld. Les deux autres colonnes d'entrée seront extraites telles qu'elles sont.

  8. Double-cliquez sur le composant tLogRow pour ouvrir sa vue Component.

  9. Dans la zone Mode, sélectionnez Table (print values in cells of a table).

Exécuter le Job

  1. Appuyez sur les touches Ctrl+S pour enregistrer votre Job.

  2. Appuyez sur F6 pour l'exécuter, ou cliquez sur l'onglet Run, dans la vue Run.

Le composant tExtractRegexFields effectue une correspondance entre toutes les adresses e-mail données et l'expression régulière définie, puis extrait le nom d'utilisateur, le domaine et le domaine de premier niveau, qu'il affiche sur la console dans trois colonnes séparées. Les deux autres colonnes, id et age, sont extraites telles quelles.