tMysqlSP - 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

Propriétés du tMysqlSP

Familles de composant

Databases/Mysql

 

Fonction

Le composant tMysqlSP appelle une procédure stockée de base de données.

Objectif

Le tMysqlSP permet de centraliser des requêtes multiples ou complexes dans une base de données et de les appeler plus facilement.

Basic settings

Property type

Peut être Built-in ou Repository.

Depuis la version 5.6, les modes Built-In et Repository sont disponibles dans toutes les solutions de Talend.

 

 

Built-in : Propriétés utilisées ponctuellement.

 

 

Repository : Sélectionnez le fichier des propriétés du composant. Les champs suivants sont alors pré-remplis.

 

Use an existing connection

Cochez cette case lorsque vous utilisez le composant tMysqlConnection.

 

Host

Adresse IP du serveur de base de données.

 

Port

Numéro du port d'écoute du serveur de base de données.

 

Database

Nom de la base de données.

 

Username et Password

Informations d'authentification sur l'utilisateur de base de données.

Pour saisir le mot de passe, cliquez sur le bouton [...] à côté du champ Password, puis, dans la boîte de dialogue qui s'ouvre, saisissez le mot de passe entre guillemets doubles, puis cliquez sur OK afin de sauvegarder les paramètres.

 

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.

Depuis la version 5.6, les modes Built-In et Repository sont disponibles dans toutes les solutions de Talend.

 

 

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 est réutilisable. Voir également le Guide utilisateur du Studio Talend.

  

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, sélectionnez No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

 

SP Name

Saisissez le nom exact de la Procédure Stockée (SP).

 

Is Function / Return result in

Cochez cette case, si une seule valeur doit être retournée.

Sélectionnez dans la liste la colonne du schéma sur laquelle est basée la valeur à obtenir.

 

Parameters

Cliquez sur le bouton [+] et sélectionnez dans le champ Schema Columns les différentes colonnes nécessaires à la procédure. Notez que le schéma de la SP peut contenir plus de colonnes qu'il n'y a de paramètres utilisés dans la procédure.

Sélectionnez le Type de paramètre :

IN : paramètre d'entrée (Input).

OUT : paramètre de sortie (Output)/valeur retournée.

IN OUT : les paramètres d'entrée doivent être retournés sous forme de valeur, même après modifications via la procédure (fonction).

RECORDSET : les paramètres d'entrée doivent être retournés sous forme d'ensemble de valeurs, au lieu d'une valeur unique.

Note

Consultez Scénario 1 : Insérer des données dans des tables mère/fille si vous voulez analyser un ensemble d'enregistrements d'une table de données ou d'une requête SQL.

Dynamic settings

Cliquez sur le bouton [+] pour ajouter une ligne à la table. Dans le champ Code, saisissez une variable de contexte afin de sélectionner dynamiquement votre connexion à la base de données parmi celles prévues dans votre Job. Cette fonctionnalité est utile si vous devez accéder à plusieurs tables de bases de données ayant la même structure mais se trouvant dans différentes bases de données, en particulier lorsque vous travaillez dans un environnement dans lequel vous ne pouvez pas changer les paramètres de votre Job, par exemple lorsque votre Job doit être déployé et exécuté dans un Studio Talend indépendant.

La table Dynamic settings n'est disponible que si la case Use an existing connection est cochée dans la vue Basic settings. Lorsqu'un paramètre dynamique est configuré, la liste Component List devient inaccessible dans la vue Basic settings.

Pour des exemples sur l'usage des paramètres dynamiques, consultez Scénario 3 : Lire des données dans des bases de données MySQL à l'aide de connexions dynamiques basées sur les variables de contexte et Scénario : Lire des données à partir de différentes bases de données MySQL à l'aide de paramètres de connexion chargés dynamiquement. Pour plus d'informations concernant les Dynamic settings et les variables de contexte, consultez le Guide utilisateur du Studio Talend.

Utilisation

Ce composant est un composant intermédiaire. Il peut également être utilisé comme composant de début. Dans ce cas, seuls les paramètres d'entrée sont autorisés.

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

Limitation

La syntaxe de la Procédure Stockée doit correspondre à celle de la base de données.

Scénario : 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 Etats) 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 Etats (State) à obtenir en sortie, en plus de l'ID.

  • Sélectionnez le type d'encodage dans la liste.

  • 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 a retournée.

  • Et enfin, paramétrez les propriétés du composant tLogRow.

  • Synchronisez le schéma avec celui du composant précédent en cliquant sur le bouton Sync columns.

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

Consultez également Scénario 1 : Insérer des données dans des tables mère/fille si vous voulez analyser un ensemble d'enregistrements d'une table de données ou d'une requête SQL.