Pentaho : Nouvelle version


Il y a tout juste un mois, Pentaho a sorti une nouvelle version, plus légère, fonctionnant de son application sans le serveur d'application JBoss et sans déploiement dans JBossPortal.

Cette nouvelle version (la 1.7) n'apporte pas de nouvelles fonctionnalités, en dehors d'une nouvelle page d'accueil (home) de la démo mais apporte des simplifications techniques, avec notamment l'utilisation de Tomcat au lieu de JBoss.

S'il était possible auparavant de se passer de JBoss, il fallait tout de même retravailler les sources et la configuration générale. C'est maintenant en natif, avec à la clé des facilités de téléchargement et de déploiement.

Kettle

Kettle : une autre solution ETL

Kettle est un outil ETL (entièrement graphique) supportant de nombreuses bases de données (en entrée et en sortie) ainsi que des processus complexes de transformations de ces données.
Si vous n’avez pas le temps de faire mu muse avec le produit, voici quelques commentaires sur le produit Kettle, rappelons-le open source gratuit ! Kettle utilise les drivers JDBC pour les connexions aux différentes bases de données. Il existe des possibilités de mettre les données en cache, et l'on peut faire tourner plusieurs transformations en parallèle (voir paragraphe sur la lenteur). Kettle fonctionne sur des bases de données de production possédant des millions d'enregistrements.

L’interface, la convivialité : une qualité


En premier, ce qui vient aux yeux, c’est l’interface unique (développée en Java). Elle parait au premier abord plus fonctionnelle, donc plus agréable à l’œil d’un débutant que son concurrent. La gestion des transformations et des jobs en est facilitée. Cependant, certain trouveront que l’interface est moins séduisante que Talend à cause de son rapprochement avec la DB.

Certains reprochent également la lenteur de Kettle dans certaines opérations. Je tiens à rappeler que pour les tris par exemple il faut paramétrer parfaitement la transformation (nombre de rows pour une passe de tri, usage de la ram / fichiers temporaires…).
Car, en passant par un nombre élevé de fichiers temporaires, on augmente considérablement cette lenteur constatée. Augmenter le nombre de rows en mémoire augmente considérablement le traitement. Il y a aussi une option de compression des fichiers temporaires, mais qui rajoute du temps de traitement tout en diminuant l’espace disque nécessaire…(faut savoir ce que l’on souhaite !).

Tout ça pour dire que la lenteur de Kettle n’est pas une fin en soi.

Deux modes différents

Kettle peut s’utiliser au travers de deux modes distincts, en local ou avec référentiel :

En local : les transformations et les jobs sont stockés et gérés en local sur filesystem.


Avec référentiel : tout le travail du développeur est stocké dans le référentiel PDI/Kettle qui repose sur un schéma dédié créé sur la DB de votre choix (sur système cible par exemple). Il s’agit là d’une fonctionnalité idéale : plus de fichiers à gérer, tout est centralisé. En cas de changement de paramétrage d’une de vos DB, il vous suffira de changer une seule fois la connexion correspondante dans le référentiel ; le changement sera alors répercuté sur toutes les transformations / jobs qui utilisent cette connexion.


Dans tous les outils fournis, Kettle est livré avec des exemples de scripts pour le lancement des jobs / transformations en mode batch. Très utile dans mon contexte actuel (Solaris), on a la possibilité de mettre au point un pool de scripts qui assurent le déclenchement des jobs (certains en parallèle !), leur contrôle ainsi que la reprise sur anomalie.


Une anomalie se remonte très vite avec un simple parseur, voire un Ctrl-F « ano » lors des mises au point. A noter que le lancement d’un job/transformation en interactif (via l’interface) est bien entendu possible.

Globalement, les performances sont globalement au rendez-vous. Bien entendu, plus votre DB sera performante et structurée, meilleur sera le comportement de Kettle.

Défaut : un module de gestion manquant


Il manque cependant un module à Kettle, qui se fait cruellement sentir dès lors que l’on travaille avec de multiples environnements : un gestionnaire de transformations / jobs. Actuellement, pour migrer une transformation ou un job d’un environnement à un autre, il faut passer par une sauvegarde/export local, puis reconnexion au nouveau référentiel pour publication. Un module de gestion des transformations et des jobs serait plus rapide pour gérer au mieux la phase de montée en environnement à l’image d’un « CVS light » ou encore d’un « SourceSafe ».

Talend OpenStudio : une solution ETL

Talend OpenStudio : l’outil ETL Open source par excellence.


Comme mon blog est axé sur les outils Open Source, je parlerai dans ce post de l'ETL Talend OpenStudio (en plus made in d’un éditeur français…). La première version date de octobre 2006. Talend OpenStudio, c’est quoi ? C’est un outil graphique qui permet de tout faire en mode Drag and Drop. Elle permet d'appeler des Web Services, d'extraire des données de fichiers (en local ou via le ftp) et de bases de données pour réaliser des traitements complexes (sortie sous Java / Perl). Une interface intuitive permet également une écriture aisée des scripts et la réalisation de documents relativement facilement.

