tExtractDelimitedFields - 6.3

Composants Talend Open Studio Guide de référence

EnrichVersion
6.3
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 tExtractDelimitedFields génère des colonnes multiples à partir d'une colonne String délimitée.

Objectif

Le tExtractDelimitedFields permet d'extraire les "champs" à partir d'une chaîne de caractères, pour les écrire à un autre endroit par exemple.

Propriétés du tExtractDelimitedFields

Famille du composant

Processing/Fields

 

Basic settings

Field to split

Sélectionnez un champ entrant à partir de la liste Field to split.

 

Ignore NULL as the source data

Cochez cette case afin d'ignorer les valeurs Null dans les données source.

Décochez cette case afin de générer les enregistrements Null correspondant aux valeurs Null dans les données source.

 

Field separator

Définissez le séparateur de champs.

Note

La syntaxe regex utilise un certain nombre de caractères spéciaux comme opérateurs. Si vous utilisez l'un de ces opérateurs comme séparateur de champs, il est nécessaire de protéger le caractère par un double antislash. Utilisez par exemple "\\|" au lieu de "|".

 

Die on error

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.

 

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, cliquez sur No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

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

 

 

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

Advanced separator(for number)

Cochez cette case pour modifier le séparateur utilisé pour les nombres. Par défaut, le séparateur des milliers est une virgule (,) et le séparateur décimal est un point (.).

 

Trim columns

Cochez cette case pour supprimer les espaces en début et en fin de champ dans les colonnes sélectionnées.

 

Check each row structure against schema

Cochez cette case pour vérifier si le nombre total de colonnes pour chaque ligne correspond au schéma. S'il ne correspond pas, un message d'erreur s'affichera dans la console.

 

Validate date

Cochez cette case pour vérifier strictement le format de la date par rapport au schéma d'entrée.

 

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.

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 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 une colonne String délimitée d'une table d'une base de données

Ce scénario décrit un Job écrivant des données, y compris une colonne String délimitée dans une table d'une base de données MySQL et affiche les données dans la console, puis extrait la colonne String délimitée en plusieurs colonnes et affiche dans la console les données après extraction.

Construire le Job

  1. Créez un nouveau Job et ajoutez les composants suivants en saisissant leur nom dans l'espace de modélisation graphique ou en les déposant depuis la Palette : un tFixedFlowInput, un tMysqlOutput, un tMysqlInput, un tExtractDelimitedFields et deux composants tLogRow.

  2. Reliez le tFixedFlowInput au tMysqlOutput à l'aide d'un lien Row > Main.

  3. Répétez l'opération afin de relier le tMysqlOutput au premier tLogRow, reliez le tMysqlInput au tExtractDelimitedFields et le tExtractDelimitedFields au second tLogRow.

  4. Reliez le tFixedFlowInput au tMysqlInput à l'aide d'un lien Trigger > On Subjob Ok.

Configurer les composants

Alimenter une table d'une base de données MySQL

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

  2. Cliquez sur le bouton [...] à côté du champ Edit schema et, dans la fenêtre qui s'ouvre, définissez le schéma, en ajoutant trois colonnes : Id de type Integer, ainsi que Name et DelimitedField de type String.

    Cliquez sur OK pour fermer l'éditeur de schéma et acceptez la propagation proposée par la boîte de dialogue.

  3. Dans la zone Mode, sélectionnez Use Inline Content(delimited file). Dans le champ Content affiché, saisissez les données à écrire dans la base de données. Les données d'entrée comprennent une colonne String délimitée. Dans cet exemple, les données d'entrée se présentent comme suit :

    1;Adam;32,Component Team,Developer
    2;Bill;28,Component Team,Tester
    3;Chris;30,Doc Team,Writer
    4;David;35,Doc Team,Leader
    5;Eddie;33,QA Team,Tester
  4. Double-cliquez sur le tMysqlOutput pour ouvrir sa vue Basic settings.

  5. Renseignez les champs Host, Port, Database, Username et Password avec les informations de connexion à la base de données.

  6. Renseignez le champ Table avec le nom de la table à écrire. Dans cet exemple, saisissez employee.

  7. Sélectionnez Drop table if exists and create dans la liste Action on table.

  8. Double-cliquez sur le premier tLogRow pour ouvrir sa vue Basic settings.

    Dans la zone Mode, sélectionnez Table (print values in cells of a table) pour une lisibilité optimale des résultats.

Extraire la colonne String délimitée de la table de la base de données en plusieurs colonnes

  1. Double-cliquez sur le tMysqlInput pour ouvrir sa vue Basic settings.

  2. Renseignez les champs Host, Port, Database, Username et Password avec les informations de connexion à la base de données MySQL.

  3. Cliquez sur le bouton [...] à côté du champ Edit schema et, dans la fenêtre qui s'ouvre, définissez le schéma du composant tMysqlInput de la même manière que celui du tMysqlOutput.

  4. Dans le champ Table Name, saisissez le nom de la table dans laquelle ont été écrites les données. Dans cet exemple, saisissez employee.

  5. Cliquez sur le bouton Guess Query afin de renseigner le champ Query avec l'instruction de requête SQL à exécuter sur la table spécifiée. Dans cet exemple, la requête se présente comme suit:

    SELECT 
      `employee`.`Id`, 
      `employee`.`Name`, 
      `employee`.`DelimitedField`
    FROM `employee`
  6. Double-cliquez sur le tExtractDelimitedFields pour ouvrir sa vue Basic settings.