tOracleBulkExec - 6.1

Composants Talend Guide de référence

EnrichVersion
6.1
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 Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Propriétés du tOracleBulkExec

Les composants tOracleOutputBulk et tOracleBulkExec sont généralement utilisés ensemble pour d'une part générer en sortie le fichier qui sera d'autre part utilisé comme paramètre dans l'exécution de la requête SQL énoncée. Cette exécution en deux étapes est unifiée dans le composant tOracleOutputBulkExec, détaillé dans une section séparée. L'intérêt de proposer deux composants séparés réside dans le fait que cela permet de procéder à des transformations avant le changement des données dans la base de données.

Famille du composant

Databases/Oracle

 

Fonction

Le composant tOracleBulkExec insère, ajoute, remplace ou supprime les données d'une base de données Oracle.

Objectif

Le tOracleBulkExec est un composant dédié, il permet un gain de performance lors du traitement des données de la base de données Oracle.

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.

 

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.

 

Connection type

Liste déroulante des pilotes disponibles:

Oracle OCI : Sélectionnez ce type de connexion pour utiliser l'interface d'appel de la base de données Oracle ( Oracle Call Interface) accompagnée d'un ensemble de logiciels API de langage C qui fournissent une interface à cette base de données Oracle.

Oracle Service Name : Sélectionnez ce type de connexion pour utiliser l'alias TNS que vous fournissez lorsque vous vous connectez à la base de données distante.

Oracle SID : Sélectionnez ce type de connexion pour identifier exclusivement une base de données spécifique sur un système.

Oracle Custom : Sélectionnez ce type de connexion pour accéder à une base de données contenant des clusters.

 

DB Version

Sélectionnez la version d'Oracle que vous utilisez.

 

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.

 

Schema

Nom du schéma.

 

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, puis 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 table

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

None : 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.

 

Data file name

Nom du fichier à charger.

Avertissement

Ce fichier doit être situé sur la même machine que le serveur de base de données.

 

Action on data

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

Insert : Insérer des données dans une table vide. Si la table contient déjà des données, le Job s'arrête et les données existantes restent dans la table.

Update : Mettre à jour les données existantes. Il est nécessaire de configurer la clé du schéma lorsque cette option est sélectionnée.

Append : Ajouter des données à la table, que celle-ci soit vide ou non.

Replace : Si la table contient déjà des données, supprime toutes les données existantes et insère les nouvelles données. Si la table est vide, insère les nouvelles données.

Truncate : Si la table contient déjà des données, tronque toutes les données existantes et insère les nouvelles données. Si la table est vide, insère les nouvelles données.

Avertissement

Il est nécessaire de spécifier au minimum une clé de recherche sur laquelle baser les opérations d'Update. Il est possible de définir les colonnes qui agiront comme clé de recherche à partir du schéma, pour une utilisation de base, ou à partir des options avancées (Advanced settings) pour une utilisation optimisée de ces opérations.

 

Schema et Edit schema

Un schéma est une description de lignes, il définit le nombre de champs qui sont traités et passés au composant suivant. Le schéma peut être Built-in ou distant dans le Repository.

Depuis la version 5.6, les modes Built-In et Repository sont disponibles dans toutes les solutions de 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, sélectionnez No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

 

 

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 https://help.talend.com/display/KB/Verifying+default+values+in+a+retrieved+schema (en anglais).

Advanced settings

Advanced separator (for numbers)

Cochez cette option pour modifier les séparateurs utilisés pour les nombres :

Thousands separator : définissez le séparateur utilisé pour les milliers.

Decimal separator : définissez le séparateur utilisé pour les décimaux.

 

Use existing control file

Cochez cette case si vous utilisez un fichier de contrôle (.ctl) et spécifiez son chemin d'accès dans le champ .ctl file name.

 

Record format

Définissez le format de l'enregistrement :

Default : les paramètres du format sont définis par défaut.

Stream : déterminez le séparateur de fin d'enregistrement.

Fixed : déterminez la longueur d'enregistrement.

Variable : déterminez la taille du champ spécifiant la longueur de l'enregistrement.

 

Specify .ctl file's INTO TABLE clause manually

Cochez cette case pour renseigner manuellement la clause INTO TABLE du fichier de contrôle, directement dans le code.

 

Fields terminated by

Caractère, chaîne ou expression régulière séparant les champs :

None : aucun caractère de séparation.

Whitespace : le caractère de séparation est un espace.

EOF (used for loading LOBs from lobfile) : la séparation est constituée d'un caractère de fin de fichier (End Of File).

Other terminator : la séparation est constituée d'un caractère autre que ceux précédemment énoncés.

 

Use fields enclosure

Cochez cette case si vous voulez utiliser des caractères pour entourer le texte :

Fields enclosure (left part) : caractère délimitant les champs sur la gauche.

Field enclosure (right part) : caractère délimitant les champs sur la droite.

 

Use schema's Date Pattern to load Date field

Cochez cette case pour utiliser le modèle de date contenu dans le schéma pour remplir le champ concernant la date.

 

Specify field condition

Cochez cette case pour définir une condition de chargement des données.

 

Preserve blanks

