OSBI.FR - Open Source Business Intelligence

Invoquer ses traitements Kettle depuis un navigateur web

Voilà une question qui revient assez régulièrement : peut-on déclencher un traitement Kettle stocké sur un serveur dans un référentiel (repository)… sans se connecter au même serveur ? (donc sans lancer manuellement le programme kitchen)

Réponse => Oui : à l’aide du web listener « Carte » disponible en standard dans PDI.

Exemple (pré-requis: Kettle 5 minimum) :

Ci-dessous un exemple (simpliste) de job envoyant juste un mail, le destinataire étant configurable via le paramètre de tâche ${destinataire} :

carte-pdi5

Ce job send_mail est stocké dans un référentiel Kettle nommé pdi-5.0, dans un répertoire intitulé taches :

carte-pdi5-02

Définition du fichier de configuration pour Carte :

Dans le répertoire data-integration (où est situé carte.bat/sh), créer le fichier XML « carte_config.xml » suivant :

Exécution de Carte :

Lancer le programme carte.bat (ou .sh) en ligne de commande : carte.bat carte_config.xml

carte-pdi5-03

Appel du job via une url :

Ouvrir un navigateur web et saisir l’url suivante :

http://localhost:8082/kettle/runJob/?job=/taches/send_mail&destinataire=osbi.fr@gmail.com

Un identifiant et mot de passe vous sont demandés : saisir cluster/cluster (note: ceci est modifiable en éditant le fichier \data-integration\pwd\kettle.pwd)

Un message d’information vous informe que votre job s’est exécuté correctement :

carte-pdi5-04

Note: pour éviter de renseigner le mot de passe, on peut faire circuler l’authentification en http avec l’url suivante :

http://cluster:cluster@localhost:8082/kettle/runJob/?job=/taches/send_mail&destinataire=osbi.fr@gmail.com

Conclusion :

Si vous n’avez pas de BI Server Pentaho sous la main, « Carte » est l’outil idéal pour invoquer des transformations et des jobs via un navigateur web (il s’agit d’un web-listener basé sur Jetty avec une faible empreinte mémoire).

De nombreuses autres méthodes sont disponibles, je vous invite à les découvrir sur la page de wiki suivante :

http://wiki.pentaho.com/display/EAI/Carte+Web+Services

Et si vous souhaitez utiliser Carte pour exécuter vos jobs sur une grappe de serveurs ou en mode « remote » depuis Spoon, c’est également possible… Je vous invite à lire les excellents articles de Diethard Steiner sur ce sujet :

http://diethardsteiner.blogspot.fr/2013/03/creating-clustered-transformation-in.html

http://diethardsteiner.blogspot.fr/2011/01/pentaho-data-integration-remote.html

Enjoy PDI 😉