BI - Business Intelligence

Pentaho

Ce chapitre explique comment installer une solution open source de business intelligence : pentaho. Il montre aussi comment adapter cette solution à nos propres besoins. Ce guide explique l’installation sur une plateforme Windows uniquement.

Présentation

Pentaho est une solution d’informatique décisionnelle open source entièrement développée en Java. Elle porte sur toute la chaîne décisionnelle et utilise différents outils et composants :

Installation

L’architecture que nous allons déployé est la suivante :

Architecture

Les outils choisis sont donc :

L’ensemble des fichiers utiles à l’installation sont disponibles ici.

Nous utiliserons ici :

La base de notre installation est la version demo de pentaho. Il s’agit en fait d’un serveur d’application Jboss pré-paramètré sur lequel est déployé l’application web Pentaho permettant la diffusion des rapports. Une JRE est aussi intégrée à cette version. Il faut simplement extraire l’archive téléchargée (pentaho_demo-xxx.zip) dans le répertoire de votre choix.

Puis nous utiliserons Kettle. Il suffit de télécharger et d’extraire l’archive Kettle-xxx.zip dans le répertoire de votre choix.

Ensuite l’outil d’exploitation des tableaux de bord Pentaho Design Studio est utilisé pour leur publication, leur suppression et leur modification. Il faut ici aussi simplement extraire l’archive téléchargée (pentaho-design-studio_xxx.zip) dans le répertoire de votre choix.

Enfin nous utiliserons un outil d’aide à la création de rapports : Pentaho Report Design Wizard. Il permet la mise en page des données récupérées, la création de graphiques et plus généralement tout ce qui va à terme rendre lisible et exploitable les données métiers centralisées.

Paramétrage et manipulation

Pentaho Demo

Lancement et arrêt

Pour lancer la démonstration de Pentaho sur un serveur Windows il faut exécuter le fichier 'start-pentaho.bat' disponible dans le répertoire racine d’installation : 'pentaho-demo'. Pour arrêter le serveur il faut exécuter le fichier 'stop-pentaho.bat'. Le compte utilisateur qui lance la plateforme décisionnelle doit avoir des permissions en création de répertoires et fichiers dans le répertoire pentaho-demo/pentaho-solutions/system/content.

Pour tester votre installation, lancez la plateforme BI et naviguez via un browser Internet (les navigateurs compatibles sont Firefox 1.5, Firefox 2.0, Netscape 7.2, Opera 7.5, Safari, et Microsoft Internet Explorer 6.0) à l’url http://localhost:8080/. Les différents rapports de démonstration y sont disponibles.

Emails

Ensuite pour modifier la configuration mail et permettre aux différents rapports d’émettre des emails il faut modifier le fichier email_config.xml disponible à l’url : /pentaho-demo/pentaho-solutions/system/smtp-email/email_config.xml. Editez ce fichier xml en modifiant les paramètres suivants :

Pour tester le bon fonctionnement de l’envoi de mails vous pouvez exécuter le rapport HelloEmail disponible dans le répertoire Getting started des rapports de démonstration.

Mot de passe de publication

Pour sécuriser la publication de documents sur notre serveur il convient de définir un "Publish Password" (mot de passe de publication). Ce mot de passe sera demandé à chaque fois qu’un logiciel tiers tentera de publier un rapport ou autre document sur le serveur. Il faut pour cela éditer le fichier publisher_config.xml disponible dans le répertoire : /pentaho-demo/pentaho-solutions/system/publisher_config.xml

On définit le mot de passe en modifiant le texte :

<publisher-password>nouveau mot de passe</ publisher-password >
Le test du mot de passe de publication sera vu plus tard avec le Report Design Wizard.

Accès distant

L’installation pré-configurée est faite pour être utilisée sur une machine seule via l’url http://localhost:8080/pentaho. Pour accéder au serveur depuis d’autres machines il faut modifier cette url de base dans le fichier web.xml disponible dans le répertoire : /pentaho-demo/jboss/server/default/deploy/pentaho.war/WEB-INF

