Talend propose dans son application, de créer des contextes (variables) qui peuvent être déclarés aussi bien au niveau d’un job qu’au niveau d’un projet.
La notion de contexte peut être vraiment utile lors de la gestion de différents environnements : développement, recette, production. Nous allons voir dans ce post comment créer ces contextes.
Deux possibilités s’offrent à nous:
La première solution :
Commençons par une déclaration de connexion classique :
En Cliquant sur le bouton « Exporter comme Contexte », nous obtenons la fenêtre ci-dessous. Puis en cliquant sur l’icône qui est ici encadrée en rouge, Talend nous permet de créer différentes possibilités de contexte pour notre connexion.
Ces contextes sont créés en cliquant sur « nouveau » ici encadré en rouge
C’est enfin dans cette fenêtre que nous pouvons modifier les variables de connexion à nos différents environnements
Et voilà! La connexion fait maintenant appel aux contextes :
Ces contextes sont liés au projet
La seconde solution :
La gestion des environnements pourra se faire en passant par le composant tContextLoad qui fait finalement appel à des fichiers de configuration :
Grâce à un fichier texte comme celui-ci :
Puis dans Talend, les jobs commenceront comme ceci :
Attention ne pas oublier de déclarer ces contextes dans le job :
Et de finalement les déclarer dans les connexions d’input et/ou d’output
Les noms « serveur, port, login… » présents dans le fichier texte doivent avoir le même nom que les variables de contexte. C’est ainsi que dans un même fichier on pourra déclarer plusieurs connexions. Vous n’avez plus qu’à créer un fichier de dev, un autre de recette et un de prod et le tour est joué!
Ces deux solutions sont réalisables aussi bien sur TIS que sur TOS. L’une gère la connexion au niveau du projet (solution 1) et l’autre au niveau du job (solution 2).
Pour le schedule de l’exécution des jobs, sous TOS, il faudra fonctionner avec des script bash.
-En exportant les scripts du job en .zip en faisant clique droit « exporter les scripts du job » sur le job que vous aurez sélectionné. Puis dans le .zip vous trouverez un .sh ou .bat. En vous mettant dans ce répertoire vous pourrez exécuter des lignes de commandes de type :
- test_run.bat –context_param filename=C:/Prod.txt –context=Default sous Windows et
- sh ./test_run.sh –context_param filename=home/test_fichier_load.txt –context=Default (attention au permission n’oublier pas le chmod)
Si on regarde cette ligne de commande de plus près :
- soit vous pourrez passer par le fichier –context_param filename=C:/Prod.txt si vous avez un context load (solution 2) dans le job ou
- soit vous pourrez enlever cette partie faisant appel au fichier et changer –context=Default en mettant –context=PROD par exemple si le contexte est géré dans le projet (solution 1)
Sous TIS Lors de la construction du job le développeur prendra comme contexte par défaut (celui de dev). Par la suite ce job pourra être scheduler par l’administrateur. Il pourra choisir le contexte d’exemption approprié sur la plateforme que propose TIS : Talend Administration Center (TAC).
Voilà j’espère avoir été claire sur cette gestion des environnements par contexte. Si vous avez des commentaires n’hésitez pas…
5 mai 2010 à 11 h 55 min
Bonjour,
Merci pour ta solution.
J’ai une question: comment je peux lancer avec un war en mettant dans l’url ou se trouve le fichier filename?
5 mai 2010 à 13 h 39 min
Bonjour Carole,
Peut être n’ai je pas bien saisi ta question mais pour moi, un fichier war est une archive qui est utilisée pour déployer une application web sur un serveur d’application.
Donc je ne comprends pas que tu veuilles « lancer avec un war »?
5 mai 2010 à 13 h 51 min
En fait j’importe mon job Talend en Axis WebService WAR et ensuite j’appelle mon job de cette maniere : http://localhost:8080/SYNCHRONISATION_SI_SALESFORCE_V2_0.1/services/SYNCHRONISATION_SI_SALESFORCE_V2?method=runJob&args=null.
J’ai modifié mon job pour avoir comme tu l’indiques les paramètres de configuration de mon job dans un fichier texte indépendant du job et j’aimerai savoir ce que je dois modifier dans mon appel à mon job pour prendre en compte ce fichier.
Merci par avance.
24 février 2011 à 17 h 04 min
Bonjour,
j’ai bien compris ta solution, mais concernant la deuxième solution, je me demande à quoi servira donc de creer le fichier texte pour puisque tous les contextes et leurs environnements ont déjà été crées dans le job?