tFileInputDelimited - 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 tFileInputDelimited lit un fichier ou un flux de données ligne par ligne avec des champs simples séparés.

Objectif

Ce composant lit un fichier ou un flux de données ligne par ligne, afin de le diviser en champs et d'envoyer ses champs au composant suivant, comme défini par le schéma, via une connexion Row.

Propriétés du tFileInputDelimited

Famille du composant

File/Input

 

Basic settings

Property type

Peut être Built-in ou Repository.

 

 

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

 

 

- Repository : Sélectionnez le fichier dans lequel sont stockées les propriétés du composant.

 

File Name/Stream

File name : Chemin d'accès et nom du fichier à traiter.

Stream : Flux de données à traiter. Les données doivent préalablement être mises en flux afin d'être récupérées par le tFileInputDelimited via la variable représentative correspondante.

Cette variable peut être prédéfinie dans votre Studio ou fournie par le contexte ou les composants utilisé(s) avec ce composant. Sinon, vous pouvez la définir manuellement et l'utiliser selon votre Job, par exemple à l'aide d'un tJava ou d'un tJavaFlex.

Afin d'éviter les désagréments de la saisie, vous pouvez sélectionner la variable qui vous intéresse dans la liste d'autocomplétion (Ctrl+Espace) afin de remplir le champ, si cette variable a été correctement définie.

Pour plus d'informations concernant les variables disponibles, consultez le Guide utilisateur du Studio Talend.

 

Row separator

Saisissez le séparateur à utiliser pour identifier la fin des lignes.

 

Field separator

Saisissez un caractère, une chaîne de caractères ou une expression régulière pour séparer les champs des données transférées.

 

CSV options

Cochez cette case pour inclure des paramètres CSV spécifiques comme Escape char et Text enclosure.

 

Header

Saisissez le nombre de lignes à ignorer au début du fichier.

 

Footer

Nombre de lignes à ignorer à la fin d'un fichier.

 

Limit

Nombre maximum de lignes à traiter. Si Limit = 0, aucune ligne n'est lue ni traitée.

 

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].

Notez que, si la valeur d'entrée d'un champ primitif non nullable est nulle, la ligne de données comprenant ce champ sera rejetée.

 

 

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.

 

Skip empty rows

Cochez cette case pour ignorer les lignes vides.

 

Uncompress as zip file

Cochez cette case pour décompresser le fichier d'entrée.

 

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.

Pour capturer l'exception FileNotFoundException, vous devez cocher cette case.

Advanced settings

Advanced separator (for numbers)

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 (.).

 

Extract lines at random

Cochez cette case pour définir le nombre de lignes à extraire de façon aléatoire.

 

Encoding

Sélectionnez l'encodage à partir de la liste ou sélectionnez Custom et définissez-le manuellement. Ce champ est obligatoire pour la gestion de données de bases de données.

 

Trim all column

Cochez cette case pour supprimer les espaces en début et en fin de champ dans les colonnes sélectionnées. Lorsque cette case est cochée, la table Check column to trim est affichée, ce qui vous permet de sélectionner les colonnes desquelles vous souhaitez enlever les espaces en début et en fin de champ.

 

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.

 

Check date

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

 

Check columns to trim

Cette table est automatiquement renseignée avec le schéma utilisé. Cochez la (les) case(s) correspondant à la (aux) colonne(s) dont vous souhaitez supprimer les espaces et début et en fin de champ.

 

Split row before field

Cochez cette case pour séparer les lignes avant de séparer les champs.

 

Permit hexadecimal (0xNNN) or octal (0NNNN) for numeric types

Cochez cette case si l'un de vos types numériques (long, integer, short, ou byte), doit être parsé depuis une chaîne de caractères hexadécimale ou octale.

Cochez cette case à côté de la ou des colonne(s) d'intérêt pour transformer la chaîne de caractères d'entrée de chaque colonne sélectionnée en un type de données qui est celui défini dans le schéma.

