Scénario 2 : Créer un flux Lookup pour effectuer une jointure sur des données complémentaires - 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

Basé sur le scénario précédent, ce scénario explique comment utiliser un flux Lookup (de référence) afin d'effectuer une jointure sur des données souhaitées dans le fichier XML USState.xml du flux principal. Un autre tFileInputXML est ajouté au Job pour charger des données à partir du fichier lookup USState.xml vers le composant tXMLMap de la famille Processing.

Le contenu du fichier XML USState.xml se présentent comme suit :

<?xml version="1.0" encoding="ISO-8859-15"?>
<USStates>
  <States>
    <idState>1</idState>
    <LabelState>Alabama</LabelState>
  </States> 
  <States>
    <idState>2</idState>
    <LabelState>Connecticut</LabelState>
  </States>
  <States>
    <idState>3</idState>
    <LabelState>Ohio</LabelState>
  </States>  
  <States>
    <idState>4</idState>
    <LabelState>Wyoming</LabelState>
  </States>
    <States>
    <idState>5</idState>
    <LabelState>Hawaii</LabelState>
  </States>
</USStates>

Ajouter et relier un autre composant d'entrée

  1. Dans votre Studio, ouvrez le Job utilisé dans le scénario précédent pour l'afficher dans l'espace de modélisation graphique. Nommez ce composant USStates pour mieux identifier sa fonction.

  2. Ajoutez un autre tFileInputXML au Job en saisissant son nom dans l'espace de modélisation graphique ou en le déposant depuis la Palette.

  3. Reliez le tFileInputXML nommé USStates au tXMLMap à l'aide d'un lien Row > Main. La connexion est automatiquement modifiée en connexion Lookup.

Configurer le flux de référence

  1. Double-cliquez sur le composant tFileInputXML nommé USStates pour ouvrir sa vue Basic settings.

  2. Cliquez sur le bouton [...] à côté du champ Edit schema et dans la boîte de dialogue [Schema], définissez le schéma en ajoutant une colonne USState de type Document.

  3. Cliquez sur OK pour valider les modifications et fermer la boîte de dialogue. Une ligne est automatiquement ajoutée à la table Mapping.

  4. Dans le champ File name/Stream, parcourez votre système ou saisissez entre guillemets doubles le chemin d'accès au fichier XML source contenant les données complémentaires. Dans ce scénario, le fichier est E:/USStates.xml.

  5. Dans le champ Loop XPath query, saisissez une expression XPath entre guillemets doubles pour spécifier le nœud sur lequel se base la boucle. Dans ce scénario, saisissez /, ce qui signifie effectuer une requête de recherche depuis la racine.

  6. Dans la colonne XPath query de la table Mapping, saisissez entre guillemets doubles les champs à interroger. Dans ce scénario, saisissez ., ce qui signifie que tous les champs du nœud (racine) sont extraits.

  7. Dans la colonne Get Nodes de la table Mapping, cochez la case. Cela va récupérer la structure XML des données de type Document.

Configurer le tXMLMap pour la transformation

  1. Double-cliquez sur le composant tXMLMap pour ouvrir le Map Editor.

    Notez que la zone d'entrée est déjà remplie par les tables d'entrée définies et que la table supérieure est la table principale d'entrée (flux Main).

  2. Dans la table d'entrée row2, cliquez-droit sur le nœud USState et, dans le menu contextuel, sélectionnez Import From File. Dans la boîte de dialogue qui s'ouvre, parcourez votre système jusqu'au fichier XML source duquel importer la structure XML utilisée par les donnée reçues par le tXMLMap. Dans ce scénario, le fichier XML source est USState.xml, le fichier des données d'entrée du tFileInputXML nommé USStates.

  3. Dans l'arborescence XML importée, cliquez-droit sur le nœud States et, dans le menu contextuel, sélectionnez As loop element afin de le définir comme élément de boucle.

  4. Dans la table principale d'entrée row1, cliquez sur le nœud idState et déposez-le, dans la colonne Exp.key de la ligne du nœud idState, dans la table lookup row2. Cela crée une jointure entre les deux tables d'entrée sur les données idState, parmi lesquelles le nœud idState du flux principal fournit la clé de référence (lookup key).

  5. Dans la table lookup d'entrée row2, cliquez sur le nœud LabelState et déposez-le sur la table de sortie Customer. Une boîte de dialogue s'ouvre.

  6. Dans cette boîte de dialogue, sélectionnez Create as sub-element of target node puis cliquez sur OK. Un sous-élément LabelState est ajouté dans l'arborescence XML de sortie et mappé avec le nœud LabelState de la table lookup.

  7. Cliquez sur OK pour valider le mapping et fermer le Map Editor.

Sauvegarder et exécuter le Job

  1. Appuyez sur les touches Ctrl+S afin de sauvegarder votre Job.

  2. Appuyez sur F6 pour exécuter le Job.

    Comme affiché ci-dessus, les noms des États des États-Unis du fichier lookup dont les ID correspondent à ceux du fichier d'entrée principal sont ajoutés au flux de données et les informations combinées sont affichées dans la console.

Un tutoriel étape par étape relatif aux jointures est disponible sur le site de la communauté technique Talend. Pour plus d'informations, consultez http://www.talendforge.org/tutorials/tutorial.php?language=french&idTuto=101.