Scénario : Extraire la structure d'un fichier XML et l'insérer dans les champs d'une base de données

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

Ce scénario est composé de trois composants et permet de lire un fichier XML, d'en extraire la structure puis de transmettre cette structure dans les champs d'une table.

  1. Glissez les composants tFileInputXml et tWriteXMLField de la famille Xml et un composant tMysqlOutput de la famille Database > Mysql de la Palette dans l'espace de modélisation graphique.

    Reliez ces composants via des liens de type Row > Main.

  2. Double-cliquez sur le composant tFileInputXml pour paramétrer ses propriétés dans l'onglet Basic settings.

  3. Dans la liste déroulante Property type, sélectionnez l'option Repository si la description de votre fichier est stockée dans une métadonnée du Repository. Si vous cliquez-déposez le composant directement à partir de la métadonnée, vous n'aurez pas besoin de modifier ses propriétés.

    Pour plus d'informations concernant le stockage des métadonnées dans la vue Repository consultez le Guide utilisateur du Studio Talend.

  4. Sinon, sélectionnez l'option Built-in et renseignez manuellement les champs suivants. Pour plus d'informations sur les propriétés du composant tFileInputXML, consultez tFileInputXML.

    Si vous avez sélectionné l'option Built-in, cliquez sur le bouton [...] à côté du champ Edit schema puis dans la boîte de dialogue, décrivez manuellement la structure de votre fichier.

  5. Dans le champ Look Xpath query, saisissez sur quel nœud du fichier la boucle doit être effectuée. Pour ce scénario, la boucle est effectuée sur le nœud customer. La colonne Column du tableau Mapping sera automatiquement renseignée avec la description du fichier que vous avez configuré.

    Dans la colonne Xpath query, saisissez entre guillemet le nœud du fichier XML contenant les données correspondant à la colonne de gauche.

  6. Cliquez sur le composant tWriteXMLField dans le Job designer puis cliquez sur la vue Component pour l'afficher et paramétrer les propriétés du composant :

  7. Cliquez sur le bouton [...] à côté du champ Edit schema et, dans la boîte de dialogue, ajoutez une ligne en cliquant sur le bouton [+].

  8. Dans cette ligne, saisissez le nom de la colonne de votre flux de sortie que vous souhaitez renseigner avec la structure du fichier XML dans la zone de droite, CustomerDetails dans ce scénario.

    Dans la colonne Type de cette ligne, indiquez qu'elle est de type String et dans la colonne Length, indiquez qu'elle est de longueur 255.

    Cliquez sur OK pour valider votre schéma de sortie et retourner aux propriétés du composant.

    Dans le champ Output Column, sélectionnez la colonne dans laquelle vous souhaitez insérer le contenu XML.

  9. Cliquez sur le bouton [...] du champ Configure Xml Tree pour ouvrir l'interface d'aide à la création de structures XML.

  10. Dans la zone Link Target, cliquez sur le nœud rootTag et renommez-le CustomerDetails.

    Dans la zone Linker source, sélectionnez CustomerName et CustomerAddress et glissez-les sur le nœud CustomerDetails. Une boîte de dialogue s'ouvre vous demandant quel type d'action vous souhaitez effectuer.

    Sélectionnez Create as sub-element of target node afin de créer des sous-éléments au nœud CustomerDetails.

    Cliquez-droit sur l'élément CustomerName et sélectionnez l'option Set As Loop Element dans le menu.

    Cliquez sur OK pour valider la structure XML que vous avez définie.

  11. Dans le Job designer, double-cliquez sur le composant tMysqlOutput pour paramétrer ses propriétés dans l'onglet Basic settings.

  12. Si votre schéma est déjà stocké sous le nœud Db Connections dans le Repository, sélectionnez l'option Repository dans le champ Schema puis choisissez les métadonnées appropriées à partir de la liste.

    Pour plus d'informations concernant le stockage des métadonnées dans la vue Repository consultez le Guide utilisateur du Studio Talend.

    Si vous n'avez encore défini aucun schéma, sélectionnez l'option Built-in et renseignez manuellement les informations de connexion et la structure des données dans un schéma. Pour plus d'informations sur les propriétés du composant tMysqlOutput, consultez tMysqlSCD.

    Dans le champ Table, saisissez le nom de la table dont les champs contiendront les données XML.

    Dans le champ Action on table, sélectionnez l'opération que vous souhaitez effectuer sur la table. Pour ce scénario, sélectionnez Create table pour créer la table.

    Dans le champ Action on data, sélectionnez l'opération que vous souhaitez effectuer sur les données. Pour ce scénario, laissez l'option Insert.

    Cliquez sur le bouton Sync columns pour récupérer le schéma du composant précédent. Vous pouvez cliquer sur le bouton [...] à côté du champ Edit schema pour consulter le schéma.

  13. Enregistrez le Job et appuyez sur F6 pour l'exécuter.

Chaque champ de la colonne CustomerDetails est renseignée avec la structure XML du fichier de départ : l'instruction de traitement XML <?xml version=""1.0"" encoding=""ISO-8859-15""?>, le premier nœud séparant chaque client <CustomerDetails> et les informations sur les clients <CustomerAddress> et <CustomerName>.