Cochez la case Permit hexadecimal or octal pour sélectionner toutes les colonnes.

Cette table apparaît uniquement lorsque la case Permit hexadecimal (0xNNN) or octal (0NNNN) for numeric types est cochée.

 

tStatCatcher Statistics

Cochez cette case pour collecter les données de log au niveau du composant.

Global Variables

NB_LINE : nombre de lignes traitées. Cette variable est une variable After et retourne un entier.

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

Utilisez ce composant pour lire un fichier et séparer les champs à l'aide du séparateur spécifié. Il permet de créer un flux de données à l'aide d'un lien Row > Main, ainsi que 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. Pour un exemple d'utilisation de ces deux liens, consultez Scénario 2 : Extraire les données XML erronées dans un flux de rejet du composant tFileInputXML.

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).

Limitation

Du fait d'une incompatibilité de licence, un ou plusieurs Jar requis pour utiliser ce composant ne sont pas fournis. Vous pouvez installer les Jar manquants pour ce composant en cliquant sur le bouton Install dans l'onglet Component. Vous pouvez également trouver les Jar manquants et les ajouter dans l'onglet Modules de la perspective Integration de votre studio. Pour plus d'informations, consultez la page https://help.talend.com/display/KB/How+to+install+external+modules+in+the+Talend+products (en anglais) ou la section décrivant comment configurer le studio, dans le Guide d'installation et de migration Talend.

Scénario 1 : Afficher le contenu d'un fichier délimité

Le scénario suivant est un Job de deux composants ayant pour objectif de lire les lignes d'un fichier, de sélectionner des données délimitées et d'afficher la sortie dans la console de la vue Run.

Déposer et relier les composants

  1. Cliquez et déposez un composant tFileInputDelimited et un composant tLogRow de la Palette dans l'espace de modélisation.

  2. Cliquez-droit sur le composant tFileInputDelimited et sélectionnez Row > Main dans le menu contextuel. Puis glissez ce lien vers le tLogRow et relâchez lorsque le symbole de prise de courant apparaît.

Configurer les composants

  1. Sélectionnez le composant tFileInputDelimited à nouveau et définissez ses propriétés dans l'onglet Basic settings :

  2. Renseignez le chemin d'accès au fichier dans le champ File Name. Ce champ est obligatoire.

    Avertissement

    Si le chemin d'accès du fichier contient des caractères accentués, vous obtiendrez un message d'erreur lors de l'exécution du Job. Pour plus d'informations concernant la procédure à suivre lorsque les accents ne sont pas supportés, consultez le Guide d'installation et de migration Talend.

  3. Définissez le séparateur de lignes dans le champ Row separator afin d'identifier la fin d'une ligne. Puis définissez le séparateur de champs dans Field separator pour délimiter les champs composant une ligne.

  4. Dans ce scénario, l'en-tête (Header) et le pied de page (Footer) n'ont pas besoin d'être définis. Et la limite de lignes lues (Limit ) est de 50 pour cet exemple.

  5. Sélectionnez soit local (Built-in) soit distant (Repository) comme Schema pour définir les données qui passent par le composant tLogRow.

  6. Vous pouvez charger et/ou éditer le schéma à l'aide de la fonction Edit Schema.

    Voir également le Guide utilisateur du Studio Talend.

  7. Saisissez l'encodage utilisé dans le fichier d'entrée. Ce paramètre permet d'assurer l'homogénéité de l'encodage dans tous les fichiers d'entrée et de sortie.

  8. Sélectionnez le composant tLogRow et définissez le séparateur de champs de la sortie affichée. Voir également Propriétés du tLogRow.

  9. Cochez la case Print schema column name in front of each value pour récupérer le libellé des colonnes dans la sortie affichée.

