tMysqlOutputBulk - 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 tMysqlOutputBulk

Les composants tMysqlOutputBulk et tMysqlBulkExec 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 tMysqlOutputBulkExec, 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 chargement des données dans la base de données.

Famille du composant

Databases/MySQL

 

Fonction

Ecrit un fichier composé de colonnes et basé sur le délimiteur défini et sur les standards MySQL.

Objectif

Prépare le fichier à utiliser comme paramètre dans la requête INSERT servant à alimenter une base de données MySQL.

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.

 

File Name

Nom du fichier à générer.

Ce fichier est généré sur la même machine que le Studio Talend ou que le Job contenant un tMysqlOutputBulk.

  Append Cochez cette option pour ajouter des nouvelles lignes à la fin du fichier.

 

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

  

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

 Advanced settings

Row separator

Chaîne (ex : "\n" sous Unix) séparant les lignes.

 

Field separator

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

  Text enclosure Caractères utilisés pour entourer le texte.
  Create directory if does not exist Cette case est cochée par défaut. Cette option permet de créer le dossier contenant le fichier de sortie s'il n'existe pas déjà.
  Custom the flush buffer size Cochez cette case pour personnaliser la taille de la mémoire utilisée pour stocker temporairement les données, et dans le champ Row number, saisissez le nombre de lignes après lesquelles la mémoire est à nouveau libérée.
  Records contain NULL value Cette case est cochée par défaut. Elle permet de prendre les champs de valeur NULL en compte. Si vous la décochez, les valeurs NULL seront remplacées par des valeurs vides.
  Check disk space Cochez cette case afin de retourner une exception durant l'exécution si le disque est plein.

 

Encoding

Sélectionnez l'encodage à partir de la liste ou sélectionnez Custom et définissez-le manuellement. Ce champ est obligatoire pour la manipulation des données de base de données.

  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.

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 est généralement utilisé avec le composant tMysqlBulkExec. Ensemble, ils offrent un gain de performance important pour l'alimentation d'une base de données MySQL.

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 la page https://help.talend.com/display/KB/How+to+install+external+modules+in+the+Talend+products (en anglais) ou la section décrivant comment configurer le studio, dans le Guide d'installation Talend.

Scénario : Insérer des données transformées dans une base MySQL

Ce scénario décrit un Job contenant quatre composants dont le but est d'alimenter un base MySQL à partir d'un fichier paramètres contenant des données transformées. Deux étapes sont requises pour ce Job, d'une part pour créer le fichier paramètres qui sera utilisé dans un second temps. La première étape inclut une phase de transformation des données contenues dans le fichier.

Déposer et relier les composants

  1. Glissez et déposez les composants suivants : tRowGenerator, tMap, tMysqlOutputBulk et tMysqlBulkExec dans l'espace de modélisation.

  2. Connectez le flux principal à l'aide de connexions Row > Main.

  3. Connectez le composant de début (tRowGenerator, dans cet exemple) au composant tMysqlBulkExec à l'aide d'une connexion Trigger de type OnSubjobOk.

Configurer les composants

  1. Un composant tRowGenerator est utilisé pour générer des données de façon aléatoire. Double-cliquez sur le composant tRowGenerator pour lancer l'éditeur.

  2. Définissez le schéma des lignes à générer et la nature des données à générer. Dans cet exemple, le fichier clients à créer contient les colonnes suivantes : ID, First Name, Last name, Address, City qui sont toutes de type chaîne de caractères (string) à l'exception de l'ID qui est de type entier (integer).

    Certaines informations du schéma n'ont pas nécessairement besoin d'être affichées. Pour les dissimuler, cliquez sur le bouton Columns dans la barre d'outils et décochez les colonnes à cacher, par exemple : Precision ou Parameters.

    Utilisez le bouton [+] pour ajouter autant de colonnes que possible à votre schéma.

    Cliquez sur le bouton Refresh en haut à droite de l'éditeur pour visualiser un aperçu des lignes générées en sortie dans l'onglet Preview en bas de l'éditeur.

  3. Dans l'espace de modélisation, double-cliquez sur le composant tMap pour ouvrir son éditeur et paramétrer la transformation.

  4. Faites glisser toutes les colonnes de la table d'entrée (row1) vers la table de sortie (clients).

  5. Appliquez la transformation sur la colonne LastName en ajoutant .toUpperCase() à la fin. Cela mettra les noms des clients en majuscule.

    Cliquez sur OK pour valider la transformation.

  6. Dans l'espace de modélisation, double-cliquez sur le composant tMysqlOutputBulk pour afficher sa vue Component et paramétrer ses propriétés.

  7. Définissez le chemin d'accès et le nom du fichier à produire dans le champ File Name. Si les propriétés du fichier délimité sont conservées dans le Repository, sélectionnez l'entrée correspondante dans le champ Property type afin de les récupérer. Dans cet exemple, le nom de fichier est clients.txt.

    Le schéma est propagé à partir du composant tMap, si vous cliquez sur Yes lorsque la boîte de dialogue vous demande de confirmer la propagation. Sinon, cliquez sur le bouton Sync columns pour récupérer le schéma.

  8. Dans cet exemple, n'incluez pas les informations d'en-tête, puisque la table doit déjà les contenir.

  9. Cliquez sur OK pour valider la sortie.

  10. Double-cliquez sur le composant tMysqlBulkExec pour paramétrer la requête INSERT à exécuter.

  11. Paramétrez les informations de connexion. Il est recommandé de stocker ce type d'informations dans le Repository, afin de pouvoir les récupérer à tout moment pour tout Job.

  12. Dans le champ Table, saisissez le nom de la table à alimenter, ici, clients.

  13. Dans l'onglet Advanced settings, saisissez le séparateur de colonnes, dans le champ Fields terminated by.

  14. Vérifiez que l'encodage défini dans le champ Encoding correspond à celui de vos données.

Sauvegarder et exécuter le Job

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

  2. Appuyez sur F6 ou cliquez sur le bouton Run de la vue Run pour exécuter le Job.

La table de la base clients est alimentée avec les données du fichier notamment les données transformées dans la colonne Last name.

Pour une simple opération d'Insert ne nécessitant pas de transformation, l'utilisation du composant tMysqlOutputBulkExec permet d'économiser une étape dans le processus et ainsi de gagner en performance.

Voir également Propriétés du tMysqlOutputBulkExec.