BI experience

Différents environnements? Allons voir du coté des contextes de Talend…

| 4 Commentaires

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 :

declaration_connexion_1

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.

declaration_connexion_21

Ces contextes sont créés en cliquant sur « nouveau » ici encadré en rouge
declaration_connexion_31

C’est enfin dans cette fenêtre que nous pouvons modifier les variables de connexion à nos différents environnements

declaratiobn_connexion_4

Et voilà! La connexion fait maintenant appel aux contextes :

declaration_connexion_5

Ces contextes sont liés au projet

declaration_connexion_6

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 :

contextload_31

Puis dans Talend, les jobs commenceront comme ceci :
contextload_1

Attention ne pas oublier de déclarer ces contextes dans le job :
contextload_2

Et de finalement les déclarer dans les connexions d’input et/ou d’output
contextload_4

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…

4 Commentaires

  1. 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?

  2. 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 »?

  3. 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.

  4. 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?

Laisser un commentaire

Champs Requis *.

*