Utiliser le tMysqlSP pour trouver le libellé State à l'aide d'une procédure stockée
Le Job suivant a pour but de trouver les libellés State en fonction des ID impairs de la colonne State d'une table MySQL à deux colonnes. à l'aide d'une procédure stockée.
-
Cliquez et déposez les composants suivants dans l'espace de modélisation : tRowGenerator, tMysqlSP et tLogRow.
-
Connectez les composants à l'aide d'une connexion de type Row Main.
-
Le tRowGenerator est utilisé pour générer des ID impairs. Double-cliquez sur le composant pour lancer l'éditeur.
-
Cliquez sur le bouton [+] pour ajouter une colonne au schéma à générer.
-
Cochez la case Key pour définir l'entrée comme étant une clé primaire et définissez le Type en Int (entier).
-
Dans le champ Length, la longueur est de 2 chiffres au maximum.
-
Utilisez la fonction préétablie appelée sequence mais modifiez les paramètres dans la partie inférieure de la fenêtre.
-
Modifiez la valeur (Value) de step : de 1 à 2 pour cet exemple. Mais la valeur de départ (start value) reste 1.
-
Dans le champ Number of generated rows, définissez le nombre de lignes à générer à 25, afin que tous les ID impairs de State (il y a 50 États) soient générés.
-
Cliquez sur OK pour valider la configuration.
-
Puis sélectionnez le composant tMysqlSP et paramétrez ses propriétés.
-
Dans le champ Property type, sélectionnez l'option Repository puis sélectionnez l'entrée correspondante dans la liste. Les informations de connexion sont remplies automatiquement.
-
Sinon, paramétrez les informations de connexion manuellement.
-
Cliquez sur Sync Column pour récupérer le schéma généré du composant précédent.
-
Puis cliquez sur Edit Schema et ajoutez une colonne supplémentaire contenant les libellés des États (State) à obtenir en sortie, en plus de l'ID.
-
Dans le champ SP Name, saisissez le nom de la procédure comme il a été défini dans la base de données (ici, getstate). La procédure à exécuter correspond à :
DROP PROCEDURE IF EXISTS `talend`.`getstate` $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `getstate`(IN pid INT, OUT pstate VARCHAR(50)) BEGIN SELECT LabelState INTO pstate FROM us_states WHERE idState = pid; END $$
-
Dans la zone Parameters, cliquez sur le bouton [+] pour ajouter une ligne à la table.
-
Définissez le champ Column en ID, et le champ Type en IN, ainsi il sera considéré comme paramètre d'entrée dans la procédure.
-
Ajoutez une deuxième ligne et définissez le champ Column en State et le champ Type en Out, ainsi il sera considéré comme le paramètre de sortie à retourner.
-
Et enfin, paramétrez les propriétés du composant tLogRow.
-
Synchronisez le schéma avec celui du composant précédent.
-
Et cochez la case Print values in cells of a table pour un meilleur confort de lecture.
-
Puis enregistrez votre Job et exécutez-le.
La sortie affiche les différents Etats (State) avec leur ID impair comme défini dans la procédure.
Vérifiez Insérer des données dans des tables parent/enfant si vous souhaitez analyser un ensemble d'enregistrements depuis une table de base de données ou une requête de base de données et retourner des enregistrements individuels.