Dans ce tutoriel nous allons voir ensemble comment écrire des données dans une base de données.
Dans ce tutoriel nous allons voir ensemble comment écrire des données dans une base de données.
Pour ce faire nous allons utiliser des notions qui ont étaient abordée dans les tutoriels précédents. Je vous invite donc à commencer par ces derniers si vous ne les avez pas encore suivis.
Sinon, démarrons tout de suite en créer un nouveau job que nous allons appeler « Ecriture_bdd »
Dans les anciens tutoriels, nous avons créer un fichier xml nommé « Personne_adresse.xml », nous allons le réutiliser ici.
Si vous n’avez pas ce fichier, vous pouvez le télécharger : cliquez ici.
Bien comme je l’ai dit, l’objectif dans un premier temps va être de charger le fichier dans Talend, il faut donc un composant tFileInputXML que vous allez configurer comme suit.
Je ne vais pas m’attarder sur la configuration de ce composant, nous l’avions vu dans le tutoriel « Tri-fichier », je vous laisse donc le soin d’aller y jeter un œil sous vous en ressentez le besoin.
Retenez simplement que depuis que nous avons mis en place les métadonnées, chaque fois que cela sera possible j’utiliserai un « Schéma Référentiel ».
Le tLogRow permet simplement de nous assurer que le fichier est bien lu par Talend.
Avant de continuer, nous savons déjà que nous allons utiliser une connexion à une base de données. Il pourrait donc être intéressant de sauvegarder ses informations dans un schéma référencé.
Ainsi dans l’onglet « Métadonnées » faites un clic droit sur « Connexions aux bases de données » puis « Créer une connexion ».
Remplissez le nom, objectif et la description puis cliquez sur « Next ».
A ce stade nos chemins risquent de se séparer, pas pour longtemps je vous rassure.
En effet vous allez devoir sélectionner le type de base de données que vous utilisez.
Pour ma part ce sera du « MySQL MariaDB ». A vous de remplir correctement les informations en fonction du serveur de base de données que vous possédez.
Une fois les informations remplies, vous pouvez cliquer sur « Tester la connexion » afin de vérifier qu’elle s’établisse correctement.
Remarque : Si vous utilisez une base de données locale, il se peut que vous rencontriez des problèmes de connexions dus au SSL. Ajoutez donc « &useSSL=false » dans les « Paramètres supplémentaires » après « noDatetimeStringSync=true ».
Vous pouvez maintenant cliquer sur « Finish ».
Votre connexion est maintenant créée, il ne vous reste qu’à faire un glisser déposer de vos métadonnées vers votre Job Designer.
La fenêtre qui s’ouvre vous donne une liste des composants qui peuvent être utilisés avec ce genre de métadonnées.
Ici nous voulons écrire des données dans la base, nous allons donc sélectionner un tDBOutput. La partie entre parenthèses (MySQL) est susceptible d’être différente de votre côté si vous travaillez avec une autre base que du MySQL.
Reliez le tLogRow au tDBOutput avec une connexion de type « Main » puis ouvrez les propriétés du composant tDBOutput.
Configurez le composant comme sur l’image ci-dessous.
Sélectionnez « Créer si la table n’existe pas » dans le champ « Action sur la table ».
Et choisissez un schéma en mode « Référentiel » puis le schéma générique que nous avons nommé « personne-adresse ».
Remarquez qu’un « Warning » est présent sur notre composant. Il semblerait qu’il y ait un souci sur notre schéma.
Rien de grave ne vous inquiétez pas, c’est jusque que nous n’avons pas définit le mapping base de données de notre schéma générique.
Pour se faire double cliquez sur le schéma « personne_adresse» dans votre onglet « Référentiel ».
Vous pouvez mettre à jour la description ainsi que la version comme suit.
Cliquez sur « Next ».
Ici cochez la case qui permet de sélectionner le mapping, puis choisissez celui qui correspond à cotre configuration.
Notez qu’une nouvelle colonne apparait, celle qui permet de mapper le type Java en SQL selon votre base de données.
Cliquez sur le menu déroulant de chaque variable et sélectionnez le type approprié. Pour ma part, le voici.
Cliquez maintenant sur « Finish » et propagez les changements.
Talend va détecter qu’une mise à jour a été effectuée sur le schéma générique et vous listera l’ensemble des jobs à mettre à jour.
Sélectionnez tout et cliquez sur « OK ».
Observez votre job, le « Warning » a disparut. Revenez tout de même dans sa configuration, et changez le nom de la table.
Vous pouvez maintenant exécuter le job.
Connectez-vous a votre base de données, et vérifiez que la table soit bien créée et peuplée.
La première partie de ce tutoriel est terminé, nous allons maintenant modifier une peu notre job, et notamment ajouter une autre table.
Versionnez votre job et modifiez ses propriétés comme suit.
Cliquez sur « Finish » et réouvrez votre job.
Dans cette partie nous allons créer une table voiture, dans laquelle nous aurons une référence à l’identifiant du propriétaire.
Pour se faire, il nous faut ajouter un tRowGenerator et lui ajouter les champs.
Le premier champ est donc un compteur incrémentiel qui génère l’identifiant des voitures, au même titre que l’identifiant des personnes.
Le second prend au hasard une des valeurs fournies en paramètres.
Le troisième quant à lui permet d’attribuer au hasard l’identifiant d’une personne à la voiture.
Laissez le nombre de lignes à 5.
Avant de cliquer sur « OK » nous allons sauvegarder ce schéma en tant que schéma générique, nous pourrions en avoir besoins plus tard.
Cliquez donc sur la petite disquette bleue.
Puis sauvegardez le schéma. Liez votre composant tRowGenerator a un tLogRow.
Vous possédez à présent deux sous job sur votre job designer. Nous allons désactiver le premier car nous n’avons pas besoin qu’il s’exécute de nouveau.
Faite un clic droit sur le premier composant de votre premier sous job (le tFileInputXML) et cliquez sur « Deactivate current subJob ».
Exécutez le job et observez. Seul votre deuxième sous job c’est lancé.
Il nous faut maintenant ajouter un composant tDBOutput. Ajoutez-le et configurez-le comme suit puis réactivez votre premier sous job.
Observez le deuxième composant tDBOutput il possède un « warning » pour les mêmes raisons que précédemment. Il va donc falloir corriger le mapping comme suit.
Revenez sur l’onglet de configuration du composant tRowGenerator et choisissez le schéma générique que nous avons défini pour les voitures.
Exécutez le job et regardez dans votre base de données que les informations y soient présente.
Vous pouvez enregistrer les modifications et versionner votre job, le tutoriel sur l’écriture en base est terminé.