Pentaho Mondrian: un motore OLAP per Java

Pentaho Mondrian Analysis è un motore per On Line Analytical Processing (OLAP) sviluppato in Java.

Implementa le funzionalità indispensabili all’analisi dati (aggregazione, drill-down drill-through, slicing, dicing) ed è in grado di eseguire query espresse in MDX leggendo i dati da un RDBMS e presentando i risultati in forma multidimensionale per mezzo di API Java.

La connessione alla base di dati di Data Warehouse avviene via JDBC, il che rende indipendente Mondrian dal particolare RDBMS utilizzato. Lo schema multidimensionale della base dati può essere sia a stella che a fiocco di neve, e la sua descrizione viene fornita al motore sotto forma di un file XML.

In questo articolo vedremo come configurare Mondrian su di un database Mysql, utilizzando come Application Server Tomcat,ed utilizzando come dataset il database incluso nella distribuzione (foodmart).

Scarichiamo l’ultima versione di Mondrian dal sito sourceforge:

http://sourceforge.net/projects/mondrian/

Scompattiamolo in una directory (che chiameremo in seguito MONDRIAN_HOME) , ritroveremo due cartelle: demo e mondrian-version, ridenominiamo quest’ultima come mondrian (così facendo sarà più agevole definire i classpath successivamente :)).

Configuriamo ora il database Mysql (supponendo che risponda alla porta 3306 come da default).

Tramite la console MySql creiamo il database foodmart ed assegniamo i privilegi all’utente foodmart:

mysql> create database foodmart;
mysql> grant all privileges on *.* to 'foodmart'@'localhost' identified by 'foodmart';

Per caricare i dati nel dabase appena creato posizioniamo nella directory MONDRIAN_HOME  e lanciamo questo comando (facciamo attenzione ai nomi dei jar file, ridenominiamoli se necessario):

java -cp ".mondrianlibmondrian.jar;.mondrianliblog4j.jar;.mondrianlibcommons-logging.jar;.mondrianlibeigenbase-xom.jar;.mondrianlibeigenbase-resgen.jar;.mondrianlibeigenbase-properties.jar;.mondrianlibmysql-connector-java-5.0.5-bin.jar"
mondrian.test.loader.MondrianFoodMartLoader
-verbose -tables -data -indexes
-jdbcDrivers=com.mysql.jdbc.Driver
-inputFile=/mondrian/demo/FoodMartCreateData.sql
-outputJdbcURL="jdbc:mysql://localhost:3306/foodmart?user=foodmart&password=foodmart"

Configuriamo ora Tomcat; creiamo una cartella mondrian sotto  TOMCAT_HOME/webapps/ ed estraiamoci il contenuto dell’archivio mondrian.war (che troviamo nel pacchetto che abbiamo scaricato nella cartella /lib).

Editiamo il file mondrian.properties che si trova alla directory:

TOMCAT_HOME/webapps/mondrian/WEB-INF

e sostituiamo i parametri del database definiti:

Provider=mondrian;Jdbc=jdbc:odbc:MondrianFoodMart;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=sun.jdbc.odbc.JdbcOdbcDriver;/>

con quelli che abbiamo già usato per popolare il DB:

Provider=mondrian;Jdbc=jdbc:mysql://localhost:3306/foodmart?user=foodmart&password=foodmart;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=com.mysql.jdbc.Driver;
/>

Modifichiamo i file fourhier.jsp, mondrian.jsp, colors.jsp e arrows.jsp che si trovano nella directory TOMCAT_HOME/webapps/mondrian/WEB-INF/queries, andando a sostituire la linea:

<jp:mondrianQuery id="query01" jdbcDriver="sun.jdbc.odbc.JdbcOdbcDriver" jdbcUrl="jdbc:odbc:MondrianFoodMart" catalogUri="/WEB-INF/queries/FoodMart.xml"/>

con questa:

<jp:mondrianQuery id="query01" jdbcDriver="com.mysql.jdbc.Driver" jdbcUrl="jdbc:mysql://localhost:3306/foodmart?user=foodmart&amp;amp;password=foodmart" catalogUri="/WEB-INF/queries/FoodMart.xml"/>

Infine copiamo il driver mysql (il jar mysql-connector) e la libreria xalan.jar, nella directory TOMCAT_HOME/lib.

Avviamo il server Tomcat e digitiamo in un browser l’URL:

http://localhost:8080/mondrian

Si aprirà una pagina con due sezioni:

  • una serie di link con esempi sul datamart caricato su db;
  • link al progetto Mondrian e JPivot

Home Page dell'applicazione Mondrian

Per vedere Mondrian all’opera lanciamo uno dei link della prima sezione:

L'esempio JPivot pivot table

1 Stella2 Stelle3 Stelle4 Stelle5 Stelle (1 voti, media: 5,00 di 5)
Loading...
You can leave a response, or trackback from your own site.

One Response to “Pentaho Mondrian: un motore OLAP per Java”

Leave a Reply

*