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 ou l'utilisatrice (SQL Template)
Le scénario suivant se compose d'un Job à trois composants itérant sur une table donnée à partir d'une base de données MySQL, à l'aide d'une clause 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 ou l'utilisatrice.
Pour plus de technologies supportées par Talend, consultez Composants Talend.
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 concernant les métadonnées, consultez le Guide d'utilisation du Studio Talend.
Sinon, déposez un composant tMysqlConnection dans l'espace de modélisation graphique et renseignez les paramètres de connexion manuellement.
-
À partir du Repository, déposez dans l'espace de modélisation graphique la connexion que vous venez de créer.
La boîte de dialogue Components s'ouvre.
-
Sélectionnez le composant tMysqlConnection, puis cliquez sur OK.
Le composant tDBConnection_1 s'affiche dans l'espace de modélisation graphique et les paramètres de connexion de la vue Basic settings sont automatiquement renseignés.
-
Déposez les deux composants suivants de la Palette dans l'espace de modélisation graphique : tMysqlTableList (affiché en tant que tDBTableList_1) et tSQLTemplate.
-
Reliez le tDBConnection_1 au tDBTableList_1 à l'aide d'un lien OnSubjobOk.
-
Reliez le composant tMysqlTableList au tSQLTemplate à l'aide d'un lien Iterate.
-
Si nécessaire, double-cliquez sur le tDBConnection_1 pour afficher la vue Basic settings du composant pour en vérifier les paramètres de connexion.
Dans cet exemple, connectez-vous à une base de données MySQL appelée examples.
-
Dans l'espace de modélisation graphique, double-cliquez sur le composant tDBTableList_1 pour en afficher et configurer les paramètres de base dans la 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'espace de modélisation graphique, double-cliquez sur le composant tSQLTemplate_1 pour en afficher et configurer les paramètres de base dans la vue Basic settings.
-
Dans le champ Database Name, renseignez le nom de la base de données contenant les tables à traiter.
-
Dans la liste déroulante Component list, sélectionnez le composant de connexion MySQL adéquat si vous utilisez plus d'une connexion.
-
Cliquez dans le champ Table name et appuyez sur Ctrl+Espace pour accéder à la liste des variables globales.
-
Dans la liste des variables globales, sélectionnez tDBTableList_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 SQLTemplates'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".
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 des paramètres simples du composant tSQLTemplate_1.
-
Appuyez sur Ctrl+S pour sauvegarder le nouveau SQL template personnalisé.
La prochaine étape consiste à ajouter ce nouveau SQL template à la liste de modèles du même type dans le composant tSQLTemplate_1.
Comment ajouter votre propre modèle SQL à la liste de modèles du même type :
-
Dans la vue Component du composant tSQLTemplate_1, 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éroulant 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.
-
Sauvegardez votre 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.