tFileInputXML

Composants Talend Open Studio Guide de référence

EnrichVersion
6.3
EnrichProdName
Talend Open Studio for Big Data
Talend Open Studio for ESB
Talend Open Studio for Data Quality
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 tFileInputXML lit un fichier XML structuré ou un flux de données et extrait les données ligne par ligne.

Objectif

Ce composant lit un fichier XML structuré ou un flux de données ligne par ligne pour le scinder en champs et envoie les champs tel que définis dans le schéma au composant suivant du Job via une connexion Row.

Propriétés du tFileInputXML

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.

 

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

 

 

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.

 

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 tFileInputXML via la variable représentative correspondante.

Cette variable peut être prédéfinie dans votre Studio Talend 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 flux d'entrée, consultez Scénario 2 : Lire les données d'un fichier distant en mode stream.

 

Loop XPath query

Nœud de l'arborescence sur lequel la boucle est basée.

 

Mapping

Column : Colonnes à mapper. Elles reflètent le schéma défini par le champ Schema type.

XPath Query : Saisissez les champs à extraire de l'entrée structurée.

Get nodes : Cochez cette case pour récupérer le contenu XML de tous les nœuds courants spécifiés dans le champ Xpath Query, ou cochez la case correspondant à un nœud spécifique pour ne récupérer que le contenu du nœud sélectionné. Ces nœuds sont importants lorsque le flux de sortie de ce composant doit utiliser la structure XML, par exemple pour le type de données Document.

Pour plus d'informations, consultez le Guide utilisateur du Studio Talend.

Note

L'option Get Nodes fonctionne en mode DOM4j et SAX, cependant avec le mode SAX, les espaces de nommage ne sont pas supportés. Pour plus d'informations concernant les modes DOM4j et SAX, consultez les propriétés de la liste Generation mode de l'onglet Advanced settings.

 

Limit

Nombre maximum de lignes à traiter. Si Limit = 0, aucune ligne n'est lue ou traitée. Si -1, toutes les lignes sont lues ou traitées, quelque soit le nombre.

 

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.

Advanced settings

Ignore DTD file

Cochez cette case afin d'ignorer le fichier DTD indiqué dans le fichier XML traité.

Advanced separator (for number)

Cochez cette option pour modifier les séparateurs utilisés pour les nombres :

Thousands separator : définissez le séparateur utilisé pour les milliers.

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

 

Ignore the namespaces

Cochez cette case pour ignorer les espaces de noms.

Generate a temporary file : renseignez le chemin d'accès et le nom du fichier temporaire XML.

 

Use Separator for mode Xerces

Cochez cette case pour séparer les valeurs des nœuds fils concaténées.

Note

Ce champ ne peut être utilisé que si vous avez sélectionné le mode Xerces dans le champ Generation mode.

Le champ Field separator apparaît : définissez le séparateur à utiliser pour séparer les valeurs

 

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.

 

Generation mode

Sélectionnez le mode de génération correspondant à votre mémoire disponible. Les modes disponibles sont :

  • Lent et consommateur de mémoire (Slow and memory-consuming - Dom4J).

    Note

    Cette option vous permet d'utiliser Dom4J pour traiter des fichiers XML très complexes.

  • Consommateur de mémoire (Memory-consuming (Xerces))

  • Rapide et peu consommateur de mémoire (Fast with low memory consumption (SAX))

 

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 du Job, aussi bien au niveau du Job 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 traitées. 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 doit être utilisé en tant que composant d'entrée. Il permet de créer un flux de données XML à 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.

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 1 : Extraire des adresses XML

