Instal.lació Mondrian 2010

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

BI Platform-BI Suite

Pentaho Community Edition (CE) software is available in three forms: source code that you can build yourself, continuous integration (CI) builds and released builds.

Released builds a: http://sourceforge.net/projects/pentaho/files/Business%20Intelligence%20Server/1.2.0-stable/

A complete business intelligence platform that includes reporting, analysis (OLAP), dashboards, data mining and data integration (ETL). Use it as a full suite or as individual components that are accessible via web services. Ranked #1 in open source BI.

En el Sourceforge, els arxius de la BI Platform daten del 2007. Per tant, ho descarto i opto per la solució d'instal.lar cadascuna de les aplicacions: Mondrian, Kettle, Pentaho Reporting, Weka.

Mondrian

Recursos:

No confondre Mondrian amb el Schema Workbench. El Mondrian és el motor. El Schema Workbench és una eina gràfica per crear, editar o importar cubs OLAP. Per visualitzar-los ho he de fer en el Tomcat amb un navegador web.

Instal.lació Mondrian. Importació de la bd Foodmart

em descarrego Mondrian 3.1.6: mondrian-3.1.6.13364.zip (59.9 MB, 2010-02-25)

Ho copio i ho descomprimeixo a /usr/local/mondrian

Dins la carpeta demo/ hi ha el fitxer FoodMartCreateData.sql i també l'equivalent de Microsoft Access (.mdb) En el fitxer d'instal.lació hi ha instruccions de com importar la base de dades FoodMartCreateData.sql, mitjançant la utilitat MondrianFoodMartLoader.

Copio eigenbase-properties.jar, eigenbase-resgen.jar i eigenbase-xom.jar a /usr/local/mondrian/lib. Aquests fitxers els puc trobar, per exemple, en el schema workbench.

Necessito postgresql, i crear la base de dades foodmard

$ sudo apt-get install postgresql-8.4
$ psql -h localhost -p 5432 postgres -U postgres
postgres> create database foodmart;

Em descarrego totes les llibreries que necessito: commons-logging-1.1.1-bin.jar, log4j-1.2.15.jar, eigenbase-xom.jar, eigenbase-resgen.jar, eigenbase-properties.jar (es descarreguen de Internet o es troben en el schema-workbench, veure més avall). Ja puc importar la base de dades de Foodmart:

$ java -cp "/usr/local/mondrian/lib/mondrian.jar:/usr/local/mondrian/lib/log4j-1.2.15.jar:/usr/local/mondrian/lib/commons-logging-1.1.1.jar:/usr/local/mondrian/lib/eigenbase-xom.jar:/usr/local/mondrian/lib/eigenbase-resgen.jar:/usr/local/mondrian/lib/eigenbase-properties.jar:/usr/local/mondrian/lib/postgresql-8.4-701.jdbc4.jar" \
mondrian.test.loader.MondrianFoodMartLoader \
-verbose -tables -data -indexes \
-jdbcDrivers=org.postgresql.Driver \
-inputFile=/usr/local/mondrian/demo/FoodMartCreateData.sql \
-outputJdbcURL="jdbc:postgresql://localhost/foodmart?user=postgres&password=postgres"

i s'importa tota l'estructura i les dades de la base de dades Foodmart.


NOTA important. L'usuari amb què et connectes al PostgreSQL ha de tenir password!!

NOTA important. Té importància el directori des d'on s'invoca la comanda java. En el meu cas, /usr/local/mondrian

NOTA important. Si dóna l'error Could not find the main class: mondrian.test.loader.MondrianFoodMartLoader., comprovar que les versions dels fitxers són les correctes. Es pot comprovar que existeix la classe mondrian.test.loader.MondrianFoodMartLoader fent doble click en el fitxer mondrian.jar i navegant per l'estructura del projecte.

$ psql -h localhost -p 5432 -U postgres foodmart

foodmart# \d

                   Listado de relaciones
 Esquema |            Nombre             | Tipo  |  Dueño   