Le paramètre à modifier est :

<context-param>
	<param-name>base-url</param-name>
	<param-value>http://url_de_votre_serveur:8080/pentaho/</param-value> 
</context-param>

Ajout d’une source de données

Nous allons ici expliquer comment ajouter une source de données à notre serveur. Celle-ci pourra ensuite être utilisée dans notre serveur d’application. Pour cela ajoutez un fichier nommé -ds.xml dans le répertoire : \pentaho-demo\jboss\server\default\deploy\

Le contenu de ce fichier doit être :

<?xml version="1.0" encoding="UTF-8" ?> 
<datasources>
	<local-tx-datasource>
		<jndi-name>NomJNDI</jndi-name>
		<connection-url>SCHEMA://ADRESSE:PORT/BD </connection-url>
		<driver-class>DRIVER</driver-class>
		<user-name>LOGIN</user-name>
		<password>PWD</password>
	</local-tx-datasource>
</datasources>

Le NomJNDI sera par la suite utilisé pour identifier la source de données. Le SCHEMA dépend du type de la base de données utilisée (par exemple jdbc:mysql pour une base de données MySQL). L’ADRESSE et le PORT définissent l’adresse du serveur hébergeant notre BD (par exemple localhost pour une base en local) et sur quel port elle est accessible (par exemple 3306 pour une installation par défaut de MySQL ou 5432 pour un Postgres). La BD est le nom de la base de données à utiliser. Le LOGIN et le PWD sont le login/mot de passe de l’utilisateur permettant d’accéder à la base de données.

Ces notations sont utilisées ci-après et ont toujours la même signification.

Il faut ensuite modifier le fichier web.xml de l’application Pentaho : pentaho-demo\jboss\server\default\deploy\pentaho.war\WEB-INF\web.xml

Il suffit d’ajouter les lignes suivantes justes avant la balise </web-app>:

<resource-ref>
	<description><nom du datasource></description>
	<res-ref-name>jdbc/NomJNDI</res-ref-name>
	<res-type>DRIVER</res-type>
	<res-auth>Container</res-auth>
</resource-ref>

Puis modifiez le fichier jboss-web.xml ( pentaho-demo\jboss\server\default\deploy\ pentaho.war\WEB-INF\jboss-web.xml ) en ajoutant les lignes suivantes avant la balise :

<resource-ref>
	<res-ref-name>jdbc/NomJNDI</res-ref-name>
	<res-type>DRIVER</res-type>
	<jndi-name>java:/NomJNDI</jndi-name>
</resource-ref>

Enfin ajoutez les drivers (fichier jar) de votre base de données dans le répertoire \pentaho-demo\jboss\server\default\lib.

Kettle

Une fois l’archive Kettle extraite (voir le chapitre d’installation) il faut tout d’abord ajouter l’ensemble des drivers de base de données que vous allez utiliser dans le répertoire KettleRoot\libext\.

Ensuite le répertoire racine d’installation présente différents exécutables. Celui à utiliser pour lancer Kettle est Spoon.bat.

La prise en main de cet outil est assez intuitive, c’est pourquoi cette partie n’expliquera que les bases de son utilisation sans trop rentrer dans les détails.

Un fois connecté à Kettle (login/mot de passe par défaut : admin/admin) celui-ci nous présente la page suivante :

Kettle

La partie de droite permet de visualiser l’enchaînement des tâches et transformations, la partie en haut à gauche permet de visualiser sous forme d’arborescence les tâches, les transformations et les connections, enfin la partie en en bas à droite permet de visualiser les différentes transformations utilisables.

Commençons par ajouter une connexion. Il nous en faudra aux moins deux : une pour extraire les données métiers et une autre pour charger les données transformées d’aide à la décision. Pour cela cliquer sur « Assistant » dans la barre de menu puis sur « Assistant de création de connexion … ». Celui-ci vous guidera lors de la création d’une connexion.

Puis une transformation peut être ajoutée en double cliquant sur « Transformations » dans l’arborescence de gauche. Les étapes y sont ajoutées en glisser/déplacer depuis les « Types d’étapes ». Le principe d’une transformation est de charger des données (sous menu Extraction), de les transformer (filtrage, calculs, tris, …) et éventuellement de les enregistrer (sous menu Alimentation). L’enchaînement entre ces étapes se fait via des liens. Pour créer un nouveau lien sélectionnez deux étapes puis dans le menu contextuel (clic droit) cliquez sur « Nouveau lien ». Le sens du lien est affiché par une flèche. Les données en sortie de l’étape source sont utilisées en entrée de l’étape destination.

Enfin une tâche peut être ajoutée en double cliquant sur « Tâches » dans l’arborescence de gauche. Une tâche est en fait un enchaînement de transformation dont l’exécution peut être programmée.

Que ce soit pour les transformations ou les tâches leur exécution se fait par une pression sur la touche F9. Un écran de log apparaît alors.

La principale difficulté est ici de créer un datawarehouse qui soit cohérent et simple d’utilisation dans le cadre de l’aide à la décision.

Design Studio

Avant d’utiliser Pentaho Design Studio il faut y ajouter votre base de données. Pour cela copier les drivers relatifs à votre BD (le fichier .jar) dans le répertoire : pentaho-design-studio\plugins\org.pentaho.designstudio.editors.actionsequence_xxx\rdw\lib\jdbc

Ajouter les lignes suivantes dans le fichier jdbc.properties du designer (accessible dans le répertoire pentaho-design-studio\plugins\org.pentaho.designstudio.editors.actionsequence_xxx\rdw\resources\solutions\system\simple-jndi\jdbc.properties) :

NomJNDI /type=javax.sql.DataSource
NomJNDI /driver= DRIVER
NomJNDI /url=SCHEMA://ADRESSE:PORT/BD
NomJNDI /user=LOGIN
NomJNDI /password=PWD

Le but de Pentaho Design Studio est de faciliter la création et la gestion des fichiers de notre solution Pentaho. Le Design Studio aide à organiser ces fichiers et propose un éditeur pour chacun de leurs types. Il y a plusieurs niveaux d’organisation dans le Design Studio: le workspace, les projets, les vues, les éditeurs et les perspectives. La capture suivante montre un aperçu de ce logiciel :

Kettle

Le Design Studio est en fait un plugin pour Eclipse. Pour apprendre les bases de la manipulation du Design Studio il est donc nécessaire d’être familier d’Eclipse. Ces points ne sont pas traités ici.

Pour avoir accès aux rapports et autres fichiers de la démonstration de Pentaho il faut créer un nouveau projet utilisant les fichiers disponibles dans le répertoire \pentaho-demo\pentaho-solutions. On peut alors parcourir l’arborescence des fichiers de la démonstration. On obtient alors la vue suivante :

Kettle

Chaque sous-répertoire du répertoire « samples » correspond à un groupe de rapports. On pourra ainsi créer un nouveau sous-répertoire contenant nos propres rapports. Ce répertoire devra contenir un fichier index.xml au format suivant :

<index>
	<name>NOM</name>
	<description>DESCRIPTION</description>
	<icon>ICONE</icon>
	<visible>true</visible>
	<display-type>TYPE</display-type>
</index>

Ce répertoire contient les divers fichiers .xaction permettant de définir des points d’accès aux rapports.

L’éditeur de xactions

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 :

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.

Pour en savoir d’avantage sur la création d’xactions reportez vous aux différents exemple fournis dans la démonstration.

Report Design Wizard

Ce logiciel permet de créer simplement des rapports utilisables dans le Design Studio. Ces rapports peuvent contenir des tableaux, des tableaux croisés, différents types de diagramme et cet éditeur permet de les paramétrer entièrement.

Les données utilisées dans les rapports sont récupérables via un requêteur SQL dont une impression d’écran suit :

Kettle

Il permet de créer très simplement des requêtes SQL pour récupérer les données depuis un datawarehouse.

Enfin l’écran de publication ci-dessous permet de publier des rapports. Il est alors nécessaire de donner le mot de passe de publication.

Kettle