tMysqlInput - 6.3

Composants Talend Open Studio Guide de référence

EnrichVersion
6.3
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

Fonction

Le composant tMysqlInput lit une base de données et en extrait des champs à l'aide de requêtes.

Objectif

Le tMysqlInput exécute une requête en base de données selon un ordre strict qui doit correspondre à celui défini dans le schéma. La liste des champs récupérée est ensuite transmise au composant suivant via une connexion de flux (Main row).

Propriétés du tMysqlInput

Famille du composant

Databases/MySQL

 

Basic settings

Property type

Peut être Built-In ou Repository.

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

- Repository : Sélectionnez le fichier dans lequel sont stockées les propriétés du composant.

 

Cliquez sur cette icône pour ouvrir l'assistant de configuration de connexion à la base de données et enregistrer les paramètres de connexion que vous avez définis dans la vue Basic settings du composant.

Pour plus d'informations sur comment définir et stocker des paramètres de connexion de base de données, consultez le Guide utilisateur du Studio Talend.

 

DB version

Sélectionnez la version de la base de données à utiliser.

 

Use an existing connection

Cochez cette case et sélectionnez le composant de connexion adéquat à partir de la liste Component List pour réutiliser les paramètres d'une connexion que vous avez déjà définie.

Note

Lorsqu'un Job contient un Job parent et un Job enfant, si vous souhaitez utiliser une connexion existant entre les deux niveaux, par exemple pour partager la connexion créée par le Job parent avec le Job enfant, vous devez :

  1. Au niveau parent, enregistrer la connexion à la base de données à partager, dans la vue Basic settings du composant de connexion créant cette connexion.

  2. Au niveau enfant, utiliser un composant dédié à la création de connexion, afin de lire la connexion enregistrée.

Pour plus d'informations concernant le partage d'une connexion à travers différents niveaux de Jobs, consultez le Guide utilisateur du Studio Talend.

 

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 de 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 et 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.

 

 

Built-in : Le schéma sera créé et conservé pour ce composant seulement. Voir également le Guide utilisateur du Studio Talend.

 

 

Repository : Le schéma existe déjà et est stocké dans le Repository. Ainsi, il peut être réutilisé. 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, cliquez sur No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

 

Table Name

Nom de la table à lire.

 

Query type et Query

Saisissez votre requête de base de données en faisant attention à ce que l'ordre des champs corresponde à celui défini dans le schéma.

 Specify a data source alias

Cochez cette case et spécifiez l'alias de la source de données créée dans Talend Runtime pour utiliser le pool de connexions partagées défini dans la configuration des données source. Cette option fonctionne lorsque vous déployez et exécutez votre Job dans Talend Runtime. Pour voir un exemple de cas d'utilisation, consultez Scénario 4 : Récupérer des données d'une base de données MySQL en utilisant la source de données côté Talend Runtime pour configurer la connexion à la base de données.

Avertissement

Si vous utilisez la configuration de la base de données du composant, la connexion à votre source de données se ferme à la fin du composant. Pour empêcher la fermeture de la connexion, utilisez une connexion partagée à la base de données, avec l'alias de la source de données spécifié.

Cette option est indisponible lorsque la case Use an existing connection est cochée.

Advanced settings

Additional JDBC parameters

Spécifiez des informations supplémentaires de connexion à la base de données créée. Cette option est disponible lorsque la case Use an existing connection est décochée dans les Basic settings.

Note

Lorsque vous devez traiter des données au format date/heure 0000-00-00 00:00:00 utilisant ce composant, définissez les paramètres comme suit :

noDatetimeStringSync=true&zero­DateTimeBehavior=convertToNull.

 

Enable stream

Cochez cette case pour déterminer avec quelles lignes vous souhaitez travailler. Cette option permet d'améliorer les performances.

Cette case est disponible uniquement lorsque l'option Mysql 4 ou Mysql 5 est sélectionnée dans la liste DB Version.

 

Trim all the String/Char columns

Cochez cette case pour supprimer les espaces en début et en fin de champ dans toutes les colonnes contenant des chaînes de caractères.

 

Trim column

Supprimez les espaces en début et en fin de champ dans les colonnes sélectionnées.

Note

Décochez Trim all the String/Char columns pour activer le tableau Trim column.

 

tStatCatcher Statistics

Cochez cette case pour collecter les données de log au niveau du composant.

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.

