Insérer des données aléatoire dans Mysql


Objectif :

Au sein de ce tutoriel, nous allons voir ensemble comment insérer des données aléatoire dans une table mysql en utilisant les composants tMysqlOutput ainsi que tRowGenerator.

Création de la base de données et de la table

Ce tutoriel utilise l’environnement windows ainsi que Mysql Workbench.
Nous appelerons notre base de données test1 .
Pour créer notre base de données, il suffit d’exécuter la requête sql suivante :

Nous appellerons notre trable employee et cette contiendra les champs suivants :
1) L’id d’un employé
2) Le nom d’un employé
3) L’âge d’un employé
4) La fonction d’un employé

Pour créer notre table de test il suffit d’exécuter les deux requêtes sql suivantes :

L’id n’est pas en AUTO_INCREMENT car l’auto incrémentation sera géré au sein de Talend avec une séquence numérique.

Vous pouvez vérifier que la table existe bien comme le montre l’image ci-dessous.

A présent que notre base de données et notre table ont été créées, nous pouvons nous lancer dans la création du job Talend.

Création du job Talend

Pour créer notre job Talend, il suffit de faire un click droit sur job design dans le repository .

Nommer votre job comme il vous plaiera en faisant attention de ne pas mettre d’espace ou de caractères spéciaux dans le nom du job.

Votre job est créé et le panneau de design doit apparaître.

A présent, nous devons créer la connexion à la base de données mysql.
Pour ce faire, cliquez droit sur Db Connections dans Metadata et choisissez Create connection .

Une fenêtre apparaît et il vous est demandé le nom de la connexion. Choisissez le nom de connexion que vous souhaitez, cela n’a pas d’importance pour la suite.

Dans un deuxième temps (après avoir cliqué sur Next ), vous devez renseigner les informations nécessaire à la connexion à la base mysql créé précédemment :
1) Le login
2) Le mot de passe
3) Le serveur (doit être localhost à moins que votre base de données se trouve sur un poste distant)
4) Le port (par défaut 3306)
5) La base de données test1 pour notre cas.

Vous pouvez tester la connexion directement en cliquant sur le bouton check . Si tout s’est bien passé, vous devirez avoir la fenêtre suivante :

Si votre test de connexion se passe bien, vous pouvez finir cette étape en cliquant sur finish .

Mantenant Talend peut se connecter à votre base de données, mais il n’a pas encore récupéré notre table créée précédemment. Pour cela il faut lui dire explicitement de récupérer les objets de notre base de données, en l’occurence notre table employee .
Faite un clic droit sur votre connexion créée dans Metadata et choisissez Retrieve Schema .

Une fenêtre s’ouvre, et vous pouvez directement cliquer sur Next

Dans la seconde fenêtre, il suffit de sélectionner les tables que vous voulez récupérer et ensuite cliquer sur Next .

Si toutes les colonnes des tables selectionnées à l’étape précédente vous intéresses, vous pouvez cliquer directement sur finish .

Rendez-vous ensuite dans votre connexion dans Metadata et dans le dossier Table schemas . Normalement, la table employee est apparu avec ses colonnes.

Le composant qui va servir à écrire dans le atable employee se nomme tMysqlOutput . Placer ce composant dans le job.

Le composant qui permet de créer des lignes de données aléatoire se nomme tRowGenerator . Placer un composant tRowGenerator dans le job.

Nous allons ensuite connecter les deux composants entre eux en cliquant droit sur le premier composant et en choisissant Row et Main . Il vous sera demandé si vous voulez propager les changements. A cette question, il faudra préciser oui .

La dernière étape avant le test de notre job est le paramétrage du composant tRowGenerator . Il va falloir préciser les fonctions qui généreront le données aléatoires.

Pour cela double-cliquer sur le composant tRowGenerator .
Une fenêtre s’ouvre et dans cette fenêtre il faudra préciser les fonctions de génération des données.
Pour la preimère colonne qui est l’id, choisissez la fonction numeric.sequence

Pour la deuxième colonne, choisissez la fonction getLastName() afin de générer des noms aléatoires.

Pour la troisième colonne qui est l’âge, choisissez la fonction random de 20 à 100 par exemple.

Pour la dernière colonne qui est la fonction, Talend ne propose pas de fonction prédéfinie. Nous allons donc créer notre propre fonction.
Pour ce faire, cliquer sur Routine dans le repository et chosissez create Routine .

Une fenêtre s’ouvre et vous demande le nom de la routine. Nous pouvons choisir EmployeeGenerator . Après avoir cliqué sur finish .

La classe EmployeeGenerator apparaît. Dans cette classe, copier coller le code suivant qui correspond à notre fonction de génération des fonctions de nos employés.

Pour que cette fonction soit disponible dans le composant tRowGenerator , vous devez redémarrez Talend.
Après avoir redemarrez, rendez-vous dans la fenêtre de paramétrage du composant tRowGenerator et sur la ligne qui correspond à la données fonction_employee choisissez la fontion créée précédemment et validez cette modification.

Le job est terminé, il reste à tester le job. Pour cela rendez-vous dans la vue Run et cliquez sur le bouton Run . Si tout se passe bien, vous devriez avoir une console sans ligne route, comme li’mage ci-dessous :

Vous pouvez vérifier que le job à bien fonctionner, en allant regarder dans Mysql Workbench que la table employee s’est bien rempli avec 100 nouvelles lignes.

La requête sql est la suivante :
select * from employee;

© 2016 - 2017 réalisé par Benjamin LOMBARD