Propriétés du tMSSqlOutput Standard - 6.5

MSSql

author
Talend Documentation Team
EnrichVersion
6.5
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement > Systèmes tiers > Composants Database > Composants MSSql
Gouvernance de données > Systèmes tiers > Composants Database > Composants MSSql
Qualité et préparation de données > Systèmes tiers > Composants Database > Composants MSSql
EnrichPlatform
Studio Talend

Ces propriétés sont utilisées pour configurer le tMSSqlOutput s'exécutant dans le framework de Jobs Standard.

Le composant tMSSqlOutput Standard appartient à la famille Databases.

Le composant de ce framework est disponible dans tous les produits Talend.

Basic settings

Property type

Peut être Built-in ou Repository.

 

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 .

Use an existing connection

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

Remarque : Notez que lorsqu'un Job contient un Job parent et un Job enfant, si vous devez partager une connexion existante entre ces deux niveaux, par exemple pour partager la connexion créée par le Job père au Job fils, vous devez :
  1. au niveau du Job père, enregistrer la connexion à la base de données à partager dans la vue Basic settings du composant de connexion créant cette connexion à la base de données.

  2. au niveau du Job fils, utiliser un composant de connexion dédié afin de lire cette connexion enregistrée.

Pour un exemple de partage d'une connexion à une base de données à travers différents niveaux de Jobs, consultez le Guide utilisateur du Studio Talend .

JDBC Provider

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

Lorsque vous utilisez ce composant avec la source de données dans Talend Runtime, vous devez utiliser le pilote Open source JTDS.

Notez que, quand Microsoft est sélectionné, vous devez télécharger le pilote Microsoft JDBC pour les serveurs SQL sur Centre de téléchargement Microsoft. 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.

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.

Table

Nom de la table à créer. Vous ne pouvez créer 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 table : supprimer la table puis en créer une nouvelle.

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

Create table if not exists : créer la table si nécessaire.

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

Clear table : supprimer le contenu de la table.

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

Turn on identity insert

Cochez cette case pour utiliser votre propre séquence sur les valeurs Identity des données insérées (plutôt que de laisser le serveur SQL choisir les valeurs séquentielles).

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.

Single Insert Query : Ajouter de nouvelles entrées à la table, regroupées dans un lot.

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 if not exist : Ajouter de nouvelles entrées à la table si nécessaire.

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

Remarque :

La fonction de schéma dynamique peut être utilisée dans différents modes : Insert, Update, Insert or Update, Update or insert, Delete.

Specify identity field

Cochez cette case pour spécifier quel est le champ identity (Identity field ), constitué d'un numéro d'identification incrémenté automatiquement. Lorsque cette case est cochée, trois autres champs s'affichent :

Identity field : sélectionnez dans la liste la colonne que vous souhaitez définir comme champ identity.

Start value : saisissez une valeur de départ, utilisée pour la première ligne chargée dans la table.

Step : saisissez une valeur d'incrément, ajoutée à la valeur de la ligne précédemment chargée.

Cette case est disponible si vous sélectionnez l'option Drop and create table, Create table, Create table if not exists ou Drop table if exists and create dans la liste Action on table. Elle ne s'affiche pas si vous sélectionnez l'option Enable parallel execution dans la vue Advanced settings. Si vous cochez cette case sans avoir coché la case Turn on identity insert mais en ayant sélectionné Create table if not exists dans la liste Action on table et si la table spécifiée n'existe pas, seule une table est créée sans qu'aucune donnée y soit insérée.

Remarque :

Vous pouvez également spécifier le champ identity (Identity field) à partir du schéma du composant. Pour ce faire, paramétrez le type de base de données (DB Type) de la colonne correspondante en INT IDENTITY.

Remarque :

Lorsque la case Specify identity field est cochée, le type de base de données (DB Type) INT IDENTITY du schéma est ignoré.

Schema et Edit schema

Un schéma est une description de lignes. Il définit le nombre de champs (colonnes) dans le Repository. Lorsque vous créez un Job Spark, évitez le mot réservé line lors du nommage des champs.

Modifiez le schéma en cliquant sur Edit Schema. Si le schéma est en mode Repository, trois options sont disponibles :

  • View schema : sélectionnez cette option afin de voir uniquement 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].