Cochez cette case pour conserver les espaces vides.

 

Trailing null columns

Cochez cette case pour charger des données avec des colonnes vides.

 

Load options

Cliquez sur le bouton [+] afin d'ajouter des options de chargement des données :

Parameter : choisissez l'un des paramètres de chargement à partir de la liste déroulante.

Value : définissez la valeur à attribuer au paramètre.

 

NLS Language

A partir de la liste déroulante, définissez la langue utilisée pour les données qui ne sont pas codées en Unicode.

 

Set Parameter NLS_TERRITORY

Cochez cette case pour modifier les conventions d'appellation utilisées pour la numérotation des jours et des semaines. La valeur par défaut est celle du système d'exploitation.

 

Encoding

Sélectionnez l'encodage dans la liste ou saisissez-le entre guillemets doubles si le type d'encodage utilisé n'existe pas dans la liste. Ce champ est obligatoire pour la gestion de données de bases de données.

 

Output

Sélectionnez la sortie à utiliser pour récupérer la sortie standard de la base Oracle :

to console : vers la console.

to global variable : vers la variable globale.

 

Convert columns and table names to uppercase

Cochez cette case pour mettre le nom des colonnes et celui de la table en majuscules.

 

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_DATA : nombre de lignes lues. Cette variable est une variable After et retourne un entier.

NB_LINE_BAD : nombre de lignes rejetées. 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.

RETURN_CODE : code retour indiquant le résultat du traitement. 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 dédié offre performance et flexibilité lors de requêtes sur les bases de données Oracle.

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

Le serveur/client de la base de données doit être installé sur la même machine que le Studio Talend ou que le Job contenant un tOracleBulkExec afin que le composant fonctionne correctement.

Scénario : Supprimer et insérer des données dans une base Oracle

Ce scénario décrit comment supprimer le contenu d'une base de données Oracle et insérer de nouvelles données à partir du contenu d'un fichier d'entrée. Le Job est constitué de trois composants qui créent le contenu, le transfèrent dans un fichier qui sera ensuite chargé dans la base Oracle après suppression des données de la table.

Construire le Job

  1. Cliquez et déposez les composants suivants de la Palette dans l'espace de modélisation graphique : tOracleInput, tFileOutputDelimited et tOracleBulkExec.

  2. Connectez le composant tOracleInput au tFileOutputDelimited à l'aide d'un lien Row > Main.

  3. Reliez le tOracleInput au tOracleBulkExec à l'aide d'un lien OnSubjobOk.

Configurer les composants

  1. Paramétrez les informations de connexion à la base de données Oracle. Il est conseillé de stocker ces informations dans une métadonnée du Repository pour pouvoir les réutiliser par la suite dans tous vos Jobs.

  2. Paramétrez le schéma, s'il n'est pas conservé dans le Repository. Dans cet exemple, le schéma contient les quatre colonnes suivantes : ID_Contract, ID_Client, Contract_type et Contract_Value.

  3. Dans la liste Encoding, sélectionnez l'option Custom et définissez AL32UTF8 comme encodage.

  4. Dans la vue Basic settings du composant tFileOutputDelimited, paramétrez ses propriétés, notamment les champs File Name, Row separator et Field separator avec respectivement le chemin d'accès et le nom du fichier, le séparateur de lignes et de champs.

  5. Double-cliquez ensuite sur le composant tOracleBulkExec pour définir les propriétés d'alimentation de la base de données.

  6. Dans la liste Property Type, sélectionnez le mode Repository si vous avez stocké les informations de connexion à la base de données 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.

  7. Configurez si nécessaire les paramètres de connexion dans les champs Host, Port, Database, Schema, Username et Password.

  8. Dans le champ Table, renseignez le nom de la table à alimenter et dans le champ Action on data, sélectionnez l'action à effectuer, ici, Insert.

  9. Dans la liste Schema, sélectionnez le mode Built-In puis cliquez sur le bouton [...] à côté du champ Edit Schema pour définir les données à passer au composant suivant.

  10. Cliquez sur l'onglet Advanced settings pour configurer les paramètres avancés du composant.

  11. Cochez la case Use an existing control file si vous avez stocké les informations relatives à l'état de la base de données dans un fichier de contrôle (.ctl). Sinon, renseignez, si nécessaire, les champs suivants manuellement : Record format, Specify .ctl file's INTO TABLE clause manually, Field terminated by, Use field enclosure, Use schema's Date Pattern to load Date field, Specify field condition, Preserve blanks, Trailing null columns, Load options, NLS Language et Set Parameter NLS_TERRITORY en fonction de votre base de données.

  12. Dans la liste Encoding, sélectionnez le type d'encodage ou saisissez-le entre guillemets doubles s'il n'est pas dans la liste.

  13. Dans la liste Output, sélectionnez l'option to console, pour afficher la sortie standard de la base dans la console.

Exécuter le Job

  1. Appuyez sur les touches Ctrl+S pour sauvegarder votre Job.

  2. Appuyez sur F6 pour exécuter le Job. Le log s'affiche dans la console de la vue Run et la table est alimentée par les données du fichier paramétré.

Voir également : Scénario : Insérer des données dans une base MySQL.