Talend a sorti la version 2.2.0 de Talend Open Studio le 8 octobre 2007.
Au rythme d'une release tous les 3 mois, la 2.2.0 apporte de nombreux enrichissements par rapport à la 2.1.x, côté studio de conception et côté génération de script Perl ou Java. Voici une liste des principales évolutions.

Les nouvelles fonctionnalités de Talend Open Studio 2.2.0 sont nombreuses, en voici quelques unes :

  • amélioration de la gestion de contexte (GUI, nouveaux composant tContextDump),
  • exportation des jobs comme des services Web Java,
  • interface de construction d’expression graphique (Expression Builder)

Nouveautés du studio : basé sur Eclipse 3.3, constructeur graphique d'expressions, glisser/déposer des metadonnées pour créer des composants pré configurés ainsi qu'une refonte de la gestion des contextes simplifiant leur utilisation. Vous bénéficierez donc de toutes les améliorations inhérentes à ce nouveau framework (support de Windows Vista…).

En Java :

  • Support de nouvelles bases de données : connecteur AS400 / connecteur Generic JDBC...
  • Le composant de Slowly Changing Dimension supporte désormais les bases MySQL, Oracle, Ingres, MSSQL, DB2 et Sybase. Il intègre désormais les types 1, 2 et 3 et supporte les surrogate key…
  • Support des procédures stockées pour les bases Oracle, MS SQL, Ingres, MySQL et DB2
  • Partage de connexion pour Oracle et PostgreSQL...
  • Support LDIF/LDAP
  • Les "wait for file" et "wait for SQL data" (déclenchement du job en fonction de l’apparition d’un fichier, de l’arrivée de lignes dans une table…)
  • Fusion et séparation de flux (tUnite et tReplicate)
  • Support de SCP

En Perl :

  • Composant permettant les substitutions multiples (simple et advanced) : tReplace
  • Partage de connexion pour les bases Oracle et PostgreSQL...
  • Lookup multiples
  • Les "wait for file" et "wait for SQL data" (déclenchement du job en fonction de l’apparition d’un fichier, de l’arrivée de lignes dans une table…)
  • Flow data metering
  • File touch
  • Fusion et séparation de flux (tUnite et tReplicate)
  • Support SCP
