tMysqlTableList - 6.1

Composants Talend Open Studio Guide de référence

EnrichVersion
6.1
EnrichProdName
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
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Propriétés du tMysqlTableList

Famille du composant

Databases/MySQL

 

Fonction

Le composant tMysqlTableList effectue une opération d'itération sur toutes les tables d'une base de données, grâce à une connexion MySQL définie.

Objectif

Le composant tMysqlTableList permet de lister les noms des tables MySQL grâce aux commandes SELECT et WHERE.

Basic settings

Component list

Sélectionnez le composant tMysqlConnection dans la liste si vous prévoyez d'ajouter plus d'une connexion à votre Job en cours.

 

Where clause for table name selection

Saisissez la commande WHERE permettant d'identifier les tables sur lesquelles effectuer l'opération d'itération.

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.

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 

CURRENT_TABLE : nom de la table sur laquelle se fait l'itération. Cette variable est une variable Flow et retourne une chaîne de caractères.

NB_TABLE : nombre de tables itérées jusqu'à présent. Cette variable est une variable Flow 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

Vous pouvez utiliser ce composant en association avec les autres composants MySQL, notamment avec le tMysqlConnection.

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 : Effectuer une opération d'itération sur des tables et en effacer le contenu grâce à un modèle SQL défini par l'utilisateur (SQL Template)

Le scénario Java suivant décrit un Job à trois composants qui permet d'effectuer une opération d'itération, dans les tables spécifiées d'une base de données MySQL, en utilisant une clause de type WHERE. Le Job permet ensuite d'effacer le contenu de ces tables directement sur le SGBD grâce à un modèle SQL (SQL Template) défini par l'utilisateur.

Pour une utilisation avancée, commencez par créer une connexion à la base de données qui contient les tables que vous voulez vider de leur contenu.

  • Dans la vue en arborescence du Repository, développez le nœud Metadata puis cliquez-droit sur DB Connections pour créer une connexion à la base de données de travail et stocker les informations de connexion en local.

    Pour plus d'informations sur les métadonnées (metadata), consultez le Guide utilisateur du Studio Talend.

    Sinon, déposez un composant tMysqlConnection dans l'éditeur graphique et renseignez les paramètres de connexion manuellement.

  • A partir du Repository, déposez dans l'éditeur graphique la connexion que vous venez de créer.

    La boîte de dialogue [Components] s'affiche à l'écran.

  • Sélectionnez le composant tMysqlConnection puis cliquez sur OK.

    Le composant tMysqlConnection apparait alors dans l'éditeur graphique et les paramètres de connexion, accessibles depuis la vue Basic settings, sont automatiquement renseignés.

  • A partir de la Palette, cliquez-déposez les composants tMysqlTableList et tELT dans l'éditeur graphique.

  • Reliez les composants tMysqlConnection et tMysqlTableList à l'aide d'un lien Trigger de type OnSubjobOk.

  • Reliez les composants tMysqlTableList et tELT à l'aide d'un lien de type Iterate.

  • Double-cliquez sur le tMysqlConnection pour afficher la vue Basic settings du composant si vous voulez en vérifier les paramètres de connexion.

Dans cet exemple, connectez-vous à une base de données MySQL appelée examples.

  • Dans l'éditeur graphique, double-cliquez sur le composant tMysqlTableList pour en afficher les paramètres de base et les définir (vue Basic settings).

  • Sélectionnez la connexion MySQL appropriée à partir de la liste déroulante Component list, dans le cas où vous utilisez plus d'une connexion.

  • Renseignez la clause de type WHERE dans le champ approprié, en veillant à utiliser la bonne syntaxe, pour effectuer une itération sur la ou les tables dont vous voulez effacer le contenu.

    Dans ce scénario, opérez l'itération sur toutes les tables dont le nom commence par "ex".

  • Dans l'éditeur graphique, double-cliquez sur le composant tELT pour en afficher les paramètres de base et les définir (vue Basic settings).

  • Dans le champ Database Name, renseignez le nom de la base de données où se trouvent les tables sur lesquelles vous voulez travailler.

  • Sélectionnez la connexion MySQL appropriée à partir de la liste déroulante Component list, dans le cas où vous utilisez plus d'une connexion.

  • Cliquez dans le champ Table name et appuyez sur Ctrl+Espace pour atteindre la liste générale des variables.

  • A partir de cette liste de variables, sélectionnez ((String)globalMap.get("tMysqlTableList_1_CURRENT_TABLE")).

Comment créer votre propre modèle SQL (SQL Template) :

  • Dans la vue en arborescence du Repository, développez successivement les nœuds SQL Templates et MySQL.

  • Cliquez-droit sur le nœud UserDefined et sélectionnez l'option Create SQLTemplate à partir de la liste.

    L'assistant [New SQLTemplate]s'affiche à l'écran.

  • Saisissez un nom pour le nouveau modèle (SQL template) et remplissez les autres champs si nécessaire, puis cliquez sur Finish pour fermer l'assistant.

    L'éditeur de modèle SQL s'affiche dans l'éditeur graphique.

  • Supprimez le code existant et saisissez le code permettant d'exécuter l'action voulue, c'est-à-dire, ici, effacer le contenu de toutes les tables dont les noms commencent par "ex".

Note

Dans un code SQL template, il est impératif d'utiliser le nom exact de la variable, en association avec le paramètre désignant le nom de la table ("__TABLE-NAME__" dans cet exemple). Pour afficher le nom de la variable utilisée, positionnez votre curseur sur le champ Table Name de la vue Basic settings du composant tELT.

  • Appuyez sur Ctrl+S pour sauvegarder le nouveau modèle que vous venez de définir.

La prochaine étape consiste à ajouter ce nouveau modèle SQL template à la liste de modèles du même type dans le composant tELT.

Comment ajouter votre propre modèle SQL à la liste de modèles du même type :

  • Dans la vue Component du composant tELT, cliquez sur l'onglet SQL Templates pour afficher la liste de modèles SQLTemplate List.

  • Cliquez sur le bouton Add et ajoutez deux lignes de modèles SQL template.

  • Cliquez sur la première ligne pour afficher un menu déroulante puis cliquez sur la flèche de ce menu pour dérouler la liste des modèles.

  • Dans la liste, sélectionnez le modèle SQL template que vous venez de créer.

  • Assurez-vous que le modèle de la seconde ligne est bien en mode Commit.

  • Enregistrez le Job et appuyez sur F6 pour l'exécuter.

Toutes les tables de la base de données MySQL examples dont le nom commence par "ex" sont alors vidées de leur contenu.