tDBOutput

Composants Talend Open Studio Guide de référence

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

Fonction

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

Note

Pour utiliser ce composant, les pilotes ODBC du SGBD doivent être installés et les connexions ODBC doivent être configurées via l'assistant de configuration de connexion à une base de données.

Objectif

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

Note

Préférez toujours un composant Output spécifique au composant générique.

Propriétés du tDBOutput

Famille du composant

Databases

 

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 de propriétés du composant. Les champs suivants sont alors pré-remplis à l'aide des données collectées.

 

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.

 

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. Notez qu'une seule table peut être écrite à la fois.

 

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.

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 sélectionnez 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).

 

Clear data in table

Cochez cette case pour que les données soient supprimées de la table sélectionnée avant toute action.

 

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

 

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.

  

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

Advanced settings

Additional JDBC parameters

Spécifiez les propriétés de connexion supplémentaires pour la connexion à la base de données que vous créez.

Note

Vous pouvez configurer les paramètres d'encodage dans ce champ.

 

Commit every

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

 

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

 

Enable debug mode

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

 

Use java.sql.Statement

Cochez cette case pour utiliser l'objet Statement, si l'objet PreparedStatement n'est pas supporté par votre SGBD.

 

tStatCatcher Statistics

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

Global Variables

NB_LINE : nombre de lignes traitées. 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.

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 offre la flexibilité des requêtes sur les bases de données et couvre toutes les possibilités des requêtes SQL.

Il doit être utilisé en tant que composant de sortie. Il permet d'effectuer des actions sur les données d'une table d'une base de données. 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, consultez Scénario 3 : Récupérer les données erronées à l'aide d'un lien Reject du composant tMysqlOutput.

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 : Ecrire une ligne dans une table d'une base de données MySQL via une connexion ODBC

Ce scénario efface les données dans une table d'une base de données MySQL puis ajoute une ligne à cette table.

La table, nommée Date, contient une colonne nommée date, de type date.

Avertissement

Avant de reproduire ce Job, le pilote ODBC de MySQL doit avoir été installé et la connexion ODBC correspondante doit avoir été configurée.

  1. Déposez un tDBOutput et un tRowGenerator de la Palette dans l'espace de modélisation graphique.

  2. Connectez les composants à l'aide d'un lien Row > Main.

  3. Double-cliquez sur le tRowGenerator pour ouvrir son Schema editor.

  4. Cliquez sur le bouton [+] pour ajouter une ligne.

    Saisissez date comme nom de colonne.

    Sélectionnez Date dans la liste des types de données.

    Sélectionnez getCurrentDate dans la liste Functions.

    Saisissez 1 dans le champ Number of Rows for RowGenerator, une seule ligne sera ajoutée à la table.

    Cliquez sur OK pour fermer l'éditeur et propager les modifications au tDBOutput.

  5. Double-cliquez sur le tDBOutput pour ouvrir sa vue Basic settings.

  6. Dans le champ Database, saisissez le nom de la source de données définie durant la configuration de la connexion ODBC MySQL.

    Pour configurer une connexion ODBC, cliquez sur le bouton pour ouvrir l'assistant de configuration de la connexion à la base de données.

  7. Dans les champs Username et Password, saisissez les informations d'authentification à la base de données.

  8. Dans le champ Table, saisissez le nom de la table, Date dans cet exemple.

  9. Dans le champ Action on data, sélectionnez Insert afin d'insérer une ligne dans la table.

  10. Cochez la case Clear data in table afin de vider la table avant l'insertion.

  11. Sauvegardez le Job et appuyez sur F6 pour l'exécuter.

    Comme affiché ci-dessus, la table ne contient plus qu'une ligne concernant la date et l'heure courantes.