---------+-------------------------------+-------+----------
 public  | account                       | table | postgres
 public  | agg_c_10_sales_fact_1997      | table | postgres
 public  | agg_c_14_sales_fact_1997      | table | postgres
 public  | agg_c_special_sales_fact_1997 | table | postgres
 public  | agg_g_ms_pcat_sales_fact_1997 | table | postgres
 public  | agg_l_03_sales_fact_1997      | table | postgres
 public  | agg_l_04_sales_fact_1997      | table | postgres
 public  | agg_l_05_sales_fact_1997      | table | postgres
 public  | agg_lc_06_sales_fact_1997     | table | postgres
 public  | agg_lc_100_sales_fact_1997    | table | postgres
 public  | agg_ll_01_sales_fact_1997     | table | postgres
 public  | agg_pl_01_sales_fact_1997     | table | postgres
 public  | category                      | table | postgres
 public  | currency                      | table | postgres
 public  | customer                      | table | postgres
 public  | days                          | table | postgres
 public  | department                    | table | postgres
 public  | employee                      | table | postgres
 public  | employee_closure              | table | postgres
 public  | expense_fact                  | table | postgres
 public  | inventory_fact_1997           | table | postgres
 public  | inventory_fact_1998           | table | postgres
 public  | position                      | table | postgres
 public  | product                       | table | postgres
 public  | product_class                 | table | postgres
 public  | promotion                     | table | postgres
 public  | region                        | table | postgres
 public  | reserve_employee              | table | postgres
 public  | salary                        | table | postgres
 public  | sales_fact_1997               | table | postgres
 public  | sales_fact_1998               | table | postgres
 public  | sales_fact_dec_1998           | table | postgres
 public  | store                         | table | postgres
 public  | store_ragged                  | table | postgres
 public  | time_by_day                   | table | postgres
 public  | warehouse                     | table | postgres
 public  | warehouse_class               | table | postgres
(37 filas)

Notes per a la importació de FoodMart en un entorn Windows

Important!. El que s'ha trobat el professor és que el fitxer mondrian.jar que està dins de mondria/lib/ deu estar corrupte, doncs si es descomprimeix (els fitxers .jar es poden descomprimir), no es troba l'estructura de directoris mondrian/test/loader/MondrianFoodMartLoader (el que volem fer és precisament executar la classe MondrianFoodMartLoader.class que està en aquest directori). La solució és copiar el fitxer mondrian.jar que es troba en el Schema Workbench (psw/schema-workbench/lib)

java -cp "C:\mondrian\mondrian\lib\mondrian.jar;C:\mondrian\mondrian\lib\log4j.jar;C:\mondrian\mondrian\lib\commons-logging.jar;C:\mondrian\mondrian\lib\eigenbase-xom.jar;C:\mondrian\mondrian\lib\eigenbase-resgen.jar;C:\mondrian\mondrian\lib\eigenbase-properties.jar;C:\mondrian\mondrian\lib\postgresql-8.4-701.jdbc4.jar" mondrian.test.loader.MondrianFoodMartLoader -verbose -tables -data -indexes -jdbcDrivers="org.postgresql.Driver,sun.jdbc.odbc.JdbcOdbcDriver" -inputFile="C:\mondrian\mondrian\demo\FoodMartCreateData.sql" -outputJdbcURL="jdbc:postgresql://localhost/foodmart" -outputJdbcUser=postgres -outputJdbcPassword=******

i ja funciona.

Comentaris:

Instal.lació de Tomcat i execució de l'aplicació Mondrian

Dins de /usr/local/mondrian/lib tenim el fitxer mondrian.war, que és el fitxer de desplegament de l'aplicació de Mondrian per a Tomcat. Hem d'instal.lar Tomcat per poder utilitzar-lo. Per a la instal.lació segueixo Instal.lació_Tomcat.

Em descarrego apache-tomcat-6.0.26.tar.gz, i segueixo el procés d'instal.lació fins tenir el Tomcat funcionant:

$ sudo /usr/share/tomcat6/bin/startup.sh

Entro en el Tomcat Manager com a admin/admin

Desplego el fitxer mondrian.war. Això en principi es pot fer de dues maneres:

  1. copiar mondrian.war a /usr/share/tomcat6/webapps. Apago i torno a arrencar tomcat. En el procés d'arrencada es desplega modrian (es pot veure perquè es crea la carpeta webapps/modrian).
  2. Des del Tomcat Manager hi ha l'opció Deploy. Es buscar el .war i es desplega.

Puc comprovar que l'aplicació funciona fent

http://192.168.0.10:8080/mondrian

Executo la primera prova, i no funciona... i és que encara falta configurar l'accés a la base de dades.

Tocar els següents fitxers:

dins del directori mondrian,

$ joe WEB-INF/mondrian.properties

canvio

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

per

mondrian.test.connectString=Provider=mondrian;Jdbc=jdbc:postgresql://localhost/foodmart?user=postgres&password=xxxx;JdbcDrivers=org.postgresql.Driver;Catalog=/WEB-INF/queries/FoodMart.xml;

nota: en una versió posterior de Mondrian el fitxer mondrian-properties pot tenir un aspecte diferent.

per a la query testpage.jsp?query=mondrian he de canviar el fitxer WEB-INF/queries/mondrian.jsp

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

per

<jp:mondrianQuery id="query01" jdbcDriver="org.postgresql.Driver" jdbcUrl="jdbc:postgresql://localhost/foodmart?user=postgres&password=xxxx" catalogUri="/WEB-INF/queries/FoodMart.xml">

Nota: si darrera de Foodmart.xml hi ha una cua, treure-ho

Si diu que no troba org.postgresql.Driver, és que encara m'he descuidat una altra cosa, que és ficar el jdbc driver de Postgres dins la carpeta /usr/share/tomcat6/lib

$ cp  /home/joan/postgresql-8.3-603.jdbc4.jar ./

Funcionen tots els exemples menys:

   * JPivot pivot table by XMLA -> la solució està en modificar el fitxer WEB-INF/datasources.xml
   * Various queries formatted using the Mondrian tag-library -> no funciona
   * Basic interface for ad hoc queries -> adhoc.jsp. Funciona, però quan faig una query no funciona
   * XML for Analysis tester -> crec que funciona

Per fer-ho acabar de funcionar, mirar:


Nota alumnes EC.

Els alumnes poden utilitzar la base de dades foodmart del servidor 192.168.0.10 amb les credencials dai/dai:

CREATE USER dai WITH ENCRYPTED PASSWORD 'dai';
grant all privileges on database foodmart to dai; 

Eines

Schema Workbench

El Schema Workbench és una aplicació que serveix per crear i editar cubs OLAP, o bé importar l'esquema des d'un fitxer xml (en el nostre cas, demo/FoodMart.xml). I per crear els fitxers d'esquema XML. Puc visualitzar el resultat d'una query, però per poder visualitzar-la de forma clara la necessito publicar en el Tomcat.

Em descarrego psw-ce-3.1.6.13364.tar.gz (26/02/2010) (o bé el zip)

Se'm descarrega en la carpeta schema-workbench

llegeixo en el readme:

Welcome to the Mondrian Schema Workbench.

The Mondrian Schema Workbench allows you to visually create and test Mondrian OLAP cube schemas.

See the docs directory for documentation on the Workbench and Mondrian.


Technical Prerequisites for the Workbench

* Java 1.5.
* JDBC driver for your database in the drivers directory.


Start the Workbench by running "workbench.bat" (Windows) or "workbench.sh" (for Unix/Linux) where you installed.

I efectivament, aquesta és l'aplicació que necessito, que puc executar fent workbench.sh. El primer que he de fer és configurar la base de dades i buscar el driver JDBC. Ho faré sobre Postgres.

$ sudo apt-get install postgresql-8.4 (segurament ja està fet)

http://jdbc.postgresql.org/. Em descarrego JDBC4 Postgresql Driver, Version 8.4-701 (postgresql-8.4-701.jdbc4.jar), i el poso a la carpeta schema-workbench/drivers/

Arrenco:

$ ./workbench

el primer que faig és configurar una Database Connection a PostgreSQL: (Tools > Connection)

Nota: molt de compte no generar espais en blanc al final de les línies

La missió de l'aplicació Mondrian Schema Workbench seria la de generar els arxius xml (FoodMart.xml), que és on hi ha la definició del cub.

Hi ha altres utilitats:

Nota per a usuaris de Windows

Schema Workbench. Configuració del driver postgresql JDBC driver

Hi ha dues maneres de fer-ho 1) editar el fitxer workbench.bat i ficar la següent línia

set CP=%CP%;lib/postgresql-8.4-701.jdbc4.jar

ficar el postgresql-8.4-701.jdbc4.jar en el directori lib/

2) ficar el postgresql-8.4-701.jdbc4.jar en el directori drivers/

D'aquesta manera s'aconsegueix establir una connexió correcta amb una base de dades PostgreSQL, necessari per a la publicació del fitxer xml a un servidor Mondrian. Tanmateix, la connexió no és necessària per visualitzar el contingut del fitxer FoodMart.xml i editar els cubs, dimensions i mesures.

Pentaho Cub Designer

cmdrunner

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines