Con la ultima versión estable de la plataforma BI descargada de la web de Pentaho (la
3.5.2), y siguiendo las
instrucciones de Prashant Raju para esta versión en la plataforma
Windows utilizando
MySql, realizamos la instalación y configuración de nuestro sistema realizando los siguientes pasos:
1) Requisitos previos: maquina virtual Java y la base de datos MySQL (u otra de las soportadas).
Para poder ejecutar la plataforma de BI de Pentaho es necesario
disponer de una máquina virtual Java instalada en el equipo donde vamos a
trabajar. Pentaho recomienda la versión 1.5 de Sun JRE. Con versiones
anteriores no funciona y la 1.6 no esta oficialmente soportada (es la
que tengo instalada yo), aunque si funciona.
Para ver la versión instalada, ejecutaremos el comando:
java -version. En el caso de no disponer de la máquina, podemos descargarla en la web de
Sun.
A continuación comprobaremos que la variable de entorno
JAVA_HOME apunte al directorio donde tenemos instalado Java. Igualmente, la variable
PATH
también debera apuntar al directorio de ejecutables de la instalación
de Java. En mi caso, el valor de las variables será el siguiente:
JAVA_HOME c:\Program Files\Java\jdk1.6.0_17
PATH c:\Program Files\Java\jdk1.6.0_17\bin;.....
Para configurar las variables, lo realizaremos desde Propiedades del Sistema, Variables de Entorno.
Con respecto a MySQL, en el caso de que no lo tengamos instalado en nuestra máquina, lo descargaremos de la
web y realizaremos la instalación según las instrucciones que nos proporcionan en su portal de
documentación.
2) Descomprimir los ficheros de la plataforma.
Seleccionamos una carpeta (por ejemplo c:\pentaho), y en ella vamos a
descomprimir el fichero Zip que nos hemos bajado de la web. Tras el
proceso, tendremos dos carpetas diferenciadas, llamadas
administration-console y
biserver-ce.
La primera carpeta alberga los ficheros de la plataforma de
administración, que utilizamos para configurar y administrar el servidor
BI (utiliza Jetty). La segunda, es la plataforma de BI propiamente
dicha (la que utilizarán los usuarios), que utiliza tomcat.
En este momento, ya podriamos arrancar la plataforma desde los
correspondientes scripts que se encuentran en la carpeta
c:\pentaho\biserver-ce (start-pentaho.bat para iniciar el servidor y
stop-pentaho.bat para pararlo). Este Script arranca en primer lugar la
base de datos HSQLDB de ejemplo (donde residen las datos necesarios para
el funcionamiento de la plataforma, junto con datos de pruebas para los
ejemplos precargados). A continuación, arranca la plataforma de BI, a
través del tomcat. Como no queremos trabajar con esa base de datos, sino
con MySQL, vamos a proceder a realizar una serie de ajustes antes de
arrancar la plataforma.
3) Creación de catalogos en base de datos necesarios para la plataforma.
La plataforma Pentaho necesita dos bases de datos para su
funcionamiento (además de la base de datos de test para poder trabajar
con el set de ejemplos). Las bases de datos y su cometido son las
siguientes:
- hibernate: esta base de datos almacena la
autentificación de usuarios y los datos de autorizaciones, el contenido
BI (solution repository) y los origenes de datos disponibles en la
plataforma.
- quartz: es el repositorio para el scheduler Quartz,
que es uno de los componentes que forma la plataforma, que nos permite
la planificación de procesos dentro del servidor BI.
- sampledate: contiene las tablas para ilustrar y
hacer posible la ejecución de todos los ejemplos por defecto que
proporciona la plataforma, para poder hacernos una idea de sus
funcionalidades y sus posibilidades de análisis.
Por defecto, los catálogos de estas bases de datos estarán creados en
la base de datos HSQLDB que se puede arrancar en la configuración del
servidor por defecto. Para crearlos en MySQL, como es nuestro caso,
ejecutaremos los scripts que se encuentran en la carpeta
c:\pentaho\biserver-ce\data o bien descargarlos de la web de
Prashant Raju.
Decido utilizar estos últimos, pues ademas de crear todos los catalogos
de tablas, también incluye la carga de datos de ejemplo (paso 5), que
es una opción que no incluye la instalación estandar. El orden de
ejecución será el siguiente:
mysql> source 1_create_repository_mysql.sql;
...output
mysql> source 2_create_quartz_mysql.sql;
...output
mysql> source 3_create_sample_datasource_mysql.sql;
...output
mysql> source 4_load_sample_users_mysql.sql;
...output
mysql> source 5_sample_data_mysql.sql;
...output
La ejecución de los scripts sql la realizaremos desde MySQL Query
Browser (la herramienta gráfica para ejecución de sentencias SQL) o bien
desde linea de comandos con la utilidad mysql que llevar incluido el
servidor MySQL para ejecutar scripts. Podiamos haber utilizado cualquier
otro editor sql, como
SQuirreL.
4) Configuracion JDBC, Hibernate and Quartz.
Todas las aplicaciones de Pentaho, incluyendo el Pentaho Server,
utilizan la conectividad JDBC (Java Database Connectivity) para la
comunicación con las bases de datos. Por tanto, será necesario disponer
de los correspondientes conectores según la base de datos que vayamos a
utilizar. En nuestro caso, vamos a dejar tanto el conector para MySQL
(donde iran las bases de datos de Hibernate y Quartz), como el de Oracle
(donde va la base de datos del DW). Las carpetas donde vamos a copiar
serán las siguientes:
- C:\Pentaho\biserver-ce\tomcat\common\lib: ubicación
de los drivers JDBC para poder utilizar en el servidor Pentaho la base
de datos para la que el conector proporciona conectividad.
- C:\Pentaho\administration-console\jdbc: es
necesario ponerlos aquí también para poder definir correctamente las
conexiones a base de datos en la consola de administración.
A continuación, configuraremos los ficheros de parametrización del
sistema para que Hibernate y Quartz lean de los catalogos de base de
datos en Mysql que hemos creado en el punto 3, en lugar de la base de
datos HSQLDB proporcionada por defecto.
- Configuracion de Hibernate (I): en el fichero applicationContext-spring-security-jdbc.xml
(ubicado en la carpeta
C:\Pentaho\biserver-ce\pentaho-solutions\system), modificaremos la parte
que veis subrayada a continuación, con los valores referidos para
utilizar MySQL.
<!-- This is only for Hypersonic. Please update this section for any other database you are using -->
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
value="jdbc:mysql://localhost:3306/hibernate" />
<property name="username" value="hibuser" />
<property name="password" value="password" />
</bean>
- Configuracion de Hibernate (II): en el fichero applicationContext-spring-security-hibernate.xml
(ubicado en la carpeta
C:\Pentaho\biserver-ce\pentaho-solutions\system), modificaremos la parte
que veis subrayada a continuación, con los valores referidos para
utilizar MySQL.
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/hibernate
hibernate.dialect=org.hibernate.dialect.MySQLDialect
- Configuración de Hibernate (y III): en el fichero hibernate-settings.xml
( ubicado en la carpeta
C:\Pentaho\biserver-ce\pentaho-solutions\system\hibernate),
modificaremos la parte que veis subrayada a continuación.
<config-file>system/hibernate/mysql5.hibernate.cfg.xml</config-file>
Con la configuración anterior, hemos configurado la seguridad JDBC de
la plataforma. Ahora nos falta indicar en los contextos del servidor de
aplicación, la ubicación de las bases de datos, para decirle al
servidor que lea de las bases de datos en Mysql, utilizando los drivers y
la configuración de seguridad realizada anteriormente. Para ello,
modificamos el fichero
contexts.xml (ubicado en C:\Pentaho\biserver-ce\tomcat\webapps\pentaho\META-INF) de la siguiente manera:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/pentaho" docbase="webapps/pentaho/">
<Resource name="jdbc/Hibernate" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
maxWait="10000" username="hibuser" password="password"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/hibernate"
validationQuery="select 1" />
<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
maxWait="10000" username="pentaho_user" password="password"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/quartz"
validationQuery="select 1"/>
</Context>
Con esta configuración ya tendriamos lista la parte de conectividad
con la base de datos. Solo en el caso de que no hubieramos utilizado los
scripts de Prashant Raju, tendriamos que realizar un último paso, que
sería ejecutar la siguiente sentencia SQL para indicarle al servidor que
los datos de ejemplo los hemos cambiado de lugar:
UPDATE hibernate.DATASOURCE
SET DRIVERCLASS = 'com.mysql.jdbc.Driver’,
URL = 'jdbc:mysql://localhost:3306/sampledata’,
QUERY = 'SELECT 1’
WHERE NAME = 'SampleData’
;
5) Configuración Servidor Apache-Tomcat.
La plataforma Pentaho utiliza Apache-Tomcat como servidor de
aplicaciones para desplegar los servicios que la componen. El servidor
lleva una configuración por defecto que podemos modificar (por ejemplo,
para variar el puerto donde nos conectamos, para el caso de que haya
conflicto con otras aplicaciones instaladas en el servidor), la
ubicación html, el lenguaje, etc. Para ello, modificaremos el fichero
web.xml
que se encuentra en la carpeta
C:\Pentaho\biserver-ce\tomcat\webapps\pentaho\WEB-INF. Veamos alguna de
la cosas que podemos cambiar.
solution-path
Con
este parámetro, le indicamos a la plataforma BI la ubicación de la
carpeta pentaho-solutions. Por defecto, tiene el valor c:\biserver-ce\.
En nuestro caso, vamos a cambiar el valor para que apunte a la carpeta donde hemos instalado:
<context-param><param-name>solution-path</param-name>
<param-value>C:\Pentaho\biserver-ce\pentaho-solutions</param-value>
</context-param>
base-url
Al instalar, la ruta URL por defecto para acceder a la plataforma será la siguiente: http://localhost:8080/pentaho
Podemos cambiarla si lo desamos modificando el parmetro base_url
dentro del mismo fichero. En nuestro caso, como vamos a cambiar el
puerto por defecto, modificamos su valor indicando lo siguiente:
<context-param>
<param-name>base-url</param-name>
<param-value>http://localhost:9999/pentaho/</param-value>
</context-param>
Esto nos obligará a cambiar tambien la configuración del fichero server.xml, que veremos mas adelante.
port
En la ruta C:\Pentaho\biserver-ce\tomcat\conf, tenemos el fichero
server.xml, donde podemos modificar el puerto por defecto de nuestro servidor BI (que es el 8080).
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector port="9999" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
Ahora pararemos el servidor tomcat y al arrancar la nueva URL de acceso será la siguiente: http://localhost:9999/pentaho
6) Otros elementos. Scripts arranque. Configuración de la publicación de contenidos y del correo SMTP.
Antes de continuar, vamos a ajustar el script de arranque de la
plataforma BI, omitiendo la parte de arranque de la base de datos
HSQLDB, que por defecto se arranca cuando lanzamos el script
start-pentaho.bat
(de la carpeta c:\pentaho\biserver-ce). Es tan sencillo como comentar
la linea donde se arranca la base de datos. El script quedaría como
sigue (la linea subrayada se ha comentado para que no se ejecute):
@echo off
setlocal
cscript promptuser.js //nologo //e:jscript
rem errorlevel 0 means user chose "no"
if %errorlevel%==0 goto quit
echo WScript.Quit(1); > promptuser.js
if exist "%~dp0jre" call "%~dp0set-pentaho-java.bat" "%~dp0jre"
if not exist "%~dp0jre" call "%~dp0set-pentaho-java.bat"
cd data
rem start start_hypersonic.bat
cd ..\tomcat\bin
set CATALINA_HOME=%~dp0tomcat
set CATALINA_OPTS=-Xms256m -Xmx768m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000
set JAVA_HOME=%_PENTAHO_JAVA_HOME%
call startup
:quit
endlocal
Ademas de toda la configuración realizada hasta ahora, nos quedan por
configurar dos aspectos importantes para el funcionamiento del sistema:
- Publicación de contenido: por defecto, la
publicación de contenido en el servidor BI esta desactivada, por lo que
para publicar los informes o análisis que vayamos realizando, lo
deberiamos de hacer dejando los ficheros en la correspondientes carpetas
del servidor. Pero es mas fácil hacerlo mediante lo que se llama
publicación (que veremos en detalle mas adelante). Para habilitar la
publicación, modificaremos el fichero publisher_config.xml,
que se encuentra en la carpeta
C:\Pentaho\biserver-ce\pentaho-solutions\system. Ahí indicaremos la
contraseña de publicación. Por defecto, no tiene ninguna contraseña, y
por tanto, no esta habilitada la publicación.
<publisher-config>
<publisher-password>passpublic</publisher-password>
</publisher-config>
- Servicio de correo SMTP: como ultimo paso,
configuraremos la posibilidad de envio de correo electrónico, a través
de un servidor externo (ya que la plataforma no dispone de un servidor
de correo electrónico propio). Para ello, configuraremos el fichero
email-config.xml en el directorio
C:\Pentaho\biserver-ce\pentaho-solutions\system\smtp-email, de la
siguiente manera:
<email-smtp>
<properties>
<mail.smtp.host>smtp.gmail.com</mail.smtp.host>
<mail.smtp.port>587</mail.smtp.port>
<mail.transport.protocol>smtps</mail.transport.protocol>
<mail.smtp.starttls.enable>true</mail.smtp.starttls.enable>
<mail.smtp.auth>true</mail.smtp.auth>
<mail.smtp.ssl>true</mail.smtp.ssl>
<mail.smtp.quitwait>false</mail.smtp.quitwait>
</properties>
<mail.pop3></mail.pop3>
<mail.from.default>respinosamilla@gmail.com</mail.from.default>
<mail.userid>respinosamilla@gmail.com</mail.userid>
<mail.password>password</mail.password>
</email-smtp>
En este caso, estoy utilizando gmail para enviar los correos desde la
plataforma. Los valores subrayados son los que yo he indicado. En el
caso de estar utilizando otro servidor de correo, tendreís que modificar
la configuración de servidor, puertos, tipo de conexión, ect, para que
funcione según la configuración de este. Con esta funcionalidad
habilitamos la distribución de contenido a través del correo electrónico
(por ejemplo, para el envío de la ejecución de informes o análisis).
En este momento, ya podemos arrancar la plataforma. Al iniciarla, y
conectarnos en el puerto http://localhost:9999, nos aparece la consola
de usuario, con una configuración por defecto. Tendría el siguiente
aspecto.
Consola de Usuario por defecto
Ya podemos conectarnos con alguno de los usuarios existentes y trastear con el proyecto de ejemplo
Steel Wheels
o la colección de muestras y ejemplos que incluye la plataforma. Con
ellos nos podemos hacer una idea de las posibilidades de análisis de las
que vamos a disponer.
Personalizando la plataforma de usuario.
Como queremos personalizar el portal, vamos a realizar algunos
cambios en la consola de usuario (también llamada Mantle). Para ello,
vamos a utilizar el blog de
Prashant Raju
donde nos explica muy bien los pasos a seguir para configurar nuestra
plataforma. Esta personalización va a consistir en lo siguiente:
No queremos que aparezcan los usuarios de ejemplo al conectarnos al sistema.
Con la configuración por defecto del sistema, cuando entramos al portal de usuario, nos aparece la siguiente ventana:
Aparecen los usuarios de ejemplo, y al seleccionarlos podemos entrar
directamente en la plataforma (sin necesidad de recordad su nombre de
usuario o contraseña), ya que el sistema nos lo recuerda. Esto no es
operativo para un sistema productivo, y por tanto, vamos a modificarlo.
Para ello, modificaremos el fichero
loginsettings.properties
(ubicando en la carpeta
C:\Pentaho\biserver-ce\tomcat\webapps\pentaho\mantleLogin). La
configuración por defecto del fichero es la siguiente:
# this file contains settings to configure the login dialog
# flag to turn on/off show users list (overrides pentaho.xml)
#showUsersList=true
# launch PUC in new window (default setting)
openInNewWindow=false
# sample users (be sure that each group has the same # of items as the rest)
userIds=joe, suzy, pat, tiffany
userDisplayNames=Joe (admin), Suzy, Pat, Tiffany
userPasswords=password, password, password, password
Vamos a modificar los valores de la siguiente manera:
# this file contains settings to configure the login dialog
# flag to turn on/off show users list (overrides pentaho.xml)
showUsersList=false
Reiniciamos el servidor y al entrar en el portal, el aspecto de login habrá variado, apareciendo la siguiente pantalla:
Este login es mas acorde con un sistema donde hay que mantener la seguridad.
Ventana de conexión personalizada para nuestra empresa.
Para modificar el aspecto de la ventana de login, hemos de modificar el fichero
PUC_login.jsp
que se encuentra en la carpeta
C:\Pentaho\biserver-ce\tomcat\webapps\pentaho\jsp. En este fichero hemos
modificado textos, alguna de las imagenes que aparecen, hasta conseguir
el siguiente aspecto:
Esto es solo un ejemplo sencillo de como podemos ajustar el diseño
de la página a las necesidades corporativas de una empresa (logos,
infografia, etc). Os dejo el link al fichero
PUC_login.jsp modificado.
Configuración de mensajes de login y de mensajes de error.
Para modificar los mensajes de usuario en el momento del login, habrá que modificar el fichero
MantleLoginMessages_es.PROPERTIES (para el caso del idioma castellano, o el fichero
MantleLoginMessages_en.PROPERTIES
en el caso de estar trabajando con el ingles). El fichero se encuentra
en dos ubicaciones distintas y habra que modificarlo en ambos casos para
que siempre salgan los mismos mensajes. Las ubicaciones son las
siguientes:
- C:\Pentaho\biserver-ce\tomcat\webapps\pentaho\mantleLogin\messages
- C:\Pentaho\biserver-ce\tomcat\webapps\pentaho\mantle\messages
Cambiaremos los textos de los mensajes, y al grabar el fichero
automaticamente seran utilizados por el servidor con los nuevos valores.
Personalización del panel de control y del area de trabajo.
Se pueden personalizar muchisimos aspectos de la consola de usuario
(area de trabajo), tal y como nos cuenta Prashant Raju en su
blog, desde los logotipos, barras de menu, barra de herramientas, colores, etc. En nuestro ejemplo, vamos a modificar el fichero
launch.jsp
(ubicado en
C:\Pentaho\biserver-ce\tomcat\webapps\pentaho\mantle\launch). En el
ejemplo, he modificado el fichero para que en la parte de la derecha
aparezca mi blog a los usuarios de la plataforma, en el momento de
conectarse. El resultado es el siguiente:
Workspace personalizado
Este es solo un ejemplo sencillo de lo que se puede personalizar, que
puede ser casi todo (hasta el código fuente si fuese necesario).
Con todos los elementos que hemos configurado, la plataforma de BI de
Pentaho esta preparada y lista para ser utilizada, y ademas
personalizada a nuestro gusto o necesidades. A continuación vamos a ir
viendo las diferentes herramientas que nos proporciona Pentaho para
construir nuestros análisis y la forma de configurar su ejecución dentro
de la plataforma BI de Pentaho. Además realizaremos la configuración
del metadata y la definición de los cubos Olap que luego nos permitiran
realizar los análisis dimensionales.