Prise en main de Talend

Le logiciel Talend Data Integration permet, entre autres, et définir des processus de chargement de données. Ces processus, dits ETL1), peuvent être édités graphiquement dans l'IDE Talend, cette dernière générant alors du code Java pour effectuer en pratique la transformation et le chargement des données dans une base, par exemple dans un entrepôt de données. Un processus consiste en un ensemble de composants, chacun chargé d'un tâche précise: lire un certain fichier, filtrer des lignes, effectuer un mapping de colonnes, faire une transformation de valeurs, fusionner des données, ou encore écrire le résultat dans un fichier ou l'insérer dans un table d'un SGBD.

Mini tutoriel

Ce tutoriel suppose d'avoir accès à une base MySQL. Il peut être adapté à tout autre SGBDR en remplaçant les composants tMySQLOutput par les composants appropriés pour le SGBD concerné. Installer et lancer talend (téléchargement)

Importer puis lancer le projet Demo de Talend.

Dans ce tutoriel, on travaillera sur les données contenues dans l'archive data-edo.zip.

L'arborescence Jobs contient un ensemble de processus illustrant l'utilisation des différents composants disponibles.

Créer un nouveau Job. Dans la palette à droite, sélectionner le composant Fichier → Lecture → tFileInputDelimited, puis glisser déposer le composant dans l'éditeur. Sélectionner le composant tFileInputDelimited_xx dans l'éditeur, puis choisissez l'onglet Component dans la zone du bas. Changer le nom du fichier CSV pour indiquer l'emplacement du fichier reg2011.txt.

Regarder le contenu de ce fichier dans un éditeur de texte. Revenez dans Talend et changez le caractère séparateur de champ. Indiquer le bon nombre de lignes d'entête, puis éditez le schéma (bouton …) et ajoutez pour chaque colonne du fichier reg2011.txt la description de son schéma.

Depuis la palette, ajouter un composant Logs & Erreurs → tLogRow. Cliquez-droit sur le tFileInputDelimited_xx → Ligne → Main, puis sur cliquez sur le tLogRow_xx pour établir une connexion entre les deux. En bas, passez dans l'onglet “Exécuter (Job toto)”, lancer l'exécution et vérifiez rapidement la cohérence de ce qui s'affiche.

Créer une nouvelle table regions_test(numero,nom) dans votre base de données. Dans Talend, ajouter un composant Bases de données → MySQL → tMySQLOutput. Ouvrez l'arborescence Métadonnées sur la gauche et créez une nouvelle connexion. Renseignez les champs de façon à vous connecter au bon schéma dans la base MySQL. Puis faites un clic droit sur la connexion → Récupérer le schéma. Revenir sur votre composant tMySQLOutput. Indiquez Référenciel comme type de propriété et choisissez Votre nouvelle connexion (bouton …), puis indiquez la table regions_test. Pour le schéma, indiquez également Référenciel et choisissez à nouveau regions_test.

Ajouter un composant Transformation → tMap. Supprimez la connexion tFileInputDelimited → tLogRow et remplacez la par un connexion vers le tMap. Ajoutez une autre connexion, entre le tMap et le tMySQLOutput. Si vous n'avez pas eu de proposition pour récupérer le schéma du composant cible, éditez le schéma du tMySQLOutput et cliquez sur la double flèche vers la gauche pour copier le schéma de la BD vers le schéma d'entrée. Sélectionnez le tMap et lancer l'éditeur de mapping (bouton …) depuis l'onglet Component. Faire un glissez déposer du champ REGION vers le champ numero et du champ NCC vers le champs nom. Ajoutez enfin un connexion vers le tLogRow, que vous aurez configuré préalablement pour utiliser le schéma de la table regions_test. Effectuer un mapping identique à celui vers le tMySQLOutput. Lancez le job et vérifiez qu'il a correctement fonctionné.

Créer un nouveau composant pour lire le fichier depts2011.txt. Créer une table departements_test(numero,nom,nom_region). Créer un composant pour écrire dans cette table (il peut être utile de mettre à jour les schémas dans les métadonnées connexions Talend). Ajouter un composant Transformation → tJoin, puis une connexion depuis le composant qui lit dans depts2011.txt vers ce tJoin et une connexion depuis le tMap vers ce tJoin. Connecter ensuite le tJoin vers un nouveau tMap, ce dernier étant connecté à la sortie dans la table departements_test. Vérifier les différents schémas (e.g. cohérence du schéma de sortie du premier tMap avec le schéma d'entrée lookup du tJoin). Dans les propriété du tJoin, spécifier l'attribut de jointure (region).

Tester.

1)
Extract, Transform, Load