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 :
- Pour la collecte et l’intégration : les outils d’ETL Kettle ou Mondarian,
- Pour la diffusion : un serveur d’application JBoss ou TOMCAT,
- Pour la présentation : JFreeReport, BIRT ou encore JasperReport.
Installation
L’architecture que nous allons déployé est la suivante :
Les outils choisis sont donc :
- Kettle qui est un outil d’ETL intégré dans la solution Pentaho,
- Des bases de données diverses comme MySQL, Postgres, etc,
- Pentaho design studio et Pentaho report design wizard qui permettent la création et la publication simplifiée de rapports JFreeReport,
- Pentaho demo qui est une Installation pré-configurée de Pentaho sur un serveur JBoss.
L’ensemble des fichiers utiles à l’installation sont disponibles ici.
Nous utiliserons ici :
- Pentaho demo
- Pentaho design studio
- Pentaho report design wizard
- Kettle (disponible 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 :
- mail.smtp.host : l’adresse DNS ou IP du serveur SMTP que vous utilisez.
- mail.smtp.auth : mettre "true" si votre serveur mail nécessite un identifiant/mot de passe utilisateur pour envoyer des emails.
- mail.from.default : Lorsque la plateforme BI Pentaho envoie un email, cette adresse sera utilisée comme le champ “from”. La plupart des serveurs SMTP nécessitent une adresse valide.
- mail.userid : Si "mail.smtp.auth" est positionné à true, un identifiant valide d’utilisateur doit être donné ici.
- mail.password : Si "mail.smtp.auth" est positionné à true, un mot de passe valide d’utilisateur doit être donné ici.
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é
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.
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 :
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 :
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 :
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 :
- 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.
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 :
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.