Global Variables 

NB_LINE : nombre de lignes traitées. Cette variable est une variable After et retourne un entier.

QUERY : requête traitée. Cette variable est une variable Flow et retourne une chaîne de caractères.

ERROR_MESSAGE : message d'erreur généré par le composant lorsqu'une erreur survient. Cette variable est une variable After et retourne une chaîne de caractères. Cette variable fonctionne uniquement si la case Die on error est décochée, si le composant a cette option.

Une variable Flow fonctionne durant l'exécution d'un composant. Une variable After fonctionne après l'exécution d'un composant.

Pour renseigner un champ ou une expression à l'aide d'une variable, appuyez sur les touches Ctrl+Espace pour accéder à la liste des variables. A partir de cette liste, vous pouvez choisir la variable que vous souhaitez utiliser.

Pour plus d'informations concernant les variables, consultez le Guide utilisateur du Studio Talend.

Utilisation

Ce composant couvre toutes les possibilités de requête SQL dans les bases de données MySQL.

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

Scénario 1 : Ecrire des colonnes d'une base de données MySQL dans un fichier de sortie

Dans ce scénario, vous allez lire des colonnes d'une base de données MySQL puis les écrire dans une table d'un fichier local de sortie.

Déposer et relier les composants

  1. Déposez un composant tMysqlInput et un tFileOutputDelimited de la Palette dans l'espace de modélisation graphique.

  2. Reliez le tMysqlInput au tFileOutputDelimited à l'aide d'un lien Row > Main.

Configurer les composants

  1. Double-cliquez sur le composant tMysqlInput afin d'ouvrir l'onglet Basic settings de la vue Component.

  2. Dans la liste Property Type, sélectionnez Repository, si vous avez déjà stocké la connexion à la base de données dans le nœud Metadata du Repository. Les informations de connexion sont alors automatiquement renseignées.

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

    Si vous n'avez pas stocké localement la connexion dans le Repository, sélectionnez Built-In dans la liste Property Type puis renseignez manuellement les informations.

  3. Dans la liste Schema, sélectionnez Built-In puis cliquez sur Edit schema pour configurer le schéma.

    L'éditeur du schéma s'ouvre :

  4. Cliquez quatre fois sur le bouton pour ajouter quatre lignes au schéma.

    Dans les colonnes Column et Db Column, cliquez dans les champs afin de saisir le nom des colonnes correspondantes, idfirst_namecity et salary, respectivement.

    Cliquez sur les champs de la colonne Type pour définir le type de données.

    Cliquez sur OK pour fermer l'éditeur du schéma.

  5. A côté du champ Table Name, cliquez sur le bouton [...] pour sélectionner la table de la base de données souhaitée.

    Une boîte de dialogue affiche une arborescence de toutes les tables dans la base de données sélectionnée :

  6. Cliquez sur la table qui vous intéresse puis sur OK pour fermer la boîte de dialogue.

  7. Dans la liste Query Type, sélectionnez Built-In.

  8. Dans le champ Query, saisissez la requête permettant de récupérer les colonnes souhaitées de la table.

  9. Double-cliquez sur le tFileOutputDelimited afin d'afficher sa vue Component.

  10. A côté du champ File Name, cliquez sur le bouton [...] afin de parcourir votre système jusqu'à l'emplacement où vous souhaitez sauvegarder le fichier de sortie, puis saisissez un nom pour le fichier.

    Cochez la case Include Header afin de récupérer le nom des colonnes du schéma ainsi que les données.

  11. Sauvegardez le Job en appuyant sur les touches Ctrl+S.

Exécuter le Job

Appuyez sur F6 pour exécuter votre Job.

Dans le fichier de sortie est écrit le nom des colonnes souhaitées et les données correspondantes, récupérés de la base de données :

Note

Le Job peut également être exécuté en mode Traces Debug, ce qui vous permet de voir les lignes pendant leur écriture dans le fichier de sortie, dans l'espace de modélisation graphique.

Scénario 2 : Utiliser des paramètres de contexte lors de la lecture d'une table d'une base de données MySQL

Dans ce scénario, une table d'une base de données MySQL est lue, à l'aide un paramètre de contexte référant au nom de la table.

Déposer et relier les composants

  1. Déposez un composant tMysqlInput et un tLogRow de la Palette dans l'espace de modélisation graphique.

  2. Reliez le tMysqlInput au tLogRow à l'aide d'un lien Row > Main.

Configurer les composants

  1. Double-cliquez sur le tMysqlInput pour ouvrir la vue Basic settings.

  2. Dans la liste Property Type, sélectionnez Repository si vous avez déjà stocké la connexion à la base de données dans le nœud Metadata du Repository. Les champs des propriétés sont automatiquement renseignés.

    Pour plus d'informations concernant le stockage d'une connexion à une base de données, consultez le Guide utilisateur du Studio Talend.

    Si vous n'avez pas configuré de connexion à une base de données dans le Repository, renseignez manuellement les informations après avoir sélectionné Built-in dans la liste Property Type.

  3. Configurez le Schema en Built-In, puis cliquez sur Edit schema pour définir le schéma comme vous le souhaitez.

    L'éditeur du schéma s'ouvre :

  4. Cliquez sur le bouton pour ajouter les sept colonnes à utiliser pour configurer le schéma et renommez-les respectivement : id, first_name, last_name, city, state, date_of_birth et salary.

    Cliquez sur les lignes de la colonne Type pour définir le type des données.

    Cliquez sur OK pour fermer l'éditeur du schéma.

  5. Placez votre souris sur le champ Table Name et appuyez sur F5 pour configurer les paramètres de contexte.

    Pour plus d'informations concernant les paramètres de contexte, consultez le Guide utilisateur du Studio Talend.

  6. Laissez les paramètres par défaut dans le champ Name et saisissez le nom de la table de la base de données dans le champ Default value, employees dans ce cas.

  7. Cliquez sur Finish pour valider.

    Le paramètre de contexte context.TABLE apparaît automatiquement dans le champ Table Name.

  8. Dans la liste Query type, sélectionnez Built-In puis cliquez sur Guess Query pour obtenir l'instruction de la requête.

    Dans ce scénario, lisez les enregistrements contenant un salaire supérieur à 8000. Ajoutez une clause Where. L'instruction finale s'affiche comme suit :

    "SELECT 
      "+context.TABLE+".`id`, 
      "+context.TABLE+".`first_name`, 
      "+context.TABLE+".`last_name`, 
      "+context.TABLE+".`city`, 
      "+context.TABLE+".`state`, 
      "+context.TABLE+".`date_of_birth`, 
      "+context.TABLE+".`salary`
    FROM "+context.TABLE+"
    WHERE
      "+context.TABLE+".`salary` > 8000"
  9. Double-cliquez sur le tLogRow pour configurer ses propriétés de base dans l'onglet Basic settings.

  10. Dans la zone Mode, sélectionnez Table (print values in cells of a table) pour un meilleur affichage des résultats.

  11. Sauvegardez le Job.

Exécuter le Job

Appuyez sur F6 pour exécuter votre Job. Les résultats s'affichent dans la console.

Comme vous pouvez le constater ci-dessus, les enregistrements comportant un salaire supérieur à 8000 sont récupérés.

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

Dans ce scénario, vous allez lire des données depuis des tables de bases de données ayant la même structure mais se trouvant dans deux différentes bases de données MySQL nommées respectivement project_q1 et project_q2. Vous allez spécifier dynamiquement les connexions à ces bases de données au moment de l'exécution, sans modifier le Job.

Déposer et relier les composants

  1. Déposez deux composants tMysqlConnection, un tMysqlInput, un tLogRow et un tMysqlClose dans l'espace de modélisation graphique.

  2. Reliez le premier tMysqlConnection au second tMysqlConnection et le second tMysqlConnection au tMysqlInput à l'aide de liens Trigger > On Subjob Ok.

  3. Reliez le tMysqlInput au tLogRow à l'aide d'un lien Row > Main.

  4. Reliez le tMysqlInput au tMysqlClose à l'aide d'un lien Trigger > On Subjob Ok.

Créer une variable de contexte

Afin de pouvoir choisir dynamiquement une connexion à la base de données au moment de l'exécution, vous devez définir une variable de contexte. Cette dernière est configurée dans les paramètres Dynamic settings du composant d'entrée de la base de données.

  1. Dans la vue Contexts, cliquez sur le bouton [+] afin d'ajouter une ligne à la table, puis cliquez dans le champ Name et saisissez un nom pour la variable, myConnection dans cet exemple.