OSBI.FR - Open Source Business Intelligence

KREX

Ci-dessous un nouvel article issu d’un problème rencontré avec PDI chez un client.

Mon souci

Dans le cadre d’un projet décisionnel, nous avons mis en place un référentiel Kettle de type « database repository », puis procédé à la planification de nos jobs de chargement d’entrepôt de données avec l’outil QuartzDesk Web.

Ca marche plutôt pas mal, sauf que de façon aléatoire, QuartzDesk n’arrive pas à déclencher les traitements ETL et on obtient de temps à autre les messages d’erreurs suivants dans les logs de Kettle :

« Le traitement a été arrêté suite à une erreur :
An error occured loading the directory tree from the repository
Erreur lors du chargement du répertoire du référentiel
ERROR executing query
Error determining value metadata from SQL resultset metadata
 at org.pentaho.commons.launcher.Launcher.main (Launcher.java:92) »

ou bien :

« Le traitement a été arrêté suite à une erreur :
An error occured loading the directory tree from the repository
Erreur lors du chargement du répertoire du référentiel
ERROR executing query
Error determining value metadata from SQL resultset metadata
 at org.pentaho.commons.launcher.Launcher.main (Launcher.java:92) »

voir encore :

« Le traitement a été arrêté suite à une erreur :
ERREUR: Aucun référentiel n’est défini sur ce système.
Erreur lors de la lecture du fichier:
 at org.pentaho.commons.launcher.Launcher.main (Launcher.java:92) »

Bref, à cause d’une micro-coupure réseau, d’un problème sur notre référentiel PDI (base postgresql) ou d’une faille spatio-temporelle, parfois nos traitements ne se déclenchent pas…

Ce problème est connu depuis bien longtemps par Pentaho et référencé dans ce ticket JIRA. Une solution est d’ailleurs donnée : mettre en place un script Shell pour la relance automatique du job en cas de non déclenchement.

Mais avec QuartzDesk on ne peut malheureusement pas procéder ainsi, la seule méthode envisageable est donc de s’abstraire du stockage des traitements dans un référentiel de type SGBDR, et donc de revenir à un bon vieux stockage sous forme de fichiers plats (KTR & KJB…)

Si jamais vous avez dans votre référentiel PDI des dizaines (centaines ?) de transformations, ça va plutôt être sport de tout ré-exporter manuellement…

C’est là que KREX intervient !

KREX

KREX est un outil développé par Roland Bouman pour exporter des traitements d’un référentiel Kettle sous forme de transformations et de jobs distincts. Et pas en tant qu’un seul fichier XML tel que vous l’auriez généré depuis Spoon via le menu « \Outils\Référentiel\Exporter le référentiel » ou encore l’étape de job « Export référentiel vers fichier XML »

Prenons l’exemple ci-dessous, à savoir l’export du répertoire « Radiomaritime » issu du référentiel PDI nommé « ref_anfr »

Pour exporter tout ça avec KREX, il vous suffit :

  • de télécharger KREX
  • d’ouvrir la transformation « export_repository_to_files »
  • de renseigner les différents paramètres comme ci-dessous, puis de lancer le traitement :

  • Une fois terminé, vous retrouverez dans REPO_TARGET_DIR les transformations et jobs extraites du dossier PDI_REPO_FOLDER de votre référentiel PDI :

Merci KREX !

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*