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} :
Ce job send_mail est stocké dans un référentiel Kettle nommé pdi-5.0, dans un répertoire intitulé taches :
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
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 :
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 😉