tMSSqlConnection

Composants Talend Open Studio Guide de référence

EnrichVersion
6.3
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Fonction

Le composant tMSSqlConnection ouvre une connexion vers une base de données Microsoft SQL Server ou une base de données Microsoft Azure SQL.

Objectif

Ce composant est utilisé pour ouvrir une connexion à la base de données spécifiée afin de pouvoir la réutiliser dans le(s) sous-job(s) suivant(s).

Propriétés du tMSSqlConnection

Famille du composant

Databases/MS SQL Server

 

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

 

JDBC Provider

Sélectionnez le fournisseur du pilote JDBC à utiliser, Microsoft (recommandé) ou Open source JTDS.

Notez que, quand Microsoft est sélectionné, vous devez télécharger le pilote Microsoft JDBC pour les serveurs SQL sur Microsoft Download Center (en anglais). Vous devez ensuite décompresser le fichier zip téléchargé, choisir un fichier .jar dans le dossier décompressé, selon votre version de JRE, renommer le fichier .jar en mssql-jdbc.jar et l'installer manuellement. Pour plus d'informations relatives au choix du fichier .jar, consultez la configuration système requise sur Microsoft Download Center (en anglais).

 

Host

Adresse IP du serveur de base de données.

 

Port

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

 

Schema

Nom du schéma.

 

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.

 

Additional JDBC parameters

Définissez les propriétés de connexion supplémentaires pour la connexion à la base de données que vous créez. Les propriétés sont séparées par un point-virgule et chaque propriété est une paire clé-valeur. Par exemple, encrypt=true;trustServerCertificate=false; hostNameInCertificate=*.database.windows.net;loginTimeout=30; pour une connexion à une base de données Azure SQL.

 

Use or register a shared DB Connection

Cochez cette case pour partager votre connexion ou récupérer une connexion mise en partage dans un Job père ou un Job fils. Cette option vous permet de partager une seule connexion à une base de données dans plusieurs composants de connexion à des bases de données, dans différents niveaux de Jobs, qui peuvent être des Jobs parent ou enfant.

Avertissement

Cette option est incompatible avec les options Use dynamic job et Use an independent process to run subjob du composant tRunJob. Utiliser une connexion partagée avec un tRunJob ayant l'une de ces options activée fera échouer votre Job.

Cette case est indisponible lorsque la case Specify a data source alias est cochée.

 

Shared DB Connection Name

Saisissez le nom de la connexion partagée.

Ce champ est disponible uniquement lorsque la case Use or register a shared DB Connection est cochée.

 

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.

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

 

Data source alias

Saisissez l'alias de la source de données créée du côté de Talend Runtime.

Ce champ est disponible uniquement lorsque la case Specify a data source alias est cochée.

Advanced settings

Auto Commit

Cochez cette case afin de commiter automatiquement toute modification dans la base de données lorsque la transaction est terminée.

Lorsque cette case est cochée, vous ne pouvez utiliser les composants de commit correspondant pour commiter les modifications dans la base de données. De la même manière, lorsque vous utilisez un composant de commit, cette case doit être décochée. Par défaut, la fonctionnalité d'auto-commit est désactivée et les modifications doivent être commitées de manière explicite à l'aide du composant correspondant de commit.

Notez que la fonctionnalité d'auto-commit permet de commiter chaque instruction SQL comme transaction unique immédiatement après son exécution et que le composant de commit ne commite pas jusqu'à ce que toutes les instructions soient exécutées. Pour cette raison, si vous avez besoin de plus d'espace pour gérer vos transactions dans un Job, il est recommandé d'utiliser un composant Commit.

 

tStatCatcher Statistics

Cochez cette case pour collecter les données de log, aussi bien au niveau du Job qu'au niveau de chaque composant.

Utilisation

Ce composant est généralement utilisé avec des composants MSSql, notamment les composants tMSSqlCommit et tMSSqlRollback.

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

Du fait d'une incompatibilité de licence, un ou plusieurs Jar requis pour utiliser ce composant ne sont pas fournis. Vous pouvez installer les Jar manquants pour ce composant en cliquant sur le bouton Install dans l'onglet Component. Vous pouvez également trouver les Jar manquants et les ajouter dans l'onglet Modules de la perspective Integration de votre studio. Pour plus d'informations, consultez l'article Installation de modules externes sur Talend Help Center (https://help.talend.com) ou la section décrivant comment configurer le studio, dans le Guide d'installation et de migration Talend.

Scénario : Insérer des données dans une table de base de données et en extraire des informations

Ce scénario décrit un Job lisant des données d'un fichier texte, relatives aux employés, insérant les données dans une table d'une base de données MSSQL et extrayant les données les plus utiles de la table, pour les afficher dans la console.

Ce scénario comprend les composants suivants :

  • un tMSSqlConnection : établit une connexion au serveur MSSQL.

  • un tFileInputDelimited : lit le fichier d'entrée, définit la structure des données et les envoie au composant suivant.

  • un tMSSqlOutput : écrit les données qu'il reçoit du composant précédent dans une table d'une base de données MSSQL.

  • un tMSSqlInput : extrait les données de la table selon une requête SQL.

  • un tLogRow : affiche les informations reçues du composant précédent dans la console.

  • un tMSSqlCommit : commite la transaction sur le serveur MSSQL connecté.