Sauvegarder et exécuter le Job

  1. Appuyez sur Ctrl+S pour sauvegarder votre Job.

  2. Cliquez sur la vue Run, puis cliquez sur Run pour exécuter le Job.

    Le fichier est lu ligne par ligne et les champs extraits sont affichés dans la console, tel que défini dans les propriétés du composant (dans l'onglet Basic settings).

La console affiche l'en-tête suivi des données lues par le Job.

Scénario 2 : Lire les données d'un fichier distant en mode stream

Le scénario suivant illustre un Job à quatre composants ayant pour objectif de récupérer les données d'un fichier volumineux quasiment aussitôt qu'elles ne sont lues afin d'éviter l'attente du téléchargement de l'ensemble du fichier de données, et les affichent dans la console de la vue Run.

Déposer et relier les composants

  1. Déposez les composants suivants dans l'espace de modélisation : tFileFetch, tSleep, tFileInputDelimited, et tLogRow.

  2. Reliez les composants tSleep et tFileInputDelimited via un lien de type Trigger > OnComponentOk et reliez les composants tFileInputDelimited et tLogRow via un lien de type Row > Main.

Configurer les composants

  1. Double-cliquez sur le composant tFileFetch pour afficher l'onglet Basic settings de la vue Component et paramétrer ses propriétés.

  2. Dans la liste Protocol, sélectionnez le type de protocole vous permettant d'accéder au serveur sur lequel est stocké votre fichier de données.

  3. Dans le champ URI, saisissez l'URI d'accès au serveur sur lequel est stocké votre fichier.

  4. Cochez la case Use cache to save the resource pour mettre les données de votre fichier en mémoire cache. Cette option permet d'utiliser le mode stream pour transférer les données du fichier.

  5. A partir de l'espace de modélisation, double-cliquez sur le composant tSleep pour afficher l'onglet Basic settings de la vue Component et paramétrer ses propriétés.

    Par défaut, le champ Pause du composant tSleep correspond à 1 seconde. Laissez ce paramètre par défaut. Il met le deuxième Job en pause afin de laisser le temps au premier Job contenant le tFileFetch de lire les données du fichier.

  6. A partir de l'espace de modélisation, double-cliquez sur le composant tFileInputDelimited pour afficher l'onglet Basic settings de la vue Component et paramétrer ses propriétés.

  7. Dans le champ File name/Stream :

    - Effacez le contenu par défaut.

    - Faites un Ctrl+Espace pour faire apparaître la liste des variables disponibles à partir de ce composant.

    - Sélectionnez la variable tFileFetch_1_INPUT_STREAM dans la liste d'auto-complétion, la variable suivante apparaît dans le champ Filename : ((java.io.InputStream)globalMap.get("tFileFetch_1_INPUT_STREAM")).

  8. Dans la liste Schema, sélectionnez Built-in et cliquez sur le bouton [...] à côté du champ Edit schema pour décrire la structure des données du fichier que vous souhaitez récupérer. Le fichier US_Employees est composé de six colonnes : ID, Employee, Age, Address, State, EntryDate.

    Cliquez sur le bouton [+] pour ajouter les six colonnes et paramétrez-les comme indiqué sur la capture d'écran ci-dessus. Cliquez sur OK.

  9. A partir de l'espace de modélisation, double-cliquez sur le composant tLogRow pour afficher l'onglet Basic settings de la vue Component et cliquez sur Sync Columns pour vous assurer que le schéma est récupéré du composant précédent.

Configurer l'exécution du Job et exécuter le Job

  1. A partir de l'espace de modélisation, cliquez sur la vue Job et sur l'onglet Extra.

  2. Cochez la case Multi thread execution afin d'exécuter les deux Jobs en parallèle, sachant que le deuxième Job a un retard d'une seconde par rapport au premier comme défini dans le tSleep. Cette option permet donc de récupérer les données grâce au tFileDelimited quasiment dès leur lecture par le tFileFetch.

  3. Enregistrez votre Job et appuyez sur F6 pour l'exécuter.

Les données sont affichées dans la console dès leur lecture.