Configurer les composants
Procédure
-
Double-cliquez ensuite sur le composant tMap pour ouvrir l'éditeur graphique de mapping.
-
La table Output (qui s'est créée automatiquement quand vous avez lié le tMap au tMysqlOutput) sera composée des lignes concordantes du flux de référence (large_data_volume) et du flux principal (people_age).
Sélectionnez les lignes du flux principal que vous voulez passer en sortie et faites-les glisser vers la table de sortie (dans le coin supérieur droit de l'éditeur de mapping) : elles y seront copiées.Dans cet exemple, la sélection des lignes du flux principal inclut les champs suivants : id, first_name, last_Name et age.Dans la table de référence, la colonne city est sélectionnée.Faites glisser les colonnes sélectionnées des tables d'entrée (people et large_volume) vers la table de sortie.
-
Créez maintenant la jointure entre le flux principal et le flux de référence.
Sélectionnez la colonne age dans la table du flux principal (en haut) et faites-la glisser vers la colonne age de la table du flux de référence (large_volume dans cet exemple).L'icône d'une clé apparaît à côté de l'expression liée dans la table de référence. La jointure est maintenant établie.
-
Cliquez sur le bouton tMap Settings, puis sur le bouton [...] correspondant à Lookup Model et sélectionnez l'option Reload at each row dans la boîte de dialogue Options pour que la base de référence soit chargée à nouveau pour chaque nouvelle ligne traitée.
- De la même manière, paramétrez Match Model comme All matches dans la table de référence pour récupérer dans le flux de sortie toutes les occurrences de age qui correspondent.
-
Implémentez ensuite le filtre, établi à partir de la colonne age, dans la table de référence. Le champ GlobalMapKey est créé automatiquement lorsque vous sélectionnez l'option Reload at each row. Vous pouvez donc utiliser cette expression pour filtrer les données de référence de manière dynamique, pour que seules les informations pertinentes soient chargées avec le flux principal.
Comme précisé dans l'introduction de ce scénario, le flux de données principal contient uniquement les personnes dont l'âge est de 40 ou 60. Pour éviter de charger toutes les lignes de la table de référence, dont les âges sont différents de 40 et 60, vous pouvez utiliser la valeur âge du flux principal comme variable globale pour alimenter le filtre de référence.
- Glissez la colonne Age de la table de flux principal vers le champ Expr. dans la table de référence.
-
Renseignez ensuite le nom de la variable dans le champ globalMap Key, en utilisant une expression. Dans cet exemple : "people.Age"
Cliquez sur le bouton OK pour enregistrer les paramètres de mapping et retourner dans l'espace de modélisation graphique.
-
Pour terminer l'implémentation du filtrage dynamique du flux de référence, vous devez maintenant ajouter une clause WHERE à la requête de la base de données d'entrée.
- A la fin du champ Query, juste après la commande Select, saisissez la clause de type WHERE suivante : WHERE AGE ='"+((Integer)globalMap.get("people.Age"))+"'".
- Assurez-vous que le type correspond à la colonne utilisée comme variable. Dans cet exemple, la donnée Age est du type Integer. Veillez aussi à utiliser la variable de la manière dont vous l'avez paramétrée dans le champ globalMap key de l'éditeur de mapping.
-
Double-cliquez sur le composant tMysqlOutput pour définir ses propriétés.
-
Cochez la case Use an existing connection afin d'utiliser la connexion créée.
Définissez le nom de la table cible et les actions de la base de données à effectuer.
Cette page vous a-t-elle aidé ?
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.