Enfin, si vous souhaitez trouver débuter (et même vous perfectionner, tout dépend de votre état d'avancement), je ne saurais vous conseiller le tutorial (en français) en format pdf. Quelques 130 pages auront raison de votre patience pour devenir autonome sur Talend ! Une simple indication de quelques informations personnelles vous seront demandées (email non vérifié).
Bon courage ! Et très bientôt un post sur son concurrent Kettle...

L'outil, la phase, le processus ETL

Première étape d’une solution complète de BI, la phase d’extraction, transformation et chargement, plus communément appelé ETL est l’outil informatique par excellence. Destiné à extraire des données de diverses sources (bases de données de production, fichiers, Internet, etc.), à les transformer et à les charger dans un entrepôt de données, l’outil ETL intègre des données dans différents systèmes (applications) de l’entreprise nécessaires à un futur traitement. Pour cela, l’outil stocke toutes ses données qui proviennent donc de différents systèmes dans une seule grande base de données (datawarehouse). On parle souvent d’outil et processus « d’alimentation » car l’outil va chercher des données un peu partout pour les centraliser et ainsi alimenter le datawarehouse.

Je vais maintenant décrire les trois différentes étapes du processus ETL et différencier l’outil du processus ETL.

L’intégration ou alimentation de données

Les outils ETL gèrent toutes les étapes de la collecte des données au sein des systèmes d'information hétérogènes : SGBD, ERP, applications spécifiques, fichiers plats, bases hiérarchiques... depuis le nettoyage des données collectées, la consolidation et la mise en concordance des données éparses jusqu’à leur distribution (notion d’alimentation) auprès des applications cibles ou des systèmes décisionnels centralisés (analyse, tableau de bord...).

Le processus ETL est une opération de migration de données (de différents systèmes à un datawarehouse) qui consiste aussi à la rendre facilement lisible et disponible. Ce processus représente une part majeure des traitements et nécessite une attention régulière tout au long du cycle de vie du système, dans la mesure où il est garant de la qualité des données finale.

C’est le processus ETL qui se décompose en trois phases : l'extraction, la préparation/transformation et le chargement.

L’extraction des données

Comme expliqué ci-dessus, la première phase consiste à acquérir des données éparses. L'outil ETL a la capacité de se connecter aux différentes applications, bases de données ou fichiers à différents endroits dans l’entreprise.

Pour ce faire, outre un outil de spécification d’extraction de données, plusieurs technologies sont utilisables :

  • Les passerelles fournies par les éditeurs de logiciels de gestion de bases de données.

  • Les utilitaires de réplication, utilisables si les systèmes de production et décisionnels, sources et cibles, sont homogènes.

L’outil doit être à même de lire sélectivement les données sources (c’est l’intérêt de l’étape), et donc de filtrer les données en lecture afin de n’extraire que l’information pertinente.

La transformation et le contrôle des données

Les ETL sont des ateliers spécialisés dans la migration de données. La transformation des données est leur fonctionnalité principale. Ils doivent disposer d’une fonction permettant de vérifier qu’une donnée est cohérente par rapport aux données déjà existantes dans la base centrale. Ils doivent aussi fournir des outils pour convertir des données différentes (par exemple un langage ou une interface graphique de description de transformation).

Evidemment, ils doivent être conçus pour manipuler de gros volumes de données.

Le chargement et le transfert des données

Le chargement prend en compte la gestion du format final voulu des données.

Pour la mise en oeuvre du transfert de données, on distingue deux approches possibles :

  • Le transfert de fichiers : l’ETL transporte les données du système source vers le système cible via un moteur.
  • Le transfert de base à base. Dans ce cas, les outils travaillent en mode connecté, d’une source de données à une cible. Les données sont extraites ensemble à la source, puis transférées à la cible en y appliquant éventuellement des transformations à la volée. Un seul processus, plus rapide, a ainsi l’avantage de pouvoir effectuer, sans rupture, les transferts et toutes les autres opérations d’alimentation.

Liste des outils ETL

Outil très prisé par les DG, on peut en trouver au minimum une vingtaine sur le marché actuel. En voici une vingtaine justement par ordre alphabétique :

  • Ab Initio
  • Ascential DataStage (qui a acheté Mercator Inside Integrator)
  • BusinessObjects Data Integrator
  • Cognos DecisionStream ( Data Manager)
  • Computer Associates Advantage Data Transformation
  • CrossAccess eXadas
  • Data Junction Integration Studio (acheté par Pervasive)
  • DataHabitat ZeroCode ETL
  • DataMirror Transformation Server
  • Embarcadero DT/Studio
  • ETI (Evolutionary Technologies International)
  • Hummingbird ETL
  • IBM DB2 Data Warehouse Manager
  • Informatica (PowerCenter et SuperGlue)
  • Information Builder iWay
  • Microsoft SQL Server DTS
  • Oracle Warehouse Builder
  • Sagent Data Flow Server (acheté par Group 1)
  • SAS Enterprise ETL Server
  • Sunopsis

Tutorial Design Studio - Pentaho

Créer ses requêtes avec Pentaho Design Studio

Pentaho Design Studio est un Eclipse modifié pour créer des fichiers .xactions. Ces derniers contiennent les paramètres d'une source de données et des instructions (génération de rapport, envoie de mail, etc.), sous un format XML, qui sont destinés au moteur de Pentaho pour être exécuter. Un minimum de connaissances en SQL est indispensable pour écrire des requêtes. Toutefois, le XML et le JAVA ne sont pas requis obligatoirement.

Installation et configuration de Pentaho Design Studio

Il faut d’abord configurer le Design Studio grâce au fichier preferences.ini (à l'aide d'un simple éditeur de texte). Ce fichier est dans le répertoire \pentaho design studio\plugins\org.pentaho.designstudio.editors.actionsequence.

Modifiez la ligne ci-dessous pour qu'elle corresponde à votre installation de Pentaho:

actionsequence.server.url=http://localhost:8080/pentaho

Avec Internet Explorer, il faudra toutefois taper l’URL suivante : http://127.0.0.1:8080/pentaho

Une fois cette préférence donnée, quittez et retournez dans Démarrer, Tous les Programmes, Pentaho, Pentaho Open BI Suite puis double-cliquez sur PentahoDesignStudio.exe. N’oubliez pas de lancer le serveur (fichier start-pentaho.bat) !

Introduction à Pentaho Design Studio

Initiation : découverte des requêtes SQL dans Design Studio

Une fois Design Studio lance, faîtes Fichier / New Project

ProjectName = ce que vous voulez (moi je prend TDN°1 par défaut)

Décochez la croix par défaut et allez sélectionner le dossier suivant (samples).

Puis appuyez sur Finish.

Le but de ce premier exercice dans cette partie est d’afficher l’évolution des différences de prix entre le prix d’achat et le prix de vente (conseillé). Cet affichage se fera selon différentes possibilités graphiques qui seront données à l’utilisateur via une liste déroulante.

La première tâche consiste à paramétrer et créer des fichiers. La mission consiste seulement à paramétrer le fichier .xaction responsable de ce qui est affiché à l’écran de l’utilisateur.

Ces derniers contiennent les paramètres d'une source de données et des instructions (génération de rapport, envoie de mail, etc.), sous un format XML, qui sont destinés au moteur de Pentaho pour être exécutés.

Déplacez-vous jusqu’au dossier charts et cliquez sur le petit plus pour « développer » l’explorateur. Ici sont concentrés tous les fichiers nécessaires à l’affichage d’une page avec un navigateur. Le fichier ChartComponent_ChartTypes.xaction contient la requête et les propriétés d’affichage que nous allons créer ensemble.

Une fois que vous avez ouvert le fichier ChartComponent_ChartTypes.xaction, sur la droite de l’écran apparaît une nouvelle fenêtre avec 4 onglets situés en bas.

L’onglet général réfère aux propriétés du fichier.

L’onglet suivant (Define process) permet la création de requêtes et la notification des inputs / outputs.

Le troisième onglet (XML Source) contient du code XML qui est généré automatiquement selon les deux premiers onglets.

Enfin, le dernier onglet vous servira à tester vos actions.

Commençons par paramétrer l’adresse du serveur, ce sera le seul élément à paramétrer mais il faudra le refaire souvent..

Allez dans le dernier onglet (Test)

Dans Pentaho Server URL, notez l’adresse suivante : http://127.0.0.1:8080/pentaho puis appuyer sur le bouton Test Server. Cette adresse URL est seulement valide pour Internet Explorer. Si vous utilisez Mozilla, l’adresse devient : http://localhost:8080/pentaho.

Après quelques instants de patience, la page d’ouverture de Pentaho s’affiche, sélectionnez Joe[Admin] pour vous logger. Votre serveur est désormais prêt. Il est en attente d’un ordre.

C’est ce que nous allons faire en lui donnant une requête.

Nous souhaitons, je vous le rappelle, afficher l’évolution des différences entre les prix de vente et prix d’achat dans une période donnée (entre 1970 et 1980).

Il faut pour cela revenir au deuxième onglet (Define Process). Sur la gauche de cette page se trouvent trois encarts. Nous nous occuperons seulement de celui du milieu, les autres étant déjà configurés. En effet, l’encart Process Actions contient toutes les actions que Pentaho doit faire. Avec un simple clic gauche sur le nom d’une action, à droite s’affiche les éléments qui la composent.

Votre mission consiste à trouver la requête qui permettra l’affichage de l’évolution des différences entre les prix de vente (msrp) et prix d’achat (buyprice) (disponibles dans la table PRODUCTS) dans une période donnée (entre 1960 et 1970).

La requête est donc la suivante :

select buyprice, msrp from PRODUCTS where productname like '197%' order by productname

Recopiez cette requête dans l’encart Query (ovale noire):


Testez votre action en allant sur le quatrième onglet, en retapant si nécessaire l’adresse URL du serveur puis tester le serveur. Une fois connecté avec le login Joe, appuyez sur le bouton Generate Url puis Run.


Grâce à la liste déroulante, vous pouvez choisir sous quel format graphique vous souhaitez afficher votre résultat (sélection puis Run Report). Si nous prenons en ligne (line) par exemple, pouvez-vous nous donner sur la feuille des réponses le prix de vente (msrp) le plus élevé, le prix d’achat (buyprice) le plus élevé et si ils correspondent au même produit.

Faites clic droit, Précédent puis essayez d’autres types graphiques. Première mission réussie !

Exemple simple de création d'un fichier .xaction

Dans Package Explorer, faites un clic-droit sur le projet pentaho_solutions, New, Folder et nommez ce nouveau dossier.

Dans Package Explorer, faites un clic-droit sur le nouveau dossier, New et Other... .

Dans le dossier Pentaho, choisissez New Action Sequence Wizard.

Nommez votre fichier .xaction et cliquez sur Finish.

Double-cliquez sur votre xaction. Ce dernier s'ouvre dans la fenêtre droite.designstudio7.JPG

Cliquez sur l'onglet Define Process. La colonne de gauche montre les différentes parties de votre xaction. Dans la partie Process Actions, faites un clic-droit, Add, Get Data From et Relational.

Sur la partie droite s'affiche les caractéristiques de cette action. Cliquez sur JNDI et inscrivez le nom de votre JNDI configuré précédemment (par défaut SampleData).


En dessous dans la partie Query, inscrivez "SELECT SYSDATE FROM DUAL".

Dans Process Actions, faites glisser query_result vers ouputs qui se trouve en bas dans la section Process Outputs.


Sauvegardez le fichier avec Ctrl-S.

Cliquez sur l'onglet Test et sur le bouton Run.

Votre application est valide. Ce dernier exercice vous a paru simple ? Cela tombe bien car rassurez-vous, nous n’avons utilisé que 1% des possibilités offertes par Pentaho !

MarvelIT :> comparaison avec Pentaho

Présentation

Peut être le moins connu de mon étude comparative, MARVELit DASH est un projet de portail décisionnel, développé par la société MARVELit et distribué sous licence open source. Il utilise le portail Apache Jetspeed et est dédié à la création de tableaux de bord.

Communauté

En dehors de la société MARVELit, il n'y a pas de communauté visible autour de ce produit.


Composants utilisés

  • Pour le états : JasperReports
  • Pour les graphiques : JFreeChart
  • Pour le planificateur : Quartz (comme ses confrères…)
  • Pour le portail : Apache Jetspeed 1.6 Fusion, compatible avec les portlets utilisant la norme JSR168.

Fonctionnalités

MARVELit se présente sous forme d’un portail dans lequel l'administrateur peut disposer des portlets affichant des graphiques ou des états.

Le paramétrage (définition de la source de données, de la requête SQL, ...) se fait directement depuis l'interface du portail, en modifiant les paramètres de chaque portlet.

Le positionnement des éléments dans la page et la gestion des droits de chaque utilisateur repose sur les fonctionnalités du portail Jetspeed.

MARVELit propose 4 portlets :

  • Portlet chart : affichage d'un graphique JFreeChart représentant les données d'une requête SQL.
  • Portlet open report : ouverture d'un état JasperReports au format PDF ou HTML. Il est également possible de planifier la génération et l'envoi d'un état à une ou plusieurs adresses mail données.
  • Admin : portlet d'administration de MARVELit, utilisé pour la définition des sources de données et la déclaration des états disponibles.
  • L'utilisateur peut sélectionner la plage de données à afficher dans les états et les graphiques via des menus déroulants.

Conclusion

Les fonctionnalités de MARVELit DASH sont très limitées comparées à des plateformes telles que Pentaho ou SpagoBI. Il conviendra cependant pour rapidement mettre en place un portail aux fonctionnalités de tableau de bord et de reporting élémentaires ou basiques. Mais attention à ne pas vouloir se focaliser sur l’interface personnalisée au risque, comme Jasper, d’avoir une interface non finie. Alors ,si l'on souhaite évoluer par la suite vers de l'analyse multidimensionnelle ou proposer des états complexes, on se tournera de préférence vers Pentaho ou SpagoBI.

Jasper :> comparaison avec Pentaho

Présentation

JasperIntelligence est la plateforme décisionnelle de JasperSoft, qui développe également JasperReports. Elle permet la visualisation d’états JasperReports et dispose de fonctionnalités d’analyse avec Mondrian et JPivot. Chaque état peut être généré et envoyé périodiquement à un utilisateur comme c’est le cas pour Pentaho.

JasperSoft repose sur une architecture ouverte et sur un support multi-langage, notamment Perl, PHP, Python, et Java (sur lequel il repose à 100%), ainsi que sur la possibilité de connexion via les services web, notamment via SOAP. Il est possible d'intégrer les notions de groupes d'utilisateurs multi-niveau et d'authentification à la génération de rapports (au format PDF, Excel, Word et HTML) ; encore une fois un plus par rapport à Pentaho au niveau Open source. Cependant, Spago propose également cette sécurité.

L’interface n’utilise pas de portail contrairement aux autres outils BI. On dispose ici d’une application web développée spécifiquement pour l’outil.

Il est possible de publier et modifier des états très facilement, directement depuis l’application iReport.

Il est peu probable que cette plateforme supporte d’autres générateurs d’états que JasperReport. Il faut donc se contenter de celle offerte par Jasper, une plateforme un peu limitée techniquement même si de nombreuses fonctionnalités son prévues pour les versions futures. Jasper prend ici du retard par rapport à ses concurrents en voulant personnaliser sa plateforme. Attendons les versions futures pour évaluer correctement l’interface.

Communauté

La principale communauté pour l’outil BI s’appelle Jasper Forge. Une communauté professionnelle est également bien présente car comme Pentaho, il existe une version gratuite Open source et une version payante commerciale.

Fonctionnalités et différence Open source / version commerciale


L'une des principales fonctionnalités de JasperSoft est la possibilité d'éditer sous des formats très variées comme PDF, HTML, RTF, XML. L'édition OpenSource comprend des fonctionnalités comme:

  • Metadata framework
  • Gestion des Dépôts des rapports
  • Sécurité et contrôle des rapports assez interactif
  • Intégration Publiques avec les Interfaces d'intégration
  • Horodatage des rapports
  • Définitions des rapports 'portable'.



L'édition Professionnelle comprends des fonctionnalités comme :

  • Ad-hoc: Requête et rappport
  • Distribution des rapports via email (comme Pentaho)
  • Génération planning et graphique spécifiques
  • Intégration du Portail
  • Préférences utilisateurs

Composants utilisés

  • Pour les états : JasperReports
  • Pour l’analyse : Mondrian, JPivot
  • Pour le planificateur : Quartz

Tous ces composants se retrouvent dans l’offre Open source de Pentaho.

Conclusion

JasperIntelligence est une plateforme aux fonctionnalités intéressantes mais limitées. Malgré l’utilisation de composants open source déjà rodés, la plateforme reste très jeune : la première version disponible date d’avril 2006. Il est cependant très intéressant de surveiller les évolutions qui vont y être apportées car elle pourrait être plus intéressant que les offres Pentaho et Spago en ce qui concerne l’interface qui je vous le rappelle, est développée spécifiquement pour l’outil BI par Jasper.

Spago (ou SpagoBI) :> comparaison avec Pentaho

Afin de comparer les outils BI, je mettrais les éléments comparatifs en gras.

pentaho, comparaison, spago, spagoBI


Présentation

Spago BI est une plate forme décisionnelle développée par la société italienne Engineering Ingegneria Informatica. Cette plate-forme est uniquement distribuée sous licence open source. Il n'y a donc pas de fonctionnalités volontairement absentes et réservée pour une version commerciale comme c'est le cas pour Pentaho par exemple.

Communauté

La communauté n’est pas très active, mais semble progresser régulièrement. Nous sommes quand même bien en deçà de l’engouement créé par Pentaho (www.spago.eng.it). L’activité des listes de diffusion est beaucoup plus réduite avec seulement quelques messages par mois. Une autre exemple est la disponibilité dans les différentes langues. Alors que Pentaho s’ouvre et se mondialise, Spago garde ses racines italiennes. Les tutoriaux en anglais sont évidement disponibles mais les communautés françaises ne se bousculent pas au portillon…

Fonctionnalités

Spago BI permet la génération d’états, simples ou paramétrés en utilisant les générateurs Jasper Reports et BIRT. Il permet également l'analyse de données avec Jpivot/Mondrian.

SpagoBI intègre un composant d’aide à la création de requêtes SQL (Query By Example) qui permet à l’utilisateur de sélectionner graphiquement les données à extraire de l’entrepôt de données puis d’effectuer des tris, groupements, sélections et d’exporter le résultat. Une manière plus ludique que celle offerte par pentaho pour créer une requête.

L’interface graphique utilise un ensemble de portlets pour afficher graphiques, états et indicateurs à l’intérieur du portail. Certains indicateurs et graphiques sont capables d’actualiser leurs données sans intervention de l’utilisateur. Un plus pour Spago. Avec Pentaho, on peut seulement générer un état pour recevoir périodiquement cette actualisation.

L'interface de SpagoBI utilise le portail eXo platform et permet de naviguer facilement entre les différents états et tableaux OLAP. L’intégration des documents dans le portail se fait par iframe, ce qui n’est pas toujours idéal, l’ergonomie n’étant pas à son paroxysme. Un moins pour Spago.

On pourra noter ainsi que dans certains écrans, la navigation n’est pas toujours intuitive malgré la présence, comme Pentaho d’onglets. Il faut souvent utiliser une icône en haut de la page pour valider un formulaire situé plus bas. Une fois habitué à ce fonctionnement, l’interface ne pose plus de problème. Mais la présence de deux icônes (une en bas et une en haut comme c’est le cas dans beaucoup de forums par exemple) serait bénéfique !

L'interface prend en charge la sécurité, avec une gestion des rôles utilisateurs pour les pages et groupes de documents décisionnels. Des profils différents sont disponibles pour les utilisateurs, les développeurs et les administrateurs. Ici, c’est un avantage important par rapport à Pentaho qui ne propose cette solution que dans sa solution comme

Workflow de publication

Spago intègre la gestion du cycle de création, tests et validation des documents décisionnels (états, cubes multidimensionnels,..). Toutes ces opérations sont réalisées directement depuis l'interface d'administration initiale.

Il est possible de créer des états « brouillons » que seuls les développeurs pourront voir et tester, sans qu’ils apparaissent dans l’environnement des utilisateurs. Cela est rendu possible grâce à la gestion utilisateurs, non possible sous Pentaho dans sa version Open source.

Les différentes versions de chaque état et des fichiers attachés (gabarits, images,...) sont enregistrées et il est possible de revenir à une ancienne version à tout moment. Un avantage non négligeable pour Spago. Cette fonctionnalité permet de mettre à jour les documents décisionnels, sans avoir accès au serveur lui-même et de les tester dans des conditions réelles avant leur mise en production.


Composants utilisés

SpagoBI utilise plusieurs composants décisionnels Open source :

  • Pour les états : JasperReports, BIRT
  • Pour le data-mining : Weka
  • Pour l’analyse : Mondrian, JPivot
  • Pour l’interface avec le portail : eXo Platform

La fonctionnalité de création de requêtes SQL (Query By Example) est développée spécifiquement par SpagoBI. Les indicateurs dynamiques des tableaux de bord sont des composants flash, générés avec la plate-forme Open Laszlo. Un pur produit italien : un avantage pour les débutants en SQL par rapport à Pentaho.

Intégration des données

Contrairement à Pentaho, SpagoBI n’est interfacé avec aucun ETL. Il n’est donc pas capable de déclencher des mises à jour de données directement depuis eXo Platform

Pour mettre en place l’entrepôt de données (datawarehouse) nécessaire au reporting, l’utilisateur est libre de choisir son ETL. Il est bien évidemment possible d’utiliser Kettle pour remplir cette fonction comme avec Pentaho.

Évolutions

De nombreuses évolutions sont prévues à court terme, dont notamment un moteur de workflow, un planificateur, une fonction de recherche et le support de nouveaux composants (générateurs d’états, ETL, …). Pour l’ETL, Spago ne l’a pas encore intégré à son outil, ce qui donne à l’utilisateur la possibilité de le choisir, comme rappelé ci-dessus.

Subtifles différences

On distinguera tout d’abord la double licence commerciale et open source pour Pentaho alors que Spago se concentre seulement sur le modèle Open source.

Comme je l’ai rappelé, Spago a choisi de développer une interface propre à son outil, donc unique. Pentaho se « contente » du portail JBoss avec une belle ergonomie que Spago essaye de dépasser avec son portail eXo (et son référentiel de contenu JCR) mais pour l’instant on reste sur notre fin !

Au niveau des communautés, Pentaho est actuellement celui dont on parle plus. Même si c’est de moins en moins vrai avec le développement de réels outsiders (Jasper et Spago notamment), Pentaho dispose d’un avantage certain. Mais le consortium ObjectWeb2 (résultat d’un regroupement entre ObjectWeb et OrientWare) est né pour contrer cette domination !

Comme je l’ai également souligné, je ne conclurai pas en disant que pour la BI, tel outil est mieux que tel outil car chacun a ses qualités ou ses défauts que l’autre n’a pas. Finalement, pour les puristes, il conviendra d’utiliser un composant de chaque outil afin de satisfaire ses hautes exigences car là se situe l’avantage commun à tous ses outils !

Conclusion

En conclusion, force est de constater que Spago n'a rien à envier sur certains aspects par rapport à Pentaho. J'apprécie ici l'outil de création de requêtes SQL (Query By Example), la possibilité de gérer les utilisateurs, ou encore l'actualisation des databoard mais je regrette une interface ou plutôt une ergnonomie limite dans certains cas(intégration des documents par iframe). Cependant, n'attendez pas de mon évalutaion un classement car cela dépend fortement des attentes placées dans ces outils mais surtout du public (informaticien ou non) auxquels ils sont destinés.

Le projet Pentaho :> Evaluation pour comparaison

Dans le cadre d'un projet avec mon master, je devais étudier les différents outils open source de BI et mon équipe (avec deux autres étudiants que je salue ici) ; notre choix s'est porté sur Pentaho bien sûr mais également Spago, Jasper Intelligence et Marvel IT principalement. Je vous propose ici de revenir sur l'évaluation de chacune de ses solutions. Pour plus de lisibilités, une étude par message sera publiée. Merci de vos commentaires !!


Communauté

Le projet Pentaho est actuellement très actif. Plusieurs projets décisionnels open source tels que Kettle, Mondrian et JFreeReport ont rejoint le projet Pentaho, ce qui garantit une parfaite intégration et une évolution cohérente de l'ensemble.

La communauté autour du projet est également dynamique comme en témoigne l'activité sur le forum Pentaho ainsi que les diverses contributions faites au projet par les utilisateurs. Initié en 2004, le projet Pentaho dispose pourtant déjà d’une bonne assise pour concurrencer ses adversaires payants.

Fonctionnalités

Pentaho permet, via une interface unique, soit un portail J2EE (Pentaho utilise le portail JBoss), soit une application Web spécifique (Mozilla, Internet…)

Il est possible de consulter des états (les outils BIRT, JasperReports et JFreeReport sont supportés), d'utiliser les fonctions d'exploration de données de JPivot, et de constituer des tableaux de bord sous quelques formes que ce soit. L'utilisateur a la possibilité de modifier les paramètres d'exécution d'un état, par exemple la période ou les produits représentés, de s’envoyer les résultats des états par email à échéance périodique ou dès qu’une condition est remplie (dépassement d’un seuil, CA trop inférieur…)

Ici deux exemples concrets de DashBoard (issus du site www.pentaho.com)

La plateforme Pentaho est organisée autour de deux composants : un moteur de workflow (Enhydra Shark ) et un planificateur de tâches (Quartz).

Moteur de workflow

Le moteur de workflow utilisé est « Enhydra Shark ». Son rôle est de structurer l'exécution des processus décisionnels. Dans Pentaho, chaque fonctionnalité (génération d’états, analyse) correspond à l'exécution d'une « action » (fichier .xaction modifiable avec Design Studio).

Les fichiers .xaction permettent de définir des points d’accès aux rapports dans le sens où chacun d’eux permet d’accéder aux données et appliquant éventuellement des filtres. De plus amples informations sont disponibles dans la documentation du site officiel.

L’éditeur permet de créer ou éditer des xactions. Il présente différents onglets :

  • Général qui permet de modifier le titre, l’auteur, la description et d’autres informations générales du rapport,
  • Define Process,
  • XML Source qui permet d’éditer directement le xml source de notre xaction,
  • Test qui permet de pré-visualiser le résultat de notre xaction.

L’onglet Define Process permet d’ajouter des entrées des processus d’action et des sorties à notre xaction. Les entrées peuvent être des sélections faites par l’utilisateur ou autre. Les processus d’action peuvent être des commandes SQL, des rapports, des diagrammes, etc.

Une action est une succession d'étapes simples, telles que l'exécution d'une requête sur une base de données, la génération d'un état, l'envoi d'un mail ou l’exécution d’un job de Kettle. Les traitements effectués dans ces actions peuvent être assez poussés, car il est possible de traiter séparément chaque élément d'un ensemble de résultats ou bien de réaliser des calculs spécifiques via l'exécution d'un programme javascript.

Chaque action est décrite par un simple fichier XML. Pentaho dispose d'un outil, Pentaho Design Studio, qui s'intègre dans l'environnement de développement Eclipse et permet de créer graphiquement ces fichiers. Nous y reviendrons plus tard.

Planificateur de tâches

Le planificateur utilisé est « Quartz ». Il permet de planifier n'importe quelle action Pentaho.

Il est ainsi possible de créer une action qui génère et envoie par mail un état, et de la planifier pour une exécution périodique.

Le contrôle du planificateur (ajout, suspension, et suppression des actions), peut s'effectuer soit manuellement, soit en utilisant les étapes correspondantes dans une action.

Pentaho permet donc non seulement d'utiliser des outils décisionnels avec une interface unique, mais également de combiner leurs fonctionnalités et de les enrichir grâce à des traitements réalisés en amont et en aval de leur exécution.

Interface utilisateur

Il est possible d'utiliser les fonctionnalités de la plateforme Pentaho dans une application Web, un portail J2EE ou par l'appel de web-services.

La version open-source de Pentaho inclus deux interfaces pour la présentation et d'exécution des différentes actions disponibles.

Application web

Cette interface sert de démonstration pour les fonctionnalités de Pentaho. Elle présente les actions disponibles, réparties par catégories. Elle propose également des fonctions d'administration. Cette interface n'inclut aucune notion de sécurité. Les actions et les fonctions d'administration sont utilisables par tous les utilisateurs.

Portail

Pentaho propose également des portlets qui permettent d'utiliser les fonctionnalités de Pentaho dans le portail JBoss Portal :

  • PentahoNavigationPortletWindow : affiche une interface similaire à l'application web. Ce portlet ne sera généralement pas utilisé en raison de l'absence de sécurité et de l'ouverture de chaque action dans une nouvelle fenêtre, ce qui est contraire au principe même du portail.
  • EmbeddedReportPortlet : permet d'intégrer un état directement dans le portail. Ce portlet peut également être utilisé pour composer des tableaux de bord à base de d’états légers.
  • ChartPortlet et WidgetGridPortlet qui permettent de combiner des graphiques afin de créer des tableaux de bord complexes et complets.

Il est ici possible d'utiliser les fonctions d'authentification et de sécurité du portail pour sélectionner les portlets affichés pour chaque utilisateur. Les actions peuvent par la suite utiliser l'identifiant de l'utilisateur afin de retourner des résultats adaptés, profilés.

Les fonctionnalités de l'interface utilisateur de la version open-source sont volontairement limitées. La gestion des annuaires LDAP et de sécurité au niveau de chaque dossier et action ne sont disponibles que dans la version commerciale (comptez 6000 € Par an pour une licence commerciale voir l’article Présentation de Pentaho pour davantage de précisions).

S'il est possible, avec la version open-source, d'interdire l'affichage d'un état pour une personne non autorisé, cette vérification ne peut être effectuée que lors de l'exécution de l'action. L'ensemble des actions existantes sont donc proposées à l'utilisateur bien qu'il n'ait accès qu'à certaines d'entre elles.

Il sera donc souvent nécessaire de réaliser des développements spécifiques pour intégrer la version open source en entreprise et la doter d'une interface cohérente.

Le portail JBoss Portal constitue néanmoins un bon point de départ pour construire des solutions autour de Pentaho.

Pentaho, qu'est-ce que c'est ?

Avant de se lancer dans le bain, il convient de rappeller à tous ceux qui sont tombés ici par hasard ce qu'est ou ce qu'offre Pentaho.

En une phrase courte mais peu compréhensible Pentaho est un projet global open source couvrant l'ensemble de la chaîne décisionnelle. Une chaine décisionnelle comporte les briques suivantes : reporting, analyse, tableau de bord (dashboard), data mining et workflow.
Initié par des vétérans du décisionnel : des ex de Business Objects, Cognos, Hyperion, IBM, Oracle, et SAS ; le projet est devenu l'une des alternatives aussi sûres que les solutions payantes.

En effet, Pentaho intègre la plupart des composants décisionnels open source existants (entre autres).

  • Pour la présentation des données et des rapports : Eclipse BIRT, JasperReports, JFreeReport
  • Pour les dashboard : JFreeChart
  • Pour l'analyse : JPivot, Mondrian
  • Pour la diffusion : Jboss Portal
  • Pour l'intégration des différentes bases de données (ETL) : Kettle
  • Pour le Worklfow : Enhydra Shark

Je détaillerai plus tard chacun de ces outils..


Vous noterez que Pentaho est proposée à la fois en version libre sous licence open source et en version professionnelle sous licence commerciale. Cette dernière est basée sur celle sous licence open source mais avec une interface utilisateur étendue. Elle dispose également de fonctionnalités supplémentaires comme le choix du format de sortie d'un état (HTML ou PDF) qu'il souhaite recevoir sur sa boite mail à intervalles réguliers. La personnalisation est donc plus importante avec une licence professionnelle.

Pour finir ce premier post, je soulignerai que le projet Pentaho est actuellement très actif, ce qui garantit une parfaite intégration et une évolution dynamique et cohérente de cete solution.

Vous pouvez consulter ICI une vidéo (moins de 3 minutes) où les principales fonctions de la suite décisionnelle Pentaho sont expliquées. Cette vidéo a été réalisée par la société SCTOILE.COM (basée à Lyon).

Pentaho World

Bienvenue dans le Blog (unofficial blog) pour les débutants qui s'essayent à Pentaho...