Construire le Job

  1. Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : un tMSSqlConnection, un tFileInputDelimited, un tMSSqlOutput, un tMSSqlInput, un tLogRow et un tMSSqlCommit.

  2. Connectez le tMSSqlConnection au tFileInputDelimited à l'aide d'un lien Trigger > OnSubjobOk.

  3. Reliez de la même manière le tFileInputDelimited au tMSSqlInput et le composant tMSSqlInput au tMSSqlCommit.

  4. Connectez le tFileInputDelimited au tMSSqlOutput à l'aide d'un lien Row > Main.

  5. Répétez l'opération pour connecter le tMSSqlInput au tLogRow.

Configurer les composants

Ouvrir une connexion au serveur MSSQL

  1. Double-cliquez sur le composant tMSSqlConnection pour ouvrir sa vue Basic settings.

  2. Dans le champ Host, saisissez l'adresse IP ou le nom de l'hôte du serveur MSSQL, 192.168.30.47 dans cet exemple.

  3. Dans le champ Port, saisissez le numéro du port du serveur de la base de données, 1433 dans ce scénario.

  4. Dans le champ Schema, saisissez le nom du schéma, dbo dans cet exemple.

  5. Dans le champ Database, saisissez le nom de la base de données, talend dans ce scénario.

  6. Dans les champs Username et Password, saisissez respectivement votre identifiant et votre mot de passe de connexion à MSSQL.

Lire les données d'entrée

  1. Double-cliquez sur le composant tFileInputDelimited pour ouvrir sa vue Component.

  2. Cliquez sur le bouton [...] à côté du champ File Name/Stream afin de parcourir votre système jusqu'au fichier d'entrée, par exemple D:/Input/Employee_Wage.txt. Ce fichier texte contient trois colonnes : id, name et wage.

    id;name;wage
    51;Harry;2300
    40;Ronald;3796
    17;Theodore;2174
    21;James;1986
    2;George;2591
    89;Calvin;2362
    84;Ulysses;3383
    4;Lyndon;2264
    17;Franklin;1780
    86;Lyndon;3999
  3. Dans le champ Header, saisissez 1 pour ignorer la première ligne du fichier d'entrée.

  4. Cliquez sur Edit schema pour définir les données à passer au composant tMSSqlOutput. Dans cet exemple, définissez id comme la clé (cochez la case Key) et spécifiez la longueur (Length) et la précision (Precision) pour chaque colonne.

    Cliquez sur OK pour fermer l'éditeur de schéma. Une boîte de dialogue s'ouvre, dans laquelle vous pouvez choisir de propager le schéma au composant suivant.

    Pour plus d'informations, consultez tFileInputDelimited.

Ecrire les données dans la table de la base de données

  1. Double-cliquez sur le tMSSqlOutput pour ouvrir sa vue Basic settings.

  2. Saisissez les informations requises pour la connexion ou utilisez une connexion existante précédemment configurée. Dans cet exemple, cochez la case Use an existing connection. Si plusieurs connexions sont disponibles, sélectionnez celle que vous souhaitez utiliser, dans la liste déroulante Component List.

  3. Dans le champ Table, saisissez le nom de la table dans laquelle vous souhaitez écrire les données : Wage_Info dans ce scénario. Vous pouvez également cliquer sur le bouton [...] à côté du champ Table pour ouvrir une boîte de dialogue et sélectionner une autre table.

  4. Sélectionnez Create table if not exists dans la liste déroulante Action on table.

  5. Sélectionnez Insert if not exists dans la liste déroulante Action on data.

  6. Cliquez sur Sync columns pour récupérer le schéma du composant précédent.

Extraire des informations de la table

  1. Double-cliquez sur le composant tMSSqlInput pour afficher sa vue Component.

  2. Cochez la case Use an existing connection. Si plusieurs connexions sont disponibles, sélectionnez celle que vous souhaitez utiliser, dans la liste déroulante Component List.

  3. Cliquez sur Edit schema pour définir la structure des données à lire depuis la table. Dans cet exemple, vous devez lire les trois colonnes de la table.

  4. Dans le champ Table Name, saisissez le nom de la table de laquelle vous souhaitez lire les données : Wage_Info dans ce scénario.

  5. Dans le champ Query, renseignez la requête SQL à exécuter sur la table spécifiée. Pour obtenir les données relatives aux employés dont le salaire est supérieur à la moyenne et les classer par ID, saisissez la requête SQL comme suit :

    SELECT    * 
    FROM      Wage_Info
    WHERE     wage >
    (SELECT   avg(wage)
    FROM      Wage_Info)
    ORDER BY  id
    

Afficher les informations dans la console

  1. Double-cliquez sur le tLogRow pour afficher sa vue Basic settings.

  2. Dans la zone Mode, sélectionnez Table (print values in cells of a table).

Commiter la transaction et fermer la connexion

  1. Double-cliquez sur le tMSSqlCommit pour ouvrir sa vue Basic settings.