vendredi 7 janvier 2011

Initiation Talend - 1° Partie : les méta-données

Cette suite d'articles va vous permettre, à l'aide d'un exemple concret, d'appréhender les principes de fonctionnement de Talend, d'acquérir les premiers réflexes et bonnes pratiques et de constater avec quelle facilité on peut générer un programme java performant et directement exécutable sur votre poste de travail ou un serveur, sans écrire une ligne de code et sans être un adepte de ce langage (ce qui est mon cas).


Les métadonnées

Un job Talend va la plupart du temps lire et écrire des données, dans des fichiers, bases de données, …

Une bonne pratique est de définir les fichiers, tables, …dans le référentiel Talend plutôt que de les (re)définir pour chaque job ; 3 bonnes raisons à cela :
  • Factoriser vos flux, c'est-à-dire ne pas répéter plusieurs fois la même chose : vous définissez les fichiers, bases de données, les tables, les requêtes une fois et vous les utilisez partout où vous en avez besoin 
  • Partager ces définitions : si vous travaillez en équipe, non seulement vous ne définissez qu'une fois ces données mais vous en faites profiter vos collègues 
  • Associé à la notion de contexte, la constitution d'un référentiel de métadonnées est une fonctionnalité très puissante, qui permet de rendre vos jobs adaptables et est gage de productivité 
Concernant les bases de données, nous définirons dans un premier temps la base de données, puis les tables contenues dans cette base, et enfin les requêtes utilisées pour sélectionner des données situées dans plusieurs tables.
Nous définirons également les fichiers contenant des données en entrée du job.
Enfin nous définirons le fichier en sortie du job.


Connexions aux bases de données

Avant de pouvoir accéder aux tables de votre base de données, il faut définir la manière de s'y connecter.
Nous allons donc définir les paramètres d'accès à la base de données (nom du serveur, de la base, utilisateur, mot de passe, ...).
Afin de pouvoir exécuter le job sur différents environnements (développement, tests, production) sans modifier le job, nous utiliserons les contextes et leurs variables associées.
Dans la fenêtre Référentiel, développez l'arborescence Métadonnées, faites clic-droit sur l'entrée DB Connections puis Créer une connexion.


Le nom de la connexion ne doit pas comporter d'espaces
Utilisez les conventions d'écriture des langages tels que C, C++ ou Java pour le nommage des classes, c'est-à-dire en minuscules avec la première lettre de chaque mot en majuscule, par exemple : BaseSourceMySQL
Vous pouvez renseigner le statut, par exemple : development


Choisissez le type de base de données : nous allons travailler avec MySQL
Choisissez la version de MySQL : elle dépend de votre environnement
Saisissez ensuite l'identifiant de connexion (en général root) et son mot de passe (dépend de votre environnement), le nom (ou l'adresse IP) de la machine qui héberge MySQL (si vous testez sur votre PC, saisissez localhost) et enfin le nom de la base de données sur laquelle vous voulez travailler (pour notre étude de cas, nous utilisons la base talend_chapitre6)
Cliquez sur le bouton Vérifier pour tester les paramètres saisis
Puis cliquez sur Terminer




Les contextes

Utilisation des variables de contexte : elles permettent l'exécution de vos jobs dans des environnements différents. Typiquement, nous utilisons au minimum 3 environnements différents :
  • l'environnement de développement : c'est dans cet environnement que le développeur crée les jobs et les teste
  • l'environnement de tests (ou recette) : les jobs développés par les membres de l'équipe sont intégrés et testés dans cet environnement : on vérifie s'ils fonctionnent correctement ensemble
  • l'environnement de production : il s'agit de l'environnement réel d'exécution des jobs
Les contextes permettent de faire varier les paramètres d'exécution des jobs en fonction de l'environnement dans lequel ils se trouvent. Par exemple: le nom de la machine où se trouve la base de données va prendre 3 valeurs différentes :
  • localhost pour la machine de développement
  • srv-sql-tests pour la machine de tests
  • srv-sql-prod pour la machine de production
Pour créer les variables de contexte concernant votre connexion, cliquez sur le bouton Exporter comme Contexte.


Si vous avez fermé la fenêtre de paramétrage de la connexion, faites clic-droit sur votre connexion puis Editer la connexion, puis cliquez sur Suivant.

Renseignez les informations descriptives de la première page puis cliquez sur Suivant (le nom du groupe de contexte reprend le nom donné à votre connexion)
Vous voyez que les paramètres de votre connexion ont été repris dans les variables correspondantes
Cliquez sur Terminer


Par défaut, seul un contexte est défini : le contexte « Default ». Pour en créer un nouveau ou renommer le contexte par défaut, cliquez sur l'onglet Valeurs en table puis sur l'icône en haut à droite de la liste.
Vous pouvez alors renommer le contexte « Default » et en créer des nouveaux.
Vous pouvez ensuite modifier les valeurs des paramètres dans les différents contextes.


Vous pouvez à tout moment modifier un groupe de contexte : développez l'arborescence Contextes, faites clic-droit sur l'entrée BaseSourceMySQL 0.1 puis Editer le groupe de contexte


L'article suivant sera consacré au référencement des tables et requêtes dans le référentiel de Talend.