Ce scénario est constitué de deux composants : un composant tFileInputXML qui extrait des données du fichier XML contenant des adresses et un composant tLogRow qui affiche le résultat de cette opération dans la console Run via le composant tLogRow.

  1. Sélectionnez un composant tFileInputXML dans le dossier File de la Palette. Cliquez et déposez également un composant tLogRow de la famille Logs & Errors.

  2. Connectez les deux composants à l'aide d'un lien Row > Main.

  3. Dans l'onglet Basic settings du composant tFileInputXML, définissez ses propriétés.

  4. Le fichier XML contenant les adresses a été préalablement défini dans la zone Metadata, par conséquent récupérez ses propriétés en sélectionnant Repository dans Property type. De cette manière, les propriétés sont automatiquement récupérées et le reste des champs est renseigné (à l'exception du Schéma). Pour plus d'informations concernant l'assistant de création de métadonnées, consultez le Guide utilisateur du Studio Talend.

  5. De la même manière, sélectionnez le schéma approprié dans la liste de métadonnées du Repository. Cliquez sur Edit schema si vous souhaitez modifier le schéma chargé.

  6. Dans le champ Filename, indiquez le fichier structuré d'entrée.

  7. Dans le champ Loop XPath query, modifiez le nœud de boucle si nécessaire.

  8. Dans la table de Mapping, renseignez les champs à extraire et à afficher dans la sortie.

  9. Si le fichier est volumineux, définissez un nombre de ligne maximum à traiter dans le champ Limit.

  10. Saisissez l'encodage si nécessaire, puis double-cliquez sur tLogRow pour définir le caractère séparateur.

  11. Enfin, appuyez sur F6 ou cliquez sur le bouton Run dans la vue Run pour exécuter le Job. Dans la console, les champs définis sont extraits du fichier XML structuré et sont affichés.

Scénario 2 : Extraire les données XML erronées dans un flux de rejet

Ce scénario décrit un Job à trois composants qui permet de lire un fichier XML et :

  1. d'une part, de retourner les données XML correctes dans un autre fichier XML,

  2. et d'autre part, d'afficher dans la console de log les données erronées dont le type ne correspond pas au type défini.

  1. A partir de la Palette, glissez les composants tFileInputXML, tFileOutputXML et tLogRow dans l'espace de modélisation.

    Cliquez-droit sur le composant tFileInputXML, sélectionnez Row > Main dans le menu contextuel, et cliquez sur le composant tFileOutputXML pour créer le lien.

    Cliquez-droit sur le composant tFileInputXML, sélectionnez Row > Reject dans le menu contextuel, et cliquez sur le composant tLogRow pour créer le lien de rejet.

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

  3. Dans la liste Property Type, sélectionnez Repository et cliquez sur le bouton [...] pour afficher la boîte de dialogue [Repository Content] à partir de laquelle vous pouvez sélectionner la métadonnée relative à votre fichier si vous l'avez stocké sous le nœud File xml du répertoire Metadata du Repository. Les champs suivants seront renseignés automatiquement. Sinon, sélectionnez le mode Built-in et renseignez ces champs manuellement.

    Pour plus d'informations sur le stockage des schémas de métadonnées dans le Repository, consultez le Guide utilisateur du Studio Talend.

  4. Dans le champ Schema, sélectionnez Repository et cliquez sur le bouton [...] pour sélectionner le schéma décrivant la structure de votre fichier si vous l'avez stocké dans le Repository. Sinon, cliquez sur le bouton [...] à côté du champ Edit schema et définissez le schéma manuellement.

    Dans cet exemple, le schéma comprend cinq colonnes : id, CustomerName, CustomerAddress, idState et id2.

  5. Cliquez sur le bouton [...] à côté du champ Filename et indiquez le chemin d'accès au fichier XML.

  6. Dans le champ Loop XPath query, saisissez, entre guillemets, le chemin du nœud sur lequel effectuer une boucle.

    Dans la table Mapping, la colonne Column est automatiquement renseignée avec les colonnes définies dans le schéma.

    Dans la colonne XPath query, saisissez entre guillemets le nœud du fichier XML contenant les données que vous voulez extraire dans la colonne correspondante.

  7. Dans le champ Limit, saisissez le nombre de lignes à traiter. Dans ce scénario, l'objectif est de traiter les 10 premières lignes.

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

  9. Cliquez sur le bouton [...] à côté du champ File Name pour sélectionner le répertoire de destination du fichier et saisissez le nom du fichier. Dans ce scénario, appelez le fichier customer_data.xml.

    Dans le champ Row tag, saisissez entre guillemets le nom que vous souhaitez donner à la balise contenant les données.

    Cliquez sur Edit schema et assurez-vous que le schéma est récupéré du schéma d'entrée. Si nécessaire, cliquez sur Sync columns pour récupérer le schéma du composant précédent.

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

    Cliquez sur Edit schema et assurez-vous que le schéma est récupéré du schéma d'entrée. Si nécessaire, cliquez sur Sync columns pour récupérer le schéma du composant précédent.

    Dans la zone Mode, sélectionnez l'option Vertical.

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

Le fichier customer_data.xml contenant les données correctes est créé et les données erronées sont affichées dans la console de la vue Run.

Le tFileInputXML dans des Jobs Map/Reduce Talend

Avertissement

Les informations contenues dans cette section concernent uniquement les utilisateurs ayant souscrit à l'une des solutions Big Data de Talend et ne sont pas applicables aux utilisateurs de Talend Open Studio for Big Data.

Dans un Job Map/Reduce Talend, le tFileInputXML, ainsi que le Job complet utilisant ce composant, génère du code Map/Reduce natif. Cette section présente les propriétés spécifiques du tFileInputXML lorsqu'il est utilisé dans un Job Map/Reduce. Pour plus d'informations concernant un Job Map/Reduce Talend, consultez le Guide de prise en main de Talend Open Studio for Big Data.

Famille du composant

MapReduce/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.

Les propriétés sont stockées centralement sous le nœud Hadoop Cluster de la vue Repository.

Les champs suivants sont alors pré-remplis à l'aide des données collectées.

Pour plus d'informations concernant le nœud Hadoop Cluster, consultez le Guide de prise en main de Talend Open Studio for Big Data.

 

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

 

 

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.

 

Folder/File

Parcourez votre système ou saisissez le chemin d'accès aux données à utiliser dans le système de fichiers.

Si le chemin d'accès défini pointe vers un dossier, ce composant lit tous les fichiers stockés dans le dossier, par exemple /user/talend/in. Si les sous-dossiers existent, ils sont automatiquement ignorés, sauf si vous définissez la propriété mapreduce.input.fileinputformat.input.dir.recursive à true dans la table Hadoop properties, dans l'onglet Hadoop configuration.

Si vous souhaitez spécifier plusieurs fichiers ou dossiers dans ce champ, séparez les chemins à l'aide d'une virgule (,).

Si le fichier à lire est un fichier compressé, saisissez son nom ainsi que son extension. Le tHDFSInput décompresse le fichier automatiquement à l'exécution. Les formats de compression, ainsi que les extensions correspondantes, sont :

  • DEFLATE : *.deflate

  • gzip : *.gz

  • bzip2 : *.bz2

  • LZO : *.lzo

Assurez-vous que la connexion à la distribution Hadoop utilisée est correctement configurée dans l'onglet Hadoop configuration de la vue Run.

 

Element to extract

Saisissez l'élément duquel lire le contenu ainsi que les éléments fils des données XML d'entrée.

L'élément défini dans ce champ est utilisé au nœud racine d'un XPath spécifié dans le composant. Cet élément vous permet de définir les unités atomiques des données XML à utiliser afin que, quelle que soit la taille du document original ou quel que soit l'endroit où l'entrée est divisée, les lignes dans l'élément puissent correctement être distribuées aux tâches du mappeur.

Tout contenu en dehors de cet élément est ignoré et les éléments fils de cet élément ne peuvent contenir l'élément lui-même.

 

Loop XPath query

Nœud de l'arborescence sur lequel se base la boucle.

Sa racine est l'élément défini dans le champ Element to extract.

 

Mapping

Column : colonnes à mapper. Elles reflètent le schéma comme défini dans le champ Schema type.

XPath Query : saisissez les champs à extraire de l'entrée structurée.

Get nodes : cochez cette case pour récupérer le contenu XML de tous les nœuds courants spécifiés dans la liste Xpath query, ou cochez la case à côté des nœuds XML spécifiques afin de récupérer uniquement le contenu des nœuds sélectionnés. Ces nœuds sont importants lorsque le flux d'entrée de ce composant doit utiliser la structure XML, par exemple le type de données Document.

Pour plus d'informations concernant le type Document, consultez le Guide utilisateur de Studio Talend.

 

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.

Advanced settings

Ignore the namespaces

Cochez cette case pour ignorer les espaces de nommage.

 

Custom encoding

Il est possible de rencontrer des problèmes d'encodage lorsque vous traitez les données stockées. Dans ce cas, cochez cette case pour afficher la liste 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.

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

Compte tenu des caractéristiques du framework MapReduce, la version Map/Reduce du tFileInputXML ne supporte pas les parsers XML suivants : les parsers basés DOM, les parsers basés SAX et les parsers basés sur des flux.

Dans un Job Talend Map/Reduce, ce composant est utilisé comme composant de début et requiert un composant de transformation comme lien de sortie. Les autres composants utilisés avec lui doivent également être des composants Map/Reduce. Ils génèrent nativement du code Map/Reduce pouvant être directement exécuté dans Hadoop.

Once a Map/Reduce Job is opened in the workspace, tFileInputXML as well as the MapReduce family appears in the Palette of the Studio.

Hadoop Connection

Vous devez utiliser l'onglet Hadoop Configuration de la vue Run afin de définir la connexion à une distribution Hadoop donnée pour le Job complet.

Cette connexion fonctionne uniquement pour le Job dans lequel vous l'avez définie.