Ce composant offre la fonction de schéma dynamique. Cela vous permet de récupérer des colonnes inconnues de fichiers sources ou de copier des lots de colonnes d'une source sans avoir à mapper chaque colonne individuellement. Pour plus d'informations concernant les schémas dynamiques, consultez le Guide utilisateur du Studio Talend.

Cette fonctionnalité de schéma dynamique est conçue pour permettre de récupérer des colonnes inconnues d'une table. Il est recommandé de l'utiliser uniquement à cet effet et non pour créer des tables.

 

Built-in : le schéma est créé et conservé localement pour ce composant seulement.

 

Repository : le schéma existe déjà et est stocké dans le Repository. Ainsi, il peut être réutilisé dans des Jobs et projets.

Lorsque le schéma à réutiliser contient des valeurs par défaut de type Integer ou Function, assurez-vous que ces valeurs par défaut ne sont pas entourées de guillemets. Si elles le sont, supprimez manuellement les guillemets.

Pour plus d'informations, consultez Vérification des valeurs par défaut dans un schéma récupéré.

Specify a data source alias

Data source alias

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.

Advanced settings

Additional JDBC parameters

Définissez des 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 à la base de données Azure SQL.

Ce champ n'est pas disponible si la case Use an existing connection 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 tMSSqlOutput 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.

Ignore date validation

Cochez cette case pour ignorer la validation de la date et insérer les données directement dans la base de données pour les types de données DATE, DATETIME, DATETIME2 et DATETIMEOFFSET.

Enable debug mode

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

Support null in "SQL WHERE" statement

Cochez cette case pour prendre en compte les valeurs Null d'une table de base de données.

Remarque :

Assurez-vous que la case Nullable est bien cochée pour les colonnes du schéma correspondantes.

tStatCatcher Statistics

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

Use Batch

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

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

Remarque :

Si vous sélectionnez l'option Single Insert Query dans la liste Action on data, la taille des lots doit être inférieure ou égale à la limite des marqueurs de paramètres autorisés par le pilote JDBC (généralement 2000), divisé par le nombre de colonnes.

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.

Enable parallel execution

Cocher cette case permet de traiter plusieurs flux de données simultanément. Cela permet de traiter les données plus rapidement. Notez que cette fonctionnalité dépend de la capacité de la base de données ou de l'application à gérer plusieurs insertions en parallèle ainsi que le nombre de processeurs utilisés. Dans le champ Number of parallel executions, vous pouvez :
  • Saisir le nombre d'exécutions parallèles désiré.

  • Appuyer sur Ctrl+Espace et sélectionner la variable de contexte dans la liste. Pour plus d'informations, consultez le Guide utilisateur du Studio Talend .

Notez que, lorsque l'exécution parallèle est activée, il n'est pas possible d'utiliser les variables globales pour récupérer les valeurs de retour dans un sous-job.

Avertissement :
  • Le champ Action on table n'est pas disponible avec la fonction de parallélisation. Ainsi, pour créer une table, vous devez utiliser un composant tCreateTable.

  • Lorsque l'exécution parallèle est activée, il n'est pas possible d'utiliser les variables globales pour retrouver les valeurs de retour dans un sous-job.

Global Variables

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.

QUERY : requête traitée. Cette variable est une variable After 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, lorsque le composant contient cette case.

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

Règle d'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 permet de faire des actions sur une table ou les données d'une table d'une base de données MSSql. 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 Récupérer les données erronées à l'aide d'un lien Reject du composant tMysqlOutput.

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.

La table Dynamic settings est disponible uniquement lorsque 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 de la vue Basic settings devient inutilisable.

Pour des exemples relatifs à l'utilisation des paramètres dynamiques, consultez Lire des données dans des bases de données à l'aide de connexions dynamiques basées sur les variables de contexte et 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 paramètres dynamiques et les variables de contexte, consultez le Guide utilisateur du Studio Talend.

Limitation

Lorsque l'option Single Insert Query est sélectionnée dans la liste Action on data, une Instruction Préparée SQL est générée, par exemple, INSERT INTO table (col1, col2, col3) VALUES (?,?,?) , (?,?,?) , (?,?,?) ,(?,?,?) . Entre les parenthèses se trouvent les groupes de paramètres, dont le nombre ne peut en général pas dépasser 2000, selon le pilote JBDC. La taille des lots doit être configurée de manière à respecter cette limite, c'est-à-dire qu'elle ne doit pas dépasser 2000.

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 Installer des modules externes.