tFileInputPositional

Composants Talend Open Studio Guide de référence

EnrichVersion
6.3
EnrichProdName
Talend Open Studio for Data Quality
Talend Open Studio for Big Data
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Open Studio for Data Integration
task
Gouvernance de données
Qualité et préparation de données
Création et développement
EnrichPlatform
Studio Talend

Fonction

Le composant tFileInputPositional lit un fichier ou un flux de données ligne par ligne et extrait les champs selon un modèle (pattern).

Objectif

Le tFileInputPositional lit un fichier ou un flux de données ligne par ligne, sépare les champs tels que définis par le schéma et passe les données extraites au composant suivant via une connexion de type Row.

Propriétés du tFileInputPositional

Famille de 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 tFileInputPositional 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, par exemple la variable INPUT_STREAM du tFileFetch. 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.

Pour plus d'informations concernant les flux d'entrée, consultez Scénario 2 : Lire les données d'un fichier distant en mode stream.

 

Row separator

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

 

Use byte length as the cardinality

Cochez cette case pour permettre la prise en charge des caractères à deux octets dans ce composant. Pour cette fonction, JDK 1.6 est requis.

 

Customize

Cochez cette case pour personnaliser le format des données du fichier positionnel et renseignez les colonnes du tableau Formats.

Column : Sélectionnez la colonne que vous souhaitez personnaliser.

Size : Saisissez la taille correspondant à la colonne.

Padding char : saisissez, entre guillemets, le caractère de remplissage à supprimer du champ. Le caractère par défaut est un espace.

Alignment : Sélectionnez le paramètre d'alignement approprié.

 

Pattern

Longueurs séparées par des virgules, interprétées comme une chaîne de caractères entre guillemets. Vérifiez que les valeurs saisies dans ce champ sont cohérentes avec le schéma défini.

 

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.

 

Header

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

 

Footer

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

 

Limit

Nombre maximum de lignes à traiter. Si Limit = 0, aucune ligne n'est lue ou 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, cliquez sur No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

Pour bénéficier de la fonctionnalité de schéma dynamique, vous pouvez utiliser ce composant avec le tSetDynamicSchema.

 

 

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

Needed to process rows longer than 100 000 characters

Cochez cette case si les lignes à traiter dans le fichier d'entrée font plus de 100 000 caractères de long.

 

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

Thousands separator : configurez le séparateurs des milliers.

Decimal separator : configurez le séparateur pour les décimaux.

 

Trim all columns

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

 

Check columns to trim

Cochez la case devant le nom de chacune des colonnes dont vous souhaitez supprimer les espaces de début et de fin de champ.

 

Validate date

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

 

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.

 

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

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é. Ce composant 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).

Scénario : Transformer un fichier positionnel en fichier XML

Le scénario suivant construit un Job avec deux composants, qui a pour objectif de lire les données d'un fichier positionnel en entrée et de rendre des données sélectionnées en sortie (selon leur position) dans un fichier XML.

Contract       CustomerRef    InsuranceNr
00001          8200           50330      
00001          8201           50331      
00002          8202           50332      
00002          8203           50333      

Déposer et relier les composants

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

  2. Cliquez-déposez un composant tFileOutputXML. Ce fichier recevra les références de manière structurée.

  3. Cliquez-droit sur le composant tFileInputPositional et sélectionnez une connexion Row > Main. Glissez cette connexion vers le composant tFileOutputXML et relâchez la souris lorsque le symbole de prise de courant apparaît.

Configurer les données d'entrée

  1. Sélectionnez le composant tFileInputPositional pour afficher sa vue Basic settings et définir ses propriétés.

  2. Les propriétés de ce Job sont de type Built-in pour ce scénario.

    Par conséquent, les informations de propriétés sont renseignées pour ce Job seulement et ne peuvent être réutilisées pour un autre Job, contrairement à des propriétés de type Repository.

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

  4. Puis définissez le séparateur de lignes (Row separator) permettant d'identifier la fin de la ligne : le retour chariot par défaut.

  5. Si nécessaire, cochez la case Use byte length as the cardinality pour permettre la prise en charge des caractères à deux octets.

  6. Puis dans le champ Pattern définissant les champs d'une ligne. Le pattern est une série de longueurs correspondant aux valeurs de champs du fichier en entrée. Les valeurs doivent être saisies entre guillemets simples et séparées par une virgule. Veillez à ce que les valeurs saisies correspondent à la longueur des champs définis dans le schéma.

  7. Renseignez les champs d'en-tête (Header), de pied de page (Footer) et de limite (Limit) selon la structure de votre fichier d'entrée et selon vos besoins. Dans ce scénario, ignorez la première ligne lors de la lecture du fichier d'entrée en saisissant 1 dans le champ Header et laissez les autres champs tels qu'ils sont.

  8. Dans la liste Schema, sélectionnez Repository si le schéma d'entrée est stocké dans le Repository. Dans ce scénario, sélectionnez Built-In pour définir les données à transmettre au composant tFileOutputXML.

  9. Vous pouvez sélectionner et/ou modifier le schéma via la fonction Edit Schema. Pour ce schéma, définissez trois colonnes, respectivement Contracts, CustomerRef et InsuranceNr correspondant aux trois valeurs de longueurs définies. Cliquez sur OK pour fermer la boîte de dialogue [Schema] et propager les modifications.

Configurer les données de sortie

  1. Double-cliquez sur le composant tFileOutputXML afin d'afficher sa vue Basic settings et configurer ses propriétés de base.

  2. Saisissez le chemin d'accès au fichier XML de sortie.

  3. Définissez la balise de la ligne (Row tag) qui définit chaque ligne. Dans ce cas, la balise est ContractRef.

  4. Cliquez sur le bouton [+] à côté du champ Edit Schema pour voir la structure de données, puis cliquez sur Sync columns pour récupérer la structure des données du composant d'entrée.

  5. Cliquez sur l'onglet Advanced settings afin de configurer les paramètres avancées de la sortie XML.

  6. Cliquez sur le bouton [+] pour ajouter une ligne dans la table Root tags et saisissez un nom de balise (ou plusieurs) pour encadrer la structure XML de sortie, ContractsList dans ce scénario.

  7. Configurez les paramètres dans la table Output format si nécessaire. Par exemple, cochez la case As attribute d'une colonne si vous souhaitez utiliser son nom et sa valeur comme attribut pour l'élément XML parent. Décochez la case Use schema colum name pour que la colonne réutilise le libellé de la colonne d'entrée comme libellé de la balise. Dans ce scénario, laissez les paramètres par défaut.

  8. Pour regrouper les lignes de sortie selon le numéro de contrat, cochez la case Use dynamic grouping, ajoutez une ligne dans la table Group by, sélectionnez Contract dans la liste Column et saisissez un attribut pour cette colonne dans le champ Attribute label.

  9. Laissez les autres paramètres tels qu'ils sont.

Sauvegarder et exécuter le Job

  1. Appuyez sur les touches Ctrl+S afin de sauvegarder votre Job et vous assurer que tous les paramètres sont bien pris en compte.

  2. Appuyez sur F6 ou cliquez sur l'onglet Run puis sur le bouton Run pour exécuter le Job.

    Le fichier est lu ligne par ligne selon les longueurs définies précédemment dans le champ Pattern et écrit en tant que fichier XML, comme défini dans les paramètres de sortie. Vous pouvez l'ouvrir dans n'importe quel éditeur XML standard.