Index de l'article

Job d'import avec le composant tJavaflex

Cas courant où l'on souhaite agréger des données provenant de plusieurs bases dans un entrepôt, et/ou exécuter un script en dehors du serveur de production.

Vous avez déjà importé les deux fichiers de test customer et warehouse_customer dans deux serveurs différents, tous deux connectés à votre projet Talend. Ces deux tables ont l'exacte même structure.

Considérez la table customer comme la table du serveur de production, et la table warehouse_customer comme l'entrepôt, la base sur laquelle nous souhaitons re-travailler les données, les modifier, les agréger... Imaginez qu'au lieu d'avoir une seule table, nous en ayons plusieurs, avec des jointures à rétablir, des livrables à produire sur demande... Nous serions alors content d'automatiser les imports de données depuis les bases de production jusqu'à l'entrepôt de données.

job1

Composant d'entrée

Créez votre 1er job avec un clic-droit sur Job Designs/Créer un Job (Image 4). Nommez-le Import_vers_warehouse par exemple, puis Finish.

Un job vide a été créé et le Job Designer est ouvert. Nous allons commencer par appeler notre table à importer, soit notre table originale, celle du serveur de production (customer) dans un composant tMysqlInput.

Dans la Palette de droite cherchez le composant tMysqlInput et tirez-le dans le Job Designer (Image 4).

Sélectionnez le composant (il s'affiche alors dans un rectangle de redimensionnement) et allez à l'onglet Composant dans le panneau du bas (image 5). Dans Type de propriété choisissez Référentiel (c'est le référentiel de vos métadonnées).composant

Des champs apparaissent et se pré-remplissent (image 5), mais observez que vous pouvez changer la table pointée (au clavier ou via le bouton sur la droite du champ Nom de la table) et qu'une requête SQL de test est apparue dans le champ Requête. Changez la requête par "select * from customer", puis Guess schema, qui va charger le schéma temporaire de votre réquête. 

Astuce

Sur de grosses tables, cette opération de génération du schéma à cette étape du logiciel peut parfois poser problème. Essayez alors de filtrer votre requête (mention des champs à appeler au lieu de *, clause WHERE...) ou simplement d'utiliser le Schéma issu de votre Métadonnées, déja généré (la table de la connexion en question).

Composant de sortie

Faite la même chose avec la table de sortie warehouse_customer dans un nouveau composant tMysqlOutput.

Remarquez que pour ce composant de sortie (output) vous n'avez pas de requête SQL à créer. Il faudra plutôt mapper les champs qui vont recevoir les données (qui elles ont déjà été définies dans la requête SQL du composant d'entrée).

Composant JavaFlex

Nous allons maintenant appeler dans le Designer le composant tJavaFlex (dans la Palette, onglet Code Utilisateur). Tirez-le dans le Designer au coté de vos deux autres composants. Maintenant créez vos relations entre vos trois composants, en tirant du clic-droit le composant d'entrée vers tJavaFlex, puis le composant tJavaFlex vers le composant de sortie (Image 6). Confirmez la récupération du schéma du composant cible.

job1 finalIl vous reste encore à Synchroniser les colonnes depuis le composant tJavaFlex et/ou éditer son schéma, afin de vérifier le mappage des champs ou le mettre à jour.

Exécutez le job (onglet Exécuter dans la panneau du bas). Classiquement Talend commitera la BDD en lots de lignes (avec une vitesse par défaut, paramétrable dans les Advanced settings des composants de sortie, mais elle convient très bien ainsi, et dépend en plus des index existants sur vos tables).

Vérifiez vos erreurs ou succès dans le log de sortie (Image 7). Les 1ère lignes en rouge sont souvent les plus instructives (du moins les plus compréhensibles...). Les erreurs les plus courantes dans ce type d'opération concerneront les accès aux Métadonnées (les connexions aux BDD) ou le mappage des champs.

Après confirmation allez vérifier votre table de sortie warehouse_customer, sa structure et ses données.

log

À ce stade vous pouvez déjà enregistrer votre projet Talend. Notez qu'un projet Talend peut être exporté sous la forme d'une archive, pour exploitation sur une autre machine. L'archive récupèrera la totalité des paramètres de votre projet, y compris les identifiants et mots de passe de connexion à vos métadonnées.

Liens ou pièces jointes
Télécharger ce fichier (address.sql)address.sql[Table address]3833 Ko
Télécharger ce fichier (countries.sql)Countries[Table SQL des pays du monde]21 Ko
Télécharger ce fichier (Cours-Talend-Eric-Quinton-2015-CC.pdf)Présentation de Talend Open Studio[PDF du cours d'Éric Quinton (IRSTEA), diffusé en 2015 grâce au réseau RBDD (CNRS) - Licence CC]789 Ko
Télécharger ce fichier (customer.sql)customer.sql[Fichier d'import SQL d'une base de contacts humains]75 Ko
Télécharger ce fichier (mes_adresses.txt)mes_adresses.txt[Table mes_adresses]0.2 Ko
Télécharger ce fichier (mes_clients.txt)mes_clients.txt[Table mes_clients]0.2 Ko
Télécharger ce fichier (mes_personnes.txt)mes_personnes.txt[Table mes_personnes]0.2 Ko
Télécharger ce fichier (person.sql)person.sql[Table person]3050 Ko
Télécharger ce fichier (society_coords.sql)society_coords.sql[Table society_coords]4 Ko
Télécharger ce fichier (warehouse_customer.sql)warehouse_customer.sql[Fichier d'import SQL d'une base entrepôt vide]1 Ko