Blog myBlog = BlogFactory.getWordPressBlog();
Quand Talend m’évite un travail fastidieux
Au cours des différents articles de ce blog, j’ai souvent parlé des outils de Talend, dont je suis fan car ils rendent bien des services dans le travail informatique.
Aujourd’hui, j’ai l’occasion de vous présenter un cas d’utilisation plus personnel, où ces mêmes outils m’ont permis d’éviter un travail bien ennuyeux. Je vous ai présenté récemment la procédure de migration que j’ai utilisée pour passer de Dotclear à WordPress.
Cette procédure n’a pas été au bout des choses et il me restait un certain nombre de petits ajustements à effectuer :
- Migrer les liens
- Migrer les réponses aux commentaires du plugin Comback 2.0
- Supprimer les acronymes de mes anciens billets (ils sont maintenant automatiquement ajoutés par le plugin Acronyms)
- Corriger les liens internes entre les anciens billets : ils ne sont plus valables
Mis bout à bout, ces différentes actions sur 65 billets constituent un travail non négligeable… et d’un intérêt proche de 0. C’est à ce moment que Talend intervient, car il m’a permis d’automatiser ces différentes tâches.
S’agissant d’un cas d’étude simple, je pense qu’il peut constituer un bon tutoriel sur un cas d’utilisation réel de cet outil. Voici donc la première partie de ce tutoriel.
Installer les bases de données de test
Pour effectuer cette migration, je vais avoir besoin de deux bases de données : celle de Dotclear et celle de WordPress. J’installe donc EasyPHP (par commodité), ainsi que les deux applications en question.
Afin de disposer de véritables données, j’importe dans leurs bases respectives :
- les données de mon ancien blog Dotclear.
- les données migrées de mon nouveau blog WordPress.
Je n’entre pas dans les détails de ces manipulations élémentaires, la documentation en ligne que l’on peut trouver étant déjà très abondante (par exemple sur l’import/export des bases de données MySQL).
Installer Talend Open Studio
Les bases de données étant créées et remplies de données de test, nous pouvons passer aux choses sérieuses. Mais avant toute chose, il va falloir installer TOS (ou Talend MDM CE, qui inclut TOS). Cette étape ne devrait poser aucun problème dès lors qu’on a un JDK en version 6 : il suffit de décompresser l’archive.
En cas de problème, un tutoriel récent décrit la procédure pas à pas de l’installation de Talend MDM.
Mise en place des métadonnées
Première bonne pratique : je configure une et une unique fois l’accès à mes bases de données. Dans TOS, cela se fait en utilisant le menu « Métadonnées » de l’arbre de navigation, à gauche :
Nous renseignons ensuite les informations sur la connexion que nous créons. Ces zones sont purement informatives, mais c’est une « bonne pratique » de les remplir. Elles permettent par la suite à l’outil de générer une documentation automatique des jobs :
Puis nous saisissons les identifiants techniques de cette connexion (adresse, port, login, mot de passe, etc.) :
Avant de terminer cette étape, le bouton « Vérifier » nous assure que tout est bon : la base de données tourne, est accessible, et nous n’avons pas fait d’erreur dans la saisie des différents identifiants.
J’attire maintenant votre attention sur le boutons « Exporter comme contexte ». Cette étape peut être différée mais il n’y a pas de raison particulière de la retarder. Comme son nom l’indique, elle permet de remplacer les paramètres de connexion « en dur » par des variables.
Ainsi, au niveau du code Java généré, on aura les remplacements :
- « localhost » devient context.BlogWP_Server
- « 3306″ devient context.BlogWP_Port
- etc.
Cette opération se fait au détriment de toutes les conventions de nommage Java (de ce point de vue, mieux vaut de toute façon ne pas regarder de trop près le code généré…) mais apporte un certain nombre d’avantages :
- elle permet de travailler avec plusieurs bases de données distinctes utilisant le même schéma de données. Pour cela, il faut rajouter dans le groupe de contextes « BlogWP » un nouveau contexte (qui peut par exemple correspondre aux identifiants de connexion à la base de validation des traitement, voire à la base de données de production)
- lors du déploiement effectif du job, après son « export batch », passer par un contexte permet d’externaliser les paramètres de configuration. Ils ne sont plus embarqués dans l’archive JAR du traitement, mais placés dans des fichiers « properties », à l’extérieur. Cela permet donc de modifier les paramètres du traitement avant son lancement sans avoir à repasser par le studio de développement, une re-compilation, un nouvel export, etc.
Passons maintenant à la partie la plus intéressante : toutes ces opérations que nous venons de faire vont nous permettre d’extraire automatiquement de la base de données les schémas des différentes tables qui la composent, et ensuite de les utiliser directement dans l’éditeur visuel, sans avoir à trop nous en préoccuper. Pour cela, il faut sélectionner la métadonnée nouvellement créée et demander la récupération de son schéma :
Je passe rapidement sur les 3 écrans qui suivent. Les options par défaut conviennent généralement. Ceux qui veulent rentrer dans le détail (du troisième écran principalement) pourront véritablement affiner le mapping entre les données de la base et les classes Java, mais cela s’adresse plutôt à des utilisateurs expérimentés, et n’est pas l’objet de cet article).
Voici donc directement le résultat :
Nous allons vérifier via un job élémentaire qu’on arrive bien à récupérer les données de la base. Dans l’onglet « Jobs » cette fois, nous allons donc créer un nouveau traitement :
Construisons maintenant notre job :
- on ajoute tout d’abord le groupe de contextes « BlogWP » au job, afin que les paramètres de connexion soient accessibles (mais si on oublie cette étape, TOS la proposera de lui-même) ;
- on place le composant tLogRow, qu’on trouve dans la palette de droite (rubrique « Logs & Erreurs » ;
- pour le tMySQLInput, nous allons voir l’intérêt d’avoir commencé par créer les métadonnées. Nous n’allons donc pas le chercher dans la palette. On prend la table « wp_links » des métadonnées et on la fait glisser jusqu’à la fenêtre du job. Talend donne alors le choix entre une série de composants, dont le tMysqlInput sélectionné par défaut. On valide, et on peut alors se rendre compte que tout a été pré-rempli (paramètres de connexion, nom de la table, requête à exécuter, schéma du composant) ;
- il ne nous reste donc plus qu’à créer un lien « Principal » du tMysqlInput au tLogRow (clic droit sur le tMysqlInput > ligne > Principal, ou clic droit « glissé » du tMysqlInput jusqu’au tLogRow) ;
Le job est techniquement finalisé. A ce stade :
- dans l’onglet code (en bas à gauche du job), on peut regarder à quoi ressemble le code généré, et s’assurer qu’il ne contient pas d’erreur de compilation (syntaxe, etc.)
- on peut ajouter la documentation des différents composants, et ajouter quelques retouches cosmétiques pour permettre une meilleure lisibilité (nom affiché pour les composants, etc.).
Il ne nous reste plus qu’à tester le bon fonctionnement de l’ensemble. Dans l’onglet « Exécuter », on vérifie une dernière fois les paramètres du contexte (à gauche) et on lance l’exécution :
Ce succès clos cette première partie du tutoriel. On procède de même avec la base de données Dotclear et nous sommes prêts à entrer dans le vif du sujet : la mise à jour et la correction des données !
| Imprimer l'article | Cette entrée a été posté par Benoît Courtine le 10 juillet 2010 à 9 h 24 min, et placée dans Talend, Vie du blog. Vous pouvez suivre les réponses à cette entrée via RSS 2.0. Vous pouvez laisser une réponse, ou bien un trackback depuis votre site. |













