OSBI.FR - Open Source Business Intelligence

Realtime Dashboard with Pentaho

Voici un article issu d’une journée de conseil effectuée chez un client l’an dernier. Celui-ci m’avait sollicité sur plusieurs besoins, dont celui-ci :

« Serait-il possible dans Pentaho de présenter un tableau de bord dont les données seraient affichées en temps réel, et qui serait le résultat d’un croisement entre 2 bases de données opérationnelles (Oracle et SQLServer) ?  Je n’ai pas envie de monter ça dans un entrepôt de données et rafraîchir celui-ci toutes les demi-heures… »

Réponse : « Mais oui bien sûr… Avec Kettle, c’est possible ! »

Le principe

Dans Pentaho, les modules de restitutions « Pentaho Reporting » et « CTools » peuvent utiliser comme sources de données des requêtes SQL ou MDX… mais aussi des flux Kettle !

Et la ça devient vite intéressant (et surtout très puissant).

Ainsi pour répondre à la problématique ci-dessus, il suffisait de créer la transformation Kettle ci-dessous et d’utiliser l’étape « ResultSet » comme source de données pour obtenir un dashboard pentaho en temps réel :

Un exemple concret

Je vous propose de voir un exemple concret d’implémentation dans les CTools d’un tableau de bord web dont les données sont issues d’un croisement entre 2 sources hétérogènes :

  • une base de données (SampleData HSQL de Pentaho)
  • un spreadsheet Google.

Bien sûr, n’importe quelle autre source de données pourrait convenir : un annuaire LDAP, des appels API Rest ou WSDL, des fichiers Excel, CSV…

Dans l’exemple présenté, l’idée est simplement de modifier des données de référence renseignées dans un spreadsheet Google et voir les graphiques du tableau de bord s’adapter en temps réel, comme ceci :

La transformation Kettle qui transmet les données au dashboard est la suivante :

Cette transformation croise les données de la base SampleData avec celles du spreadsheet Google via une étape « Recherche dans Flux », puis prépare les données nécessaires aux éléments du dashboard :

  • « output_tablo » pour le TableComponent
  • « output_stats_zone » pour le CCC Pie Chart
  • « output_stats_pays » pour le CCC Treemap Chart

Pré-requis : le plugin « Google Spreadsheet Input » est téléchargé puis installé depuis la marketplace PDI (cette étape n’est pas disponible dans la version de base de Kette)

A noter que la requête d’extraction SQL de la transformation Kettle est paramétrée sur l’année, car le dashboard comporte lui-même un filtre sur l’année. Cela nécessite de déclarer le paramètre au niveau de la transformation Kettle :

Dans CDE, on crée ensuite 3 datasources de type « kettle over kettleTransFromFile » en pointant sur la transformation kettle « demo_rt.ktr » importée sur le serveur Pentaho. Chacune de ces datasources pointe sur une des étapes préparées dans la transformation kettle pour la fourniture des données au PieChart, Treemap et TableComponent :

On notera le passage du paramètre du dashboard « p_annee » à la transformation kettle via les propriétés « Parameters » et « Variables »

La propriété « Cache » est définie à « False » afin que le dashboard soit remis à jour dès que des nouvelles données sont disponibles.

Comme habituellement dans CDE, il reste à définir les composants graphiques en définissant pour chacun d’eux les datasources de type kettle configurées précédemment :

Télécharger & Installer l’exemple

Vous pouvez télécharger l’exemple présente ici même : « Demo Pentaho.zip »

Il vous suffira d’importer cette archive dans le répertoire de votre choix dans la console web Pentaho.

Puis ensuite de récupérer la transformation kettle « demo_rt.ktr » et modifier la configuration de l’étape Google Spreadsheet de manière à utiliser votre propre compte de service Google (associé à une clef privé p12) pour accéder au Spreadsheet que vous aurez créé et partagé en ligne !

Note: la méthode de création de la clef P12 est indiquée dans la section  « Configurer un compte de service Google Cloud Storage » sur cette page

Si jamais ça ne marche pas utilisez un fichier Excel ou l’étape « Grille de données » de PDI … 🙂

Aller plus loin

Pour approfondir le concept de dashboard temps réel dans pentaho (toujours avec PDI), je vous invite à lire l’excellent article de Miguel Gaspar à ce sujet : Live Insight Dashboard on Pentaho

Peut-être aurais-je dû intituler mon article « Streaming Dashboard »  ?

A vous de me dire !

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*