tMysqlOutput

Composants Talend Open Studio Guide de référence

EnrichVersion
6.3
EnrichProdName
Talend Open Studio for Data Quality
Talend Open Studio for Big Data
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Open Studio for Data Integration
task
Gouvernance de données
Qualité et préparation de données
Création et développement
EnrichPlatform
Studio Talend

Fonction

Le composant tMysqlOutput écrit, met à jour, modifie ou supprime les données d'une base de données.

Objectif

Le tMysqlOutput exécute l'action définie sur la table et/ou sur les données d'une table, en fonction du flux entrant provenant du composant précédent.

Propriétés du tMysqlOutput

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.

 

DB Version

Sélectionnez la version de MySQL que vous utilisez.

 

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.

 

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.

 

Table

Nom de la table à écrire. Vous ne pouvez écrire qu'une seule table à la fois.

 

Action on table

Vous pouvez effectuer l'une des opérations suivantes sur les données de la table sélectionnée :

Default : n'effectuer aucune opération de table.

Drop and create the table : supprimer la table puis en créer une nouvelle.

Create a table : créer une table qui n'existe pas encore.

Create table if doesn't exist : créer la table si nécessaire.

Drop a table if exists and create : supprimer la table si elle existe déjà, puis en créer une nouvelle.

Clear a table : supprimer le contenu de la table.

Truncate table : supprimer rapidement le contenu de la table, mais sans possibilité de Rollback.

 

Action on data

Vous pouvez effectuer les opérations suivantes sur les données de la table sélectionnée :

Insert : Ajouter de nouvelles entrées à la table. Le Job s'arrête lorsqu'il détecte des doublons.

Update : Mettre à jour les entrées existantes.

Insert or update : insère un nouvel enregistrement. Si l'enregistrement avec la référence donnée existe déjà, une mise à jour est effectuée.

Update or insert : met à jour l'enregistrement avec la référence donnée. Si l'enregistrement n'existe pas, un nouvel enregistrement est inséré.

Delete : Supprimer les entrées correspondantes au flux d'entrée.

Insert or update on duplicate key or unique index : Ajouter des entrées si la valeur insérée n'existe pas ou mettre à jour les entrées si la valeur insérée existe déjà et qu'un risque de violation d'une clé unique se présente.

Insert ignore : Ajouter uniquement de nouvelles lignes afin d'empêcher les erreurs de doublons de clés.

Avertissement

Il est nécessaire de spécifier au minimum une colonne comme clé primaire sur laquelle baser les opérations Update et Delete. Pour cela, cliquez sur le bouton [...] à côté du champ Edit Schema et cochez la ou les case(s) correspondant à la ou aux colonne(s) que vous souhaitez définir comme clé(s) primaire(s). Pour une utilisation avancée, cliquez sur l'onglet Advanced settings pour définir simultanément les clés primaires sur lesquelles baser les opérations de mise à jour (Update) et de suppression (Delete). Pour cela, cochez la case Use field options et cochez la case Key in update correspondant à la colonne sur laquelle baser votre opération de mise à jour (Update). Procédez de la même manière avec les cases Key in delete pour les opérations de suppression (Delete).

 

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 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 peut être réutilisé. Voir également le Guide utilisateur du Studio Talend.

Lorsque le schéma à réutiliser contient des valeurs par défaut, qui sont des entiers (integer) ou des fonctions (function), assurez-vous que les valeurs par défaut ne sont pas entourées de guillemets. Si c'est le cas, vous devez supprimer manuellement les guillemets.

Pour plus d'informations, consultez l'article Vérification des valeurs par défaut dans un schéma récupéré sur Talend Help Center (https://help.talend.com).

  

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

 

Die on error

Cette case est cochée par défaut et stoppe le Job en cas d'erreur. Décochez cette case pour terminer le traitement avec les lignes sans erreur, et ignorer les lignes en erreur. Vous pouvez récupérer les lignes en erreur, si vous le souhaitez. Pour cela, utilisez un lien Row > Rejects.

  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

Vous pouvez appuyer sur Ctrl+Espace afin d'accéder à une liste de variables globales prédéfinies.

 

Extend Insert

Cochez cette case pour insérer un ensemble de lignes définies au lieu d'insérer les lignes une par une. Cette option permet un important gain de performance.

Number of rows per insert : saisissez le nombre de lignes à insérer en un bloc. Notez que si vous sélectionnez un nombre important de lignes, cela peut augmenter la quantité de mémoire utilisée et donc diminuer les performances.

Note

Cette option n'est pas compatible avec le lien Reject. Vous devez donc la décocher si vous utilisez un lien Reject en sortie du composant.

 

Use Batch

Cochez cette case pour activer le mode de traitement par lots pour le traitement des données.

Note

Cette case est disponible uniquement si vous avez choisi l'option Insert, Update, Single Insert Query ou Delete dans le champ Action on data.

 

Batch Size

Spécifiez le nombre d'enregistrements à traiter dans chaque lot.

Ce champ est disponible uniquement lorsque la case Use batch mode est cochée.

 

Commit every

Nombre de lignes à inclure dans le lot avant de commencer l'écriture dans la base. Cette option garantit la qualité de la transaction (cependant pas de rollback) et surtout une meilleure performance d'exécution.

 

Additional Columns

Cette option n'est pas disponible si vous venez de créer la table de données (que vous l'ayez préalablement supprimée ou non). Cette option vous permet d'effectuer des actions sur les colonnes, à l'exclusion des actions d'insertion, de mise à jour, de suppression ou qui nécessitent un prétraitement particulier.

 

 

Name : Saisissez le nom de la colonne à modifier ou à insérer.

 

 

SQL expression : Saisissez la déclaration SQL à exécuter pour modifier ou insérer les données dans les colonnes correspondantes.

 

 

Position : Sélectionnez Before, Replace ou After, en fonction de l'action à effectuer sur la colonne de référence.

 

 

Reference column : Saisissez une colonne de référence que le composant tMysqlOutput peut utiliser pour situer ou remplacer la nouvelle colonne ou celle à modifier.

 

Use field options

Cochez cette case pour personnaliser une requête, surtout lorsqu'il y a plusieurs actions sur les données.

 

Use Hint Options

Cochez cette case pour activer la zone de configuration des indicateurs (ou Hints) permettant d'optimiser l'exécution d'une requête. Dans cette zone, les paramètres sont :

- HINT : spécifiez l'indicateur dont vous avez besoin, en utilisant la syntaxe /*+ */.

- POSITION : spécifiez la place de l'indicateur dans une instruction SQL.

- SQL STMT : sélectionnez l'instruction SQL que vous souhaitez utiliser.

 

Enable debug mode

Cochez cette case pour afficher chaque étape du processus d'écriture dans la base de données.

 

Use duplicate key update mode insert

Met à jour les valeurs des colonnes spécifiées en cas de doublon de la clé primaire.

Column : Saisissez entre guillemets le nom de la colonne à mettre à jour.

Value : Saisissez l'opération que vous souhaitez effectuer sur la colonne.

Note

Pour utiliser cette option, vous devez préalablement sélectionner le mode Insert dans la liste Action on data de la vue Basic settings.

 

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 lues par un composant d'entrée ou passées à un composant de sortie. Cette variable est une variable After et retourne un entier.

NB_LINE_UPDATED : nombre de lignes mises à jour. Cette variable est une variable After et retourne un entier.

NB_LINE_INSERTED : nombre de lignes insérées. Cette variable est une variable After et retourne un entier.

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

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

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

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.

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

Utilisation

Ce composant offre la flexibilité des requêtes sur les bases de données et couvre toutes les possibilités des requêtes SQL.

Ce composant doit être utilisé en tant que composant de sortie. Il permet de faire des actions sur une table ou les données d'une table d'une base de données MySQL. Il permet aussi de créer un flux de rejet avec un lien Row > Reject filtrant les données en erreur. Pour un exemple d'utilisation du tMysqlOutput, consultez Scénario 3 : Récupérer les données erronées à l'aide d'un lien Reject.

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 : Ajouter une colonne et modifier les données

Ce scénario Java est un Job à trois composants permettant de créer de manière aléatoire des données de test à l'aide du composant tRowGenerator, dupliquer la colonne à modifier à l'aide du composant tMap et de modifier les données à insérer en utilisant une expression SQL dans le composant tMysqlOutput.

  • Cliquez et déposez les composants suivants dans l'éditeur graphique : tRowGenerator, tMap et tMysqlOutput.

  • Connectez-les à l'aide de liens Row Main.

  • Dans l'éditeur graphique, double-cliquez sur le tRowGenerator pour afficher l'onglet Basic settings.

  • Cliquez sur le bouton [...] à côté du champ Edit schema pour définir les données à transmettre au composant tMap, dans ce scénario, les deux colonnes name et random_date.

  • Cliquez sur OK pour fermer la boîte de dialogue.

  • Cliquez sur le bouton [...] à côté du champ RowGenerator Editor pour ouvrir l'éditeur du tRowGenerator pour paramétrer les données à générer.

  • Cliquez dans le champ Functions correspondant et sélectionnez une fonction pour chacune des deux colonnes, getFirstName pour la colonne name et getrandomDate pour la colonne random_date.

  • Dans le champ Number of Rows for Rowgenerator, saisissez 10 pour ne générer que dix lignes de prénoms et cliquez sur Ok pour fermer l'éditeur.

  • Double-cliquez sur le composant tMap pour ouvrir l'éditeur du tMap. L'éditeur s'ouvre et affiche les données d'entrée du composant tRowGenerator.

  • Dans le panneau Schema editor de l'éditeur du tMap, cliquez sur le bouton [+] de la table de sortie pour ajouter deux lignes et nommez la première colonne random_date et la deuxième random_date1.

Dans ce scénario, l'objectif est de dupliquer la colonne random_date et adapter le schéma afin de modifier les données à transférer dans le composant de sortie.

  • Dans l'éditeur du tMap, glissez la ligne random_date de la table d'entrée vers les lignes random_date et random_date1 de la table de sortie.

  • Cliquez sur OK pour fermer l'éditeur.

  • Dans l'éditeur graphique, double-cliquez sur le composant tMysqlOutput pour afficher l'onglet Basic settings et paramétrer ses propriétés.

  • Dans la liste Property Type, sélectionnez l'option Repository et cliquez sur le bouton [...] pour ouvrir la boîte de dialogue [Repository content] et sélectionnez la connexion à la base de données adéquate. Les informations de connexion sont renseignées automatiquement.

  • Configurez les informations de connexion à la base de données dans les champs correspondants.

Note

Si vous n'avez pas stocké de connexion à votre base de données sous le nœud DB connections sous le nœud Metadata du Repository, sélectionnez l'option Built-in dans la liste Property Type et renseignez les informations de connexion manuellement.

  • Cliquez sur le bouton [...] à côté du champ Table et sélectionnez la table à modifier : la table Dates dans ce scénario.

  • Dans la liste Action on table, sélectionnez l'option Drop table if exists and create et sélectionnez Insert dans la liste Action on data.

  • Si nécessaire, cliquez sur Sync columns pour récupérer le schéma de colonnes du composant tMap.

  • Cliquez sur l'onglet Advanced settings pour afficher la vue correspondante et définir les paramètres avancés du composant.

  • Dans la zone Additional Columns, paramétrez les modifications à appliquer aux colonnes.

    Dans ce scénario, la colonne One_month_later remplace la colonne random_date_1 et les données aussi sont modifiées à l'aide d'une requête SQL ajoutant un mois à la date générée aléatoirement dans la colonne random_date_1. Par exemple : 2007-08-12 devient 2007-09-12.

    -Saisissez One_Month_Later dans la cellule Name.

    -Dans la cellule SQL expression, saisissez la requête SQL ajoutant un mois, dans ce scénario : "adddate(Random_date, interval 1 month)".

    -Sélectionnez Replace dans la liste Position.

    -Sélectionnez Random_date1 dans la liste Reference column.

Note

Pour ce Job, vous dupliquez la colonne random_date_1 dans la table avant de la remplacer par la colonne One_Month_Later. Le but de cette manipulation était de voir les modifications apportées en amont.

  • Enregistrez le Job et appuyez sur F6 pour l'exécuter.

La nouvelle colonne One_month_later remplace la colonne random_date1 dans la base de données et ajoute un mois à chaque date générée aléatoirement.

Voir également Scénario : Ecrire une ligne dans une table d'une base de données MySQL via une connexion ODBC du composant tDBOutput.

Scénario 2 : Effectuer des mises à jour dans une base de données

Ce scénario est un Job à deux composants permettant de mettre à jour les données d'une table MySQL à partir d'un fichier délimité.

  • A partir de la Palette, cliquez et déposez les composants tFileInputDelimited et tMysqlOutput dans l'éditeur graphique puis connectez-les à l'aide d'un lien Row Main.

  • Dans l'éditeur graphique, double-cliquez sur le tFileInputDelimited pour afficher l'onglet Basic settings.

  • Dans le champ Property Type, sélectionnez le mode Repository si vous avez stocké les informations du fichier délimité sous le nœud Metadata du Repository ou sélectionnez le mode Built-In pour les définir manuellement. Dans ce scénario, utilisez le mode Built-In.

  • Dans le champ File Name, renseignez manuellement le chemin d'accès au fichier contenant les mises à jour à propager dans la base de données ou cliquez sur le bouton [...] pour parcourir vos dossiers jusqu'à ce fichier. Dans cet exemple, utilisez le fichier customer_update, qui comporte quatre colonnes, id, CustomerName, CustomerAddress et idState.