OSBI.FR - Open Source Business Intelligence

TechTip: Effectuer des calculs performants avec Kettle

Roland Bouman vient de publier un excellent post sur la performance de l’étape « Javascript » de Kettle.

(Notons d’ailleurs que Roland Bouman est également le co-auteur avec Jos Van Dongen du tout aussi excellent livre « Pentaho Solutions – Business Intelligence & Data Warehousing with Pentaho and MySql », qui fait également la part belle à l’ETL Kettle notamment pour alimenter un datawarehouse selon l’approche de Ralph Kimball)

Roland explique de manière très détaillée les différentes façons d’effectuer des calculs avec Kettle et les impacts correspondants en terme de temps de traitement.

Comme j’aime le préciser lors des formations Kettle que j’anime, l’étape JavaScript peut souvent s’avérer gourmande en temps de traitement, alors que l’utilisation de la calculatrice sera toujours bien plus rapide, pour peu que le calcul demandé soit réalisable avec la calculatrice !

Diverses possibilités existent pour améliorer les temps de réponse et sont détaillées par Roland (sans parler de faire du clustering de transformation, également possible avec Kettle) :

  • Amélioration du code saisi dans l’étape « Exécution Script Java » (JavaScript Step)
  • Utilisation de l’étape « Calculateur » (Formula Step)
  • Utilisation de l’étape « Calcul » disponible dans le dossier Transformation (Calculator Step)
  • Utilisation de la nouvelle étape Kettle 3.2 « Evaluation de code Java » (User-defined Java Expression)

StepsScripts

A noter que cette dernière étape est beaucoup plus rapide que l’étape « Exécution Script Java »  car il s’agit en effet d’une réelle exécution de code Java. L’étape « Exécution Script Java » est mal traduite en français : il ne s’agit pas d’un script Java au sens réel mais bien d’un appel à un script interprété en langage Rhino, le « Javascript pour Java ») .

Reste à trouver un peu de doc sur l’étape « Evaluation de code Java » (User-defined Java Expression). Contrairement à ce qu’indique Roland, il y en a malgré tout un début ici: http://wiki.pentaho.com/display/EAI/User+Defined+Java+Expression

D’ailleurs est-il vraiment besoin de documenter la syntaxe de Java sur le wiki de Kettle ?

Quoiqu’il en soit, un excellent post à lire dans son intégralité…

9 Comments

  1. Bonjour Sylvain,

    pour la traduction, tu as raison 🙂
    Elle prête à confusion.

    Que penses-tu de
    « Appel script interprété Rhino »
    et « Exécution d’expression Java » pour Janino?

    Merci

    Samatar

  2. Salut Samatar,

    Content d’avoir le traducteur officiel de Kettle en français en ligne 😉
    (d’ailleurs peut-être pourrais-je apporter ma pierre à l’édifice en contribuant aussi à la traduction et en te filant un coup de main sur Kettle 4.0.0 dont la M2 vient d’arriver)

    Et du coup tu peux bien mettre « Exécution d’expression Java » pour Janino….

    Je me rends compte que lorsque je forme des gens à Kettle, c’est pas toujours évident de leur expliquer que Rhino, c’est ni du Java, ni du Javascript…. mais du Rhino !!!

  3. Merci
    pour la traduction ou tout autre aide, tu es le bienvenu 🙂
    J’ai pris un « peu » de retard pour la version actuellement en dev (4) mais je vais m’y mettre asap.

    Samatar

  4. Pas de souci pour te filer un coup de main…
    Comment tu procèdes d’habitude ?
    Tu échanges avec Matt en direct ou tu attends les Milestones sur SourceForge ?

  5. Merci

    non heureusement j’ai accès au code source (SVN) 🙂
    et je commit directement (grâce à un outil de translation).
    Sinon tu procède comme tu souhaites,:
    – soit tu m’envoi les modifs
    – soit tu commit en source (Matt va bien te fournir un compte)

    Samatar

  6. @samatar

    Salut Samatar, j’ai vu que dans Kettle 4 tu as déjà renommé l’étape « Java Script » en « Appel script interprété Rhino » 🙂

    De mon côté j’ai déjà commité plusieurs fichiers de traduction, notamment ceux concernant le nouveau système de traces, les étapes Salesforce et SAP Input…
    Et là je me rends compte de l’énorme travail de traduction que tu as fourni sur Kettle depuis le début !
    Je te tire vraiment mon chapeau, vraiment un excellent et colossal travail !

    Sylvain

Les commentaires sont fermés.