Buscar en el Blog

Mostrando las entradas con la etiqueta Pentaho. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Pentaho. Mostrar todas las entradas

jueves, 9 de marzo de 2017

Como configurar Pentaho Server para importar y exportar archivos .saiku/.pivot4j 

En ésta publicación explico el procedimiento para configurar Pentaho Server para que sea posible exportar e importar los archivos generados por Saiku Analytics que poseen la extensión .saiku. y archivos generados por el visor Pivot4J  que poseen la extensión .pivot4j.

Ir al directorio: \pentaho-server\pentaho-solutions\system

Archivo importExport.xml

Editar el archivo importExport.xml y ubicar el bean con id IRepositoryContentConverterHandler, agregar una entrada para saiku y para pivot4j como se muestra a continuación:
<bean id="IRepositoryContentConverterHandler"
 class="org.pentaho.platform.plugin.services.importer.DefaultRepositoryContentConverterHandler" scope="singleton">
 <constructor-arg>
  <util:map id="convertersMap">
   <entry key="mondrian.xml" value-ref="streamConverter"/>
   <entry key="jpeg" value-ref="streamConverter"/>
   <entry key="saiku" value-ref="streamConverter"/>
   <entry key="pivot4j" value-ref="streamConverter"/>
  </util:map>
 </constructor-arg>
</bean>
Ubicar el bean con id DefaultExportHandler e incluir el valor para la extensión .saiku  y para .pivot4j como se muestra a continuación:
<bean id="DefaultExportHandler"
 class="org.pentaho.platform.plugin.services.importexport.DefaultExportHandler">
 <property name="repository" ref="unifiedRepository" />
 <property name="localeExportList">
  <list>
   <value>.xanalyzer</value>
   <value>.prpti</value>
   <value>.prpt</value>
   <value>.xaction</value>
   <value>.xdash</value>
   <value>.url</value>
   <value>.xanalyzer</value>
   <value>.xjpivot</value>
   <value>.xcdf</value>
   <value>.saiku</value>
   <value>.pivot4j</value>
  </list>
 </property>
</bean>
Archivo ImportHandlerMimeTypeDefinitions.xml

Editar el archivo ImportHandlerMimeTypeDefinitions.xml y en la sección MimeTypeDefinition mimeType="text/xml" agregar la extension saiku y para pivot4j como se muestra a continuación:
<MimeTypeDefinition mimeType="text/xml">
 <extension>cda</extension>
 <extension>cdfde</extension>
 <extension>cfg.xml</extension>
 <extension>jrxml</extension>
 <extension>kcs</extension>
 <extension>kdb</extension>
 <extension>kjb</extension>
 <extension>kps</extension>
 <extension>ksl</extension>
 <extension>report</extension>
 <extension>rptdesign</extension>
 <extension>wcdf</extension>
 <extension>xcdf</extension>
 <extension>xjpivot</extension>
 <extension>xml</extension>
 <extension>xreportspec</extension>
 <extension>saiku</extension>
 <extension>pivot4j</extension>
</MimeTypeDefinition> 
Finalmente, reiniciar Pentaho Server.

jueves, 6 de octubre de 2016

Como instalar la licencia de Saiku Analytics v3.8.8 para Pentaho Community

A partir de la v3.8.8 de Saiku Analytics instalada desde el Marketplace de Pentaho User Console, está requiriendo una licencia y muestra un mensaje similar a:



Para solucionarlo es necesario hacer lo siguiente:

1. Ir a la siguiente URL: http://licensing.meteorite.bi/login 

2. Registrarse y crear una nueva licencia de tipo COMMUNITY_EDITION

3. Descargarse y renombrarla a license.lic

4. Copiar el archivo license.lic a /pentaho-solutions/system/saiku

5. Reinicar Pentaho BI Server

miércoles, 14 de octubre de 2015

Configuración de Conexión JNDI en Pentaho BI Server v5.x para MySQL

En ésta publicación explico el procedimiento para configurar una conexión JNDI (Java Naming and Directory Interface) en Pentaho BI Server v5.x hacia un servidor de base de datos MySQL.

1. Ir al directorio tomcat/conf y editar el archivo context.xml

2. Dentro de la etiqueta <Context> colocar lo siguiente:
<Context>
...
<Resource name="jdbc/dwh"
    auth="Container" type="javax.sql.DataSource"
    factory="org.apache.commons.dbcp.BasicDataSourceFactory"
    maxActive="20"
    maxIdle="5"
    maxWait="10000"
    username="usuario"
    password="password"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/dwh"/>
...
<Context>
NOTA: el nombre jdbc/dwh es muy importante y es sensible a mayúsculas y minúsculas. Es importante recordarlo para configurarlo en las herramientas de BI de Pentaho que se usen. El atributo driverClassName hace referencia al driver JDBC de MySQL y el atributo url a la cadena de conexión hacia el Data Warehouse.

3. Ir al directorio /tomcat/webapps/pentaho/WEB-INF y editar el archivo web.xml

4. Ubicar el comentario <!-- insert additional resource-refs --> y colocar la referencia al recurso JNDI creado en el paso 2.
  <!-- insert additional resource-refs -->
  <resource-ref>
    <description>DWH</description>
    <res-ref-name>jdbc/dwh</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
5. Iniciar Pentaho BI Server y acceder a PUC como Administrador

6. Ir a la perspectiva Home > Manage Data Sources > New Connection en JNDI Name colocar dwh

Configuración de Pentaho BI Server v5.4 para MySQL Server

En ésta publicación explico el procedimiento para configurar los repositorios de metadatos de Pentahohibernate, quartz jackrabbit en la base de datos MySQL

Por defecto,  biserver usa la base de datos HSQLDB, ésta base de datos no es recomendada para instalaciones en producción por lo que es conveniente instalarlo en un motor de base de datos más robusto, biserver viene con los scripts para MySQL, Oracle, PostgreSQL y SQL Server

Pre-requisitos.-
  • Tener instalado y configurado el JDK v1.7 o superior, en la siguiente publicación se explica el procedimiento
  • Tener instalado la base de datos  MySQL v5.5 o superior
  • Haber descargado la aplicación biserver-ce de Pentaho y haberla copiado y descomprimido en el directorio: \biserver-ce-5.4
  • Haber descargado el controlador JDBC para  MySQL
Configuración paso a paso.-

1. Ir al directorio \biserver-ce-5.4\data aquí se encuentran los scripts para MySQL, Oracle, PostgreSQL y SQL Server

2. Abrir el directorio mysql5 y ejecutar los scripts: create_repository_mysql.sqlcreate_quartz_mysql.sql y create_jcr_mysql.sql

Se puede ejecutar los scripts SQL desde la línea de comandos, de la siguiente forma:

mysql -u root -ppassword < /path/to/create_repository_mysql.sql
mysql -u root -ppassword < /path/to/create_quartz_mysql.sql
mysql -u root -ppassword < /path/to/create_jcr_mysql.sql

NOTA: password es la contraseña por defecto para los usuarios hibuser del repositorio hibernate,  pentaho_user del repositorio quartz, y jcr_user del repositorio jackrabbit


Configuración de Tomcat

3. Copiar el driver JDBC de MySQL (mysql-connector-java-5.X.X-bin.jar) al directorio \biserver-ce-5.4\tomcat\lib. NOTA: sí existe un driver JDBC para MySQL en el directorio, de preferencia reemplazarlo por uno más reciente.

4. Editar el archivo context.xml ubicado en el directorio: \biserver-ce-5.4\tomcat\webapps\pentaho\META-INF. Colocar la siguiente configuración para cambiar la conexión a MySQL

<?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>


5. Editar el archivo web.xml en el directorio \biserver-ce-5.4\tomcat\webapps\pentaho\WEB-INF. En la línea 76 colocar lo siguiente para que únicamente se inicie la base de datos de ejemplo de HSQLDB:

<!-- [BEGIN HSQLDB DATABASES] -->
  <context-param>
    <param-name>hsqldb-databases</param-name>
    <param-value>sampledata@../../data/hsqldb/sampledata</param-value>
  </context-param>
  <!-- [END HSQLDB DATABASES] -->

Configuración en BI Server

Todos los archivos de configuración del servidor central de BI de Pentaho Community Edition (biserver-ce) se encuentran en el directorio: \biserver-ce-5.4\pentaho-solutions\system

El resto de configuraciones se realizarán en éste directorio.

6. Ir al subdirectorio /hibernate y editar el archivo hibernate-settings.xml, cambiar la etiqueta <config-file> al valor: system/hibernate/mysql5.hibernate.cfg.xml como se muestra a continuación:

<?xml version='1.0' encoding='utf-8'?>
<settings>
 <config-file>system/hibernate/mysql5.hibernate.cfg.xml</config-file>
</settings>

NOTA: no olvidar de editar el archivo mysql5.hibernate.cfg.xml sí la base de datos está en otro servidor

7. Editar el archivo applicationContext-spring-security-hibernate.properties y cambiar la configuración de conexión a MySQL como se muestra a continuación:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/hibernate
jdbc.username=hibuser
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.MySQLDialect

8. Editar el archivo quartz.properties en el directorio \biserver-ce-X.X.X\pentaho-solutions\system\quartz ubicar la propiedad org.quartz.jobStore.driverDelegateClass (línea 300) y colocar el siguiente valor:
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate

9. Editar el archivo repository.xml de Jackrabbit en el directorio \biserver-ce-5.4\pentaho-solutions\system\jackrabbit. Realizar los siguientes pasos para que Jackrabbit apunte al repositorio de base de datos creado en MySQL:

  • Configuración del FileSystem: descomentar de la línea 44 a la 51. Comentar de la línea 79 a la 83
  • Configuración del DataStore: descomentar de la línea 97 a la 108. Comentar la línea 151
  • Configuración del Workspace: descomentar de la línea 219 a la 226. Comentar de la línea 255 a la 259. Descomentar de la línea 274 a la 281. Comentar de la línea 312 a la 317
  • Configuración del Versionamiento: descomentar de la línea 367 a la 374. Comentar de la línea 402 a la 406. Descomentar de la línea 422 a la 429. Comentar de la línea 459 a la 464

10. Reiniciar el servidor de BI de Pentaho

miércoles, 13 de mayo de 2015

Arquitectura de Flujo de Datos con Pentaho Community Edition




En el siguiente diagrama que he creado muestro una Arquitectura de Flujo de Datos para cargar un Data Warehouse (DWH) apoyada por las herramientas de la plataforma Pentaho CE

Las actividades de Data Warehousing se realizan usando las herramientas de Pentaho Data Integration (PDI), Spoon es la herramienta gráfica para construir los procesos ETL,  Kitchen/Pan son las herramienta que permiten calendarizar la ejecución de los procesos ETL.

Las construcción de soluciones para actividades de Inteligencia de Negocios son apoyadas por las siguientes herramientas:
  • Pentaho Metadata Editor (PME) permite crear una capa de metadatos sobre el DWH con términos del negocio; ésta capa es la fuente para crear reportes a demanda usando herramientas como WAQR (Web-based Ad Hoc Query and Reporting)
  • Pentaho Report Designer (PRD) permite crear reportes avanzados que contienen fórmulas, agrupaciones, hipervínculos, parámetros, gráficos
  • Pentaho Schema Workbench (PSW) permite crear cubos de análisis OLAP
  • Community Tools (CTools) conjunto de herramientas Open Source que permiten construir tableros de mando (Dashboards) con indicadores claves de rendimiento (KPIs)

El servidor central Pentaho Server posee un cliente web conocido como Pentaho User Console (PUC) a través del cual se accede al contenido publicado por las herramientas PMEPRDPSW y CTools. Además, requiere de 3 repositorios para su operación normal:  hibernatequartzjackrabbit.

Requerimientos de Software y Hardware


Nuevas Funcionalidades





lunes, 9 de marzo de 2015

Cuadrante Mágico de Gartner para plataformas de BI y Analíticas 2015

En ésta publicación muestro el cuadrante mágico de Gartner para plataformas de BI y analíticas a Febrero 2015.



Como se puede observar continúan siendo líderes las plataformas tradicionales:
  • Microsoft
  • SAS
  • SAP
  • IBM
  • Oracle
  • MicroStrategy
  • Information Builders
Las herramientas de BI: Qlik y Tableau permanecen en el cuadrante de líderes. Es importante recordar que éstas herramientas no ofrecen soluciones de Data Warehousing y permiten conectarse directamente a un Data Warehouse o cualquier otra fuente de datos y demandan de bastante memoria RAM en los servidores. Sin embargo, su costo de licenciamiento comparado con las plataformas tradicionales es bajo.

Sobre las herramientas Open Source: Pentaho continúa en el cuadrante de Jugadores de Nicho (Niche Players) y se anunció éste año la adquisición por parte de Hitachi Data Systems. Jaspersoft fue adquirido por Tibco Software que se encuentra en el cuadrante de Visionarios. 

Referencias.-

miércoles, 25 de febrero de 2015

Cómo cambiar BI Server al encoding UTF-8

En ésta publicación explico el procedimiento para colocar el encoding UTF-8 a Pentaho BI Server v5.x/6.x/7.x

1. Ir al directorio de BI Server \biserver-ce

2. Editar el archivo start-pentaho y colocar los siguientes argumentos de JVM -Dsun.jnu.encoding y -Dfile.encoding

En Windows
...
CATALINA_OPTS=-Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 -Xms...
...

En Mac OS X
...
CATALINA_OPTS="-Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 -Xms...
...

NOTA: ésta configuración tiene que ser realizada con biserver detenido.

martes, 17 de febrero de 2015

Configuración de Conexión JNDI en Pentaho Server para PostgreSQL

En ésta publicación explico el procedimiento para configurar una conexión JNDI (Java Naming and Directory Interface) en Pentaho Server v5.x a v8.x hacia un servidor de base de datos PostgreSQL.

1. Ir al directorio tomcat/conf y editar el archivo context.xml

2. Dentro de la etiqueta <Context> colocar lo siguiente:
<Resource name="jdbc/dwh_bus"
    auth="Container" type="javax.sql.DataSource"
    factory="org.apache.commons.dbcp.BasicDataSourceFactory"
    maxActive="20"
    maxIdle="5"
    maxWait="10000"
    username="postgres"
    password="postgres"
    driverClassName="org.postgresql.Driver"
    url="jdbc:postgresql://127.0.0.1:5432/dwh_bus"/>
NOTA: el nombre jdbc/dwh_bus es muy importante y es sensible a mayúsculas y minúsculas. Es importante recordarlo para configurarlo en las herramientas de BI de Pentaho que se usen. El atributo driverClassName hace referencia al driver JDBC de PostgreSQL y el atributo url a la cadena de conexión hacia el Data Warehouse.

3. Ir al directorio /tomcat/webapps/pentaho/WEB-INF y editar el archivo web.xml

4. Ubicar el comentario <!-- insert additional resource-refs --> y colocar la referencia al recurso JNDI creado en el paso 2.
  <!-- insert additional resource-refs -->
  <resource-ref>
    <description>Conexion al DWH_BUS</description>
    <res-ref-name>jdbc/dwh_bus</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
5. Iniciar Pentaho Server y acceder a PUC como Administrador

6. Ir a la perspectiva Home > Manage Data Sources > New Connection en JNDI Name colocar dwh_bus como se muestra a continuación:



martes, 23 de diciembre de 2014

Cómo ocultar el Login as an Evaluator en Pentaho Server v5.x a v7.x

En ésta publicación explico el procedimiento para ocultar la opción de ingresar como evaluador (Login as an Evaluator) en Pentaho User Console (PUC) de Pentaho Server v5.x a v7.x

1. Ir al directorio:
pentaho-solutions/system/
2. Editar el archivo pentaho.xml y ubicar la etiqueta login-show-sample-users-hint. Cambiar el valor a false
<login-show-sample-users-hint>false</login-show-sample-users-hint>
3. Reiniciar BI Server

viernes, 14 de noviembre de 2014

Cómo activar el log de Mondrian en Pentaho BI Server para visualizar consultas MDX y SQL

En la siguiente publicación explico el procedimiento para habilitar el log de Mondrian en Pentaho BI Server poder visualizar los logs de las consultas MDX y SQL que se realizan. Esto es muy útil cuando queremos optimizar las consultas SQL.

1. Ir al directorio de configuración de Mondrian
cd biserver-ce/pentaho-solutions/system/mondrian

2. Abir el archivo mondrian.properties para editarlo

3. Ubicar las propiedades mondrian.trace.level y mondrian.rolap.generate.formatted.sql  y asignar los siguientes valores
mondrian.trace.level=1
mondrian.rolap.generate.formatted.sql=true

4. Ir al directorio de aplicaciones web de Tomcat y editar el archivo log4.xml
cd biserver-ce/tomcat/webapps/pentaho/WEB-INF/classes

5. Descomentar los appenders MDXLOG y SQLLOG como se muestra a continuación:
 <appender name="MDXLOG" class="org.apache.log4j.RollingFileAppender">
     <param name="File" value="../logs/mondrian_mdx.log"/>
     <param name="Append" value="false"/>
     <param name="MaxFileSize" value="500KB"/>
     <param name="MaxBackupIndex" value="1"/>
     <layout class="org.apache.log4j.PatternLayout">
       <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
     </layout>
   </appender>

   <category name="mondrian.mdx">
      <priority value="DEBUG"/>
      <appender-ref ref="MDXLOG"/>
   </category>

   <appender name="SQLLOG" class="org.apache.log4j.RollingFileAppender">
     <param name="File" value="../logs/mondrian_sql.log"/>
     <param name="Append" value="false"/>
     <param name="MaxFileSize" value="500KB"/>
     <param name="MaxBackupIndex" value="1"/>
     <layout class="org.apache.log4j.PatternLayout">
       <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
     </layout>
   </appender>

   <category name="mondrian.sql">
      <priority value="DEBUG"/>
      <appender-ref ref="SQLLOG"/>
   </category>
6. Finalmente, reiniciar Pentaho BI Server

viernes, 17 de octubre de 2014

Configuración de Pentaho BI Server 5.x para PostgreSQL

En ésta publicación explico el procedimiento para configurar los repositorios de metadatos de Pentahohibernate, quartz jackrabbit en la base de datos PostgreSQL v9.3

Por defecto, el biserver de Pentaho usa la base de datos HSQLDB, ésta base de datos no es recomendada para instalaciones en producción por lo que es conveniente instalarlo en un motor de base de datos más robusto. El biserver viene con los scripts para MS SQL Server, MySQL, Oracle y PostgreSQL.

Pre-requisitos.-
  • Tener instalado y configurado el JDK v1.7, en la siguiente publicación se explica el procedimiento
  • Tener instalado la base de datos  PostgreSQL v9.3
  • Haber descargado la aplicación biserver-ce de Pentaho y haberla copiado y descomprimido en el directorio: \biserver-ce-5.x
  • Haber descargado el controlador JDBC para  PostgreSQL
Configuración paso a paso.-

1. Ir al directorio \biserver-ce-5.x\data aquí se encuentran los scripts para MS SQL Server, MySQL, Oracle y PostgreSQL

2. Abrir el directorio postgresql y ejecutar los scripts: create_repository_postgresql.sqlcreate_quartz_postgresql.sql y create_jcr_postgresql.sql

NOTA: password es la contraseña por defecto para los usuarios hibuser del repositorio hibernate,  pentaho_user del repositorio quartz, y jcr_user del repositorio jackrabbit

Configuración de Tomcat

3. Copiar el driver JDBC Tipo 4 de PostgreSQL (postgresql-9.3-x.jdbc4.jar) al directorio \biserver-ce-5.x\tomcat\lib.

4. Editar el archivo context.xml ubicado en el directorio: \biserver-ce-5.x\tomcat\webapps\pentaho\META-INF. Colocar la siguiente configuración para cambiar la conexión a PostgreSQL
<?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="org.postgresql.Driver" url="jdbc:postgresql://127.0.0.1:5432/hibernate"
  validationQuery="select version();" />
  
 <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="org.postgresql.Driver" url="jdbc:postgresql://127.0.0.1:5432/quartz"
  validationQuery="select version();"/>
</Context>

5. Eliminar el archivo pentaho.xml del directorio: \biserver-ce-5.x\tomcat\conf\Catalina\localhost

6. Editar el archivo web.xml en el directorio \biserver-ce-5.x\tomcat\webapps\pentaho\WEB-INF. En la línea 76 colocar lo siguiente para que únicamente se inicie la base de datos de ejemplo de HSQLDB:
<!-- [BEGIN HSQLDB DATABASES] -->
  <context-param>
    <param-name>hsqldb-databases</param-name>
    <param-value>sampledata@../../data/hsqldb/sampledata</param-value>
  </context-param>
  <!-- [END HSQLDB DATABASES] -->

Configuración en BI Server

Todos los archivos de configuración del servidor central de BI de Pentaho Community Edition (biserver-ce) se encuentran en el directorio: \biserver-ce-5.x\pentaho-solutions\system

El resto de configuraciones se realizarán en éste directorio.

7. Ir al subdirectorio /hibernate y editar el archivo hibernate-settings.xml, cambiar la etiqueta <config-file> al valor: system/hibernate/system/hibernate/postgresql.hibernate.cfg.xml como se muestra a continuación:
...
<config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file>
...

NOTA: no olvidar de editar el archivo postgresql.hibernate.cfg.xml sí la base de datos está en otro servidor

8. Editar el archivo applicationContext-spring-security-hibernate.properties y cambiar la configuración de conexión a PostgreSQL como se muestra a continuación:
jdbc.driver=org.postgresql.Driver
jdbc.url=jdbc:postgresql://127.0.0.1:5432/hibernate
jdbc.username=hibuser
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

9. En la base de datos quartz crear la siguiente tabla:
CREATE TABLE "QRTZ"
(
NAME VARCHAR(200) NOT NULL,
PRIMARY KEY (NAME)
);

ALTER TABLE "QRTZ" OWNER TO pentaho_user;

10. Editar el archivo repository.xml de Jackrabbit en el directorio \biserver-ce-5.x\pentaho-solutions\system\jackrabbit. Realizar los siguientes pasos para apuntar Jackrabbit al repositorio de base de datos creado en PostgreSQL:

  • Configuración del FileSystem: descomentar de la línea 61 a la 68. Comentar de la línea 71 a la 73
  • Configuración del DataStore: descomentar de la línea 114 a la 125. Comentar la línea 129
  • Configuración del Workspace: descomentar de la línea 214 a la 221. Comentar de la línea 225 a la 227. Descomentar de la línea 262 a la 269. Comentar de la línea 273 a la 276
  • Configuración del Versionamiento: descomentar de la línea 344 a la 351. Comentar de la línea 354 a la 356. Descomentar de la línea 392 a la 399. Comentar de la línea 402 a la 405

11. Reiniciar el servidor de BI de Pentaho

Consideraciones Importantes

En sistemas operativos Windows, sí se ejecutó biserver antes de realizar ésta configuración usando la base de datos por defecto HSQLDB, es conveniente eliminar el contenido de los siguientes directorios para evitar comportamientos inesperados:

  • \biserver-ce-5.x\tomcat\work\Catalina\*
  • \biserver-ce-5.x\tomcat\temp\*
  • \biserver-ce-5.x\pentaho-solutions\system\osgi\cache\*
  • \biserver-ce-5.x\pentaho-solutions\system\jackrabbit\repository

NOTA: de preferencia igual limpiar el cache del navegador web con el que se esté trabajando.


jueves, 16 de octubre de 2014

Cómo resolver vulnerabilidad POODLE en Pentaho BI Server

En ésta publicación explico el procedimiento para resolver la vulnerabilidad SSLv3 POODLE en un servidor Pentaho BI Server v4.8.0 que tiene configurado certificados de seguridad SSL y conexión HTTPS. La solución consiste en deshabilitar el soporte del protocolo SSLv3 en Tomcat.

1) Ir al directorio de configuración de Tomcat

cd biserver-ce-4.8.0/biserver-ce/tomcat/conf

2) Editar el archivo server.xml

3) En la configuración del conector HTTPS colocar lo siguiente:

sslProtocols="TLSv1, TLSv1.1, TLSv1.2"

La configuración debería quedar similar a la siguiente:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           sslProtocols="TLSv1, TLSv1.1, TLSv1.2"/>

4) Reiniciar Pentaho BI Server

NOTA: se puede usar el siguiente link https://www.tinfoilsecurity.com/poodle para verificar que se haya deshabilitado SSLv3 o usar el comando openssl s_client -connect nombreDominioOIP:443 -ssl3 el cual no devolverá el certificado por que se ha deshabilitado correctamente SSLv3

viernes, 29 de agosto de 2014

Configuración de Pentaho BI Server 5.1 para Oracle

En ésta publicación explico el procedimiento para configurar los repositorios de metadatos de Pentaho: hibernate, quartz y jackrabbit en la base de datos Oracle

Por defecto, el biserver de Pentaho usa la base de datos HSQLDB, ésta base de datos no es recomendada para instalaciones en producción por lo que es conveniente instalarlo en un motor de base de datos más robusto. El biserver viene con los scripts para MySQL, Oracle y PostgreSQL.

Pre-requisitos.-
  • Tener instalado y configurado el JDK v1.7 en la siguiente publicación se explica el procedimiento. JDK v1.8 no está totalmente probado, por lo que sugiero no usarlo con biserver
  • Tener instalado la base de datos  Oracle v10g o superior. Para esta publicación he usado Oracle Express Edition 11g
  • Haber descargado la aplicación biserver-ce de Pentaho y haberla copiado y descomprimido en el directorio: \biserver-ce-5.1
  • Haber descargado el controlador JDBC para  Oracle
Configuración paso a paso.-

1. Ir al directorio \biserver-ce-5.1\data aquí se encuentran los scripts para MySQL, Oracle y PostgreSQL

2. Abrir el directorio oracle10g y ejecutar los scripts: create_repository_ora.sqlcreate_quartz_ora.sqlcreate_jcr_ora.sql

NOTAS: password es la contraseña por defecto para los usuarios hibuser del repositorio hibernate,  quartz del repositorio quartz, y jcr_user del repositorio jackrabbit. Sugiero usar sqlplus para ejecutar los scripts.

Configuración de Tomcat

3. Copiar el driver JDBC de Oracle (ojdbc6.jar) al directorio \biserver-ce-5.1\tomcat\lib.

4. Editar el archivo context.xml ubicado en el directorio: \biserver-ce-5.1\tomcat\webapps\pentaho\META-INF. Colocar la siguiente configuración para cambiar la conexión a Oracle

<?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="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521/XE"
  validationQuery="select 1 from dual" />
  
 <Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
  factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
  maxWait="10000" username="quartz" password="password"
  driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521/XE"
  validationQuery="select 1 from dual"/>
</Context>

5. Eliminar el archivo pentaho.xml del directorio: \biserver-ce-5.1\tomcat\conf\Catalina\localhost

6. Editar el archivo web.xml en el directorio \biserver-ce-5.1\tomcat\webapps\pentaho\WEB-INF. En la línea 73 colocar lo siguiente para que únicamente se inicie la base de datos de ejemplo de HSQLDB:

<!-- [BEGIN HSQLDB DATABASES] -->
  <context-param>
    <param-name>hsqldb-databases</param-name>
    <param-value>sampledata@../../data/hsqldb/sampledata</param-value>
  </context-param>
  <!-- [END HSQLDB DATABASES] -->

Configuración en BI Server

Todos los archivos de configuración del servidor central de BI de Pentaho Community Edition (biserver-ce) se encuentran en el directorio: \biserver-ce-X.X.X\pentaho-solutions\system

El resto de configuraciones se realizarán en éste directorio.

7. Ir al subdirectorio /hibernate y editar el archivo hibernate-settings.xml, cambiar la etiqueta <config-file> al valor: system/hibernate/oracle10g.hibernate.cfg.xml como se muestra a continuación:

<?xml version='1.0' encoding='utf-8'?>
<settings>  
    <!--config-file>system/hibernate/hsql.hibernate.cfg.xml</config-file-->
 <config-file>system/hibernate/oracle10g.hibernate.cfg.xml</config-file>
</settings>

NOTA: no olvidar de editar el archivo oracle10g.hibernate.cfg.xml sí la base de datos está en otro servidor

8. Editar el archivo applicationContext-spring-security-hibernate.properties y cambiar la configuración de conexión a Oracle como se muestra a continuación:

jdbc.driver=oracle.jdbc.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521/XE
jdbc.username=hibuser
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.Oracle10gDialect

9. Editar el archivo quartz.properties en el directorio \biserver-ce-X.X.X\pentaho-solutions\system\quartz ubicar la propiedad org.quartz.jobStore.driverDelegateClass (línea 300) y colocar el siguiente valor:

org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate

10. Editar el archivo repository.xml de Jackrabbit en el directorio \biserver-ce-X.X.X\pentaho-solutions\system\jackrabbit. Realizar los siguientes pasos para apuntar Jackrabbit al repositorio de base de datos creado en Oracle:

  • Configuración del FileSystem: descomentar de la línea 53 a la 59. Comentar de la línea 71 a la 73
  • Configuración del DataStore: descomentar de la línea 101 a la 112. Comentar la línea 129
  • Configuración del Workspace: descomentar de la línea 206 a la 212. Comentar de la línea 225 a la 227. Descomentar de la línea 252 a la 260. Comentar de la línea 273 a la 276
  • Configuración del Versionamiento: descomentar de la línea 336 a la 342. Comentar de la línea 354 a la 356. Descomentar de la línea 382 a la 390. Comentar de la línea 402 a la 405

NOTA: no olvidar colocar el valor de PENTAHO_TABLESPACE en el parámetro tablespace para todas las conexiones.

...
<param name="tablespace" value="PENTAHO_TABLESPACE"/>
...

11. Reiniciar el servidor de BI de Pentaho

jueves, 3 de julio de 2014

Configuración de Pentaho BI Server 5.0.1 para MySQL

En ésta publicación explico el procedimiento para configurar los repositorios de metadatos de Pentaho: hibernate, quartz y jackrabbit en la base de datos MySQL

Por defecto, el biserver de Pentaho usa la base de datos HSQLDB, ésta base de datos no es recomendada para instalaciones en producción por lo que es conveniente instalarlo en un motor de base de datos más robusto. El biserver viene con los scripts para MySQL, Oracle y PostgreSQL.

Pre-requisitos.-
  • Tener instalado y configurado el JDK v1.7 o superior, en la siguiente publicación se explica el procedimiento
  • Tener instalado la base de datos  MySQL v5.5 o superior
  • Haber descargado la aplicación biserver-ce de Pentaho y haberla copiado y descomprimido en el directorio: \biserver-ce-5.0.1
  • Haber descargado el controlador JDBC para  MySQL
Configuración paso a paso.-

1. Ir al directorio \biserver-ce-5.0.1\data aquí se encuentran los scripts para MySQL, Oracle y PostgreSQL

2. Abrir el directorio mysql5 y ejecutar los scripts: create_repository_mysql.sqlcreate_quartz_mysql.sqlcreate_jcr_mysql.sql

NOTA: password es la contraseña por defecto para los usuarios hibuser del repositorio hibernate,  pentaho_user del repositorio quartz, y jcr_user del repositorio jackrabbit

Configuración de Tomcat

3. Copiar el driver JDBC de MySQL (mysql-connector-java-5.X.X-bin.jar) al directorio \biserver-ce-5.0.1\tomcat\lib.

4. Editar el archivo context.xml ubicado en el directorio: \biserver-ce-5.0.1\tomcat\webapps\pentaho\META-INF. Colocar la siguiente configuración para cambiar la conexión a MySQL

<?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>

5. Eliminar el archivo pentaho.xml del directorio: \biserver-ce-5.0.1\tomcat\conf\Catalina\localhost

6. Editar el archivo web.xml en el directorio \biserver-ce-5.0.1\tomcat\webapps\pentaho\WEB-INF. En la línea 73 colocar lo siguiente para que únicamente se inicie la base de datos de ejemplo de HSQLDB:

<!-- [BEGIN HSQLDB DATABASES] -->
  <context-param>
    <param-name>hsqldb-databases</param-name>
    <param-value>sampledata@../../data/hsqldb/sampledata</param-value>
  </context-param>
  <!-- [END HSQLDB DATABASES] -->

Configuración en BI Server

Todos los archivos de configuración del servidor central de BI de Pentaho Community Edition (biserver-ce) se encuentran en el directorio: \biserver-ce-X.X.X\pentaho-solutions\system

El resto de configuraciones se realizarán en éste directorio.

7. Ir al subdirectorio /hibernate y editar el archivo hibernate-settings.xml, cambiar la etiqueta <config-file> al valor: system/hibernate/mysql5.hibernate.cfg.xml como se muestra a continuación:

<?xml version='1.0' encoding='utf-8'?>
<settings>  
    <!--config-file>system/hibernate/hsql.hibernate.cfg.xml</config-file-->
 <config-file>system/hibernate/mysql5.hibernate.cfg.xml</config-file>
</settings>

NOTA: no olvidar de editar el archivo mysql5.hibernate.cfg.xml sí la base de datos está en otro servidor

8. Editar el archivo applicationContext-spring-security-hibernate.properties y cambiar la configuración de conexión a MySQL como se muestra a continuación:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/hibernate
jdbc.username=hibuser
jdbc.password=password
hibernate.dialect=org.hibernate.dialect.MySQLDialect

9. Editar el archivo quartz.properties en el directorio \biserver-ce-X.X.X\pentaho-solutions\system\quartz ubicar la propiedad org.quartz.jobStore.driverDelegateClass (línea 300) y colocar el siguiente valor:
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate

10. Editar el archivo repository.xml de Jackrabbit en el directorio \biserver-ce-X.X.X\pentaho-solutions\system\jackrabbit. Realizar los siguientes pasos para apuntar Jackrabbit al repositorio de base de datos creado en MySQL:

  • Configuración del FileSystem: descomentar de la línea 44 a la 51. Comentar de la línea 72 a la 74
  • Configuración del DataStore: descomentar de la línea 89 a la 100. Comentar la línea 130
  • Configuración del Workspace: descomentar de la línea 198 a la 205. Comentar de la línea 226 a la 228. Descomentar de la línea 244 a la 250. Comentar de la línea 273 a la 276
  • Configuración del Versionamiento: descomentar de la línea 327 a la 334. Comentar de la línea 354 a la 356. Descomentar de la línea 373 a la 379. Comentar de la línea 401 a la 404

11. Reiniciar el servidor de BI de Pentaho

domingo, 9 de marzo de 2014

Cómo corregir la visualización en PDF de reportes publicados desde PRD en BI Server

En ésta publicación explico el procedimiento para corregir la visualización de reportes en PDF desde Pentaho User Console (PUC) de caracteres especiales como ñ,á,é,í, etc. cuando se trata de visualizar un reporte publicado desde Pentaho Report Designer (PRD) en formato PDF.

1. En PRD ir a File > Configuration > output-pageable-pdf

2. Seleccionar la opción ~.Encoding y colocar el valor ISO-8859-1

3. Guardar el reporte y publicar a Pentaho Server

Cómo instalar Saiku Reporting en Pentaho BI Server

En ésta publicación explico el procedimiento para instalar Saiku Reporting en Pentaho BI Server.

1. Asegurarse que Pentaho BI Server esté detenido

2. Descargar Community Data Access (CDA) del siguiente link: http://www.webdetails.pt/ctools/cda.html

3. Ejecutar el instalador cda-installer-latest.jar, hacer clic en Next hasta llegar al paso en que el instalador solicita Solution Folder, colocar la ruta de pentaho-solutions de Pentaho BI Server. Por ejemplo: c:/pentaho/biserver-ce-X.X.X/biserver-ce/pentaho-solutions/

4. Descargar Saiku Reporting del siguiente link: http://mgiepz.github.io/saiku-reporting/

5. Descomprimir el archivo saiku-adhoc-plugin-1.0-GA.zip y copiar el directorio saiku-adhoc a c:/pentaho/biserver-ce-X.X.X/biserver-ce/pentaho-solutions/system

6. Iniciar Pentaho BI Server y en la barra de herramientas de PUC debe aparecer el siguiente ícono: 

Cuadrante Mágico de Gartner para plataformas de BI y Analíticas 2014

En ésta publicación muestro el posicionamiento de las plataformas de inteligencia de negocios (BI) y analíticas a Febrero 2014.


Cómo se puede observar las herramientas de BI: QlikView y Tableau han recorrido bastante terreno y se encuentran en el cuadrante de líderes, considero que se debe a que sus costos de licenciamiento son muy inferiores a los de las plataformas grandes como SAP, IBM, Oracle, etc. Además, son fáciles de usar y están muy enfocadas en que la experiencia de usuario sea fácil y productiva.

Se puede observar que como líderes igual continúan las plataformas tradicionales de Microsoft, Oracle, IBM, SAP, MicroStrategy, Tibco y SAS. 

Como soluciones Open Source: Pentaho ha ganado de igual forma bastante terreno y está en un punto en que puede pasar al cuadrante del líderes o visionarios, junto con Jaspersoft. 

miércoles, 26 de febrero de 2014

Cómo configurar un pool de conexiones C3P0 en Pentaho BI Server CE para MySQL

En ésta publicación explico el procedimiento para configurar un pool de conexiones hacia MySQL en el servidor de Pentaho (BI SERVER).

1. Descargar c3p0 del siguiente link: http://sourceforge.net/projects/c3p0/files/c3p0-bin/

2. Copiar los archivos c3p0-x.x.x.x.jar y mchange-commons-java-X.X.X.X.jar al directorio /biserver-ce/tomcat/lib

3. Ir al directorio /biserver-ce/pentaho-solutions/system/hibernate

4. Editar el archivo mysql5.hibernate.cfg.xml y colocar las siguientes propiedades después de la etiqueta <session-factory>


<property name="hibernate.c3p0.acquire_increment">3</property>
<property name="hibernate.c3p0.idle_test_period">14400</property>
<property name="hibernate.c3p0.max_size">75</property>
<property name="hibernate.c3p0.max_statements">0</property>
<property name="hibernate.c3p0.timeout">25200</property>
<property name="hibernate.c3p0.preferredTestQuery">select 1</property> 
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
   
5. Guardar el archivo y volver a iniciar Pentaho BI Server

Cómo eliminar un cubo OLAP publicado en Pentaho BI Server

En ésta publicación explico el procedimiento para eliminar un cubo publicado con PSW en Pentaho BI Server.

1. Ir al directorio /biserver-ce-X.X.X/biserver-ce/pentaho-solutions/system/olap

2. Editar el archivo datasources.xml y eliminar la etiqueta <Catalog> del cubo que deseamos eliminar

3. En la consola de usuario de Pentaho (PUC), ir a Herramientas > Actualizar > Vaciar el cache de esquemas de Mondrian

jueves, 7 de febrero de 2013

Cómo resolver problemas de rendimiento de Pentaho Schema Workbench sobre Oracle

Al intentar ejecutar Pentaho Schema Workbench (PSW) y crear una conexión a una base de datos Oracle, sucede que aparentemente el aplicativo se queda congelado. Lo que sucede es que se está trayendo todo el diccionario de los esquemas a los que tiene acceso la conexión.

Para solucionar esto sobre el esquema que queremos conectarnos es útil correr el siguiente script SQL:
CREATE OR REPLACE VIEW ALL_TABLES AS SELECT USER AS OWNER, A.* FROM SYS.USER_TABLES A;
CREATE OR REPLACE VIEW ALL_VIEWS AS SELECT USER AS OWNER, A.* FROM SYS.USER_VIEWS A
WHERE VIEW_NAME NOT IN ('ALL_CONSTRAINTS','ALL_CONS_COLUMNS','ALL_INDEXES','ALL_IND_COLUMNS',
'ALL_OBJECTS','ALL_SYNONYMS','ALL_TABLES','ALL_USERS','ALL_VIEWS','DBA_CONSTRAINTS','DBA_CONS_COLUMNS',
'DBA_INDEXES','DBA_IND_COLUMNS','DBA_OBJECTS','DBA_SYNONYMS','DBA_TABLES','DBA_USERS','DBA_VIEWS');
CREATE OR REPLACE VIEW ALL_CONSTRAINTS AS SELECT A.* FROM SYS.USER_CONSTRAINTS A WHERE CONSTRAINT_TYPE IN ('R','P','U');
CREATE OR REPLACE VIEW ALL_CONS_COLUMNS AS SELECT A.* FROM SYS.USER_CONS_COLUMNS A;
CREATE OR REPLACE VIEW ALL_INDEXES AS SELECT USER AS OWNER, A.* FROM SYS.USER_INDEXES A;
CREATE OR REPLACE VIEW ALL_IND_COLUMNS AS SELECT USER AS INDEX_OWNER, USER AS TABLE_OWNER, A.* FROM SYS.USER_IND_COLUMNS A;
CREATE OR REPLACE VIEW ALL_SYNONYMS AS SELECT USER AS OWNER, A.* FROM USER_SYNONYMS A;
CREATE OR REPLACE VIEW ALL_OBJECTS AS SELECT USER AS OWNER, A.* FROM USER_OBJECTS A;
CREATE OR REPLACE VIEW ALL_USERS AS SELECT * FROM SYS.ALL_USERS A WHERE USERNAME=USER;
CREATE OR REPLACE VIEW DBA_TABLES AS SELECT USER AS OWNER, A.* FROM SYS.USER_TABLES A;
CREATE OR REPLACE VIEW DBA_VIEWS AS SELECT USER AS OWNER, A.* FROM SYS.USER_VIEWS A
WHERE VIEW_NAME NOT IN ('ALL_CONSTRAINTS','ALL_CONS_COLUMNS','ALL_INDEXES','ALL_IND_COLUMNS',
'ALL_OBJECTS','ALL_SYNONYMS','ALL_TABLES','ALL_USERS','ALL_VIEWS','DBA_CONSTRAINTS','DBA_CONS_COLUMNS',
'DBA_INDEXES','DBA_IND_COLUMNS','DBA_OBJECTS','DBA_SYNONYMS','DBA_TABLES','DBA_USERS','DBA_VIEWS');
CREATE OR REPLACE VIEW DBA_CONSTRAINTS AS SELECT A.* FROM SYS.USER_CONSTRAINTS A WHERE CONSTRAINT_TYPE IN ('R','P','U');
CREATE OR REPLACE VIEW DBA_CONS_COLUMNS AS SELECT A.* FROM SYS.USER_CONS_COLUMNS A;
CREATE OR REPLACE VIEW DBA_INDEXES AS SELECT USER AS OWNER, A.* FROM SYS.USER_INDEXES A;
CREATE OR REPLACE VIEW DBA_IND_COLUMNS AS SELECT USER AS INDEX_OWNER, USER AS TABLE_OWNER, A.* FROM SYS.USER_IND_COLUMNS A;
CREATE OR REPLACE VIEW DBA_SYNONYMS AS SELECT USER AS OWNER, A.* FROM USER_SYNONYMS A;
CREATE OR REPLACE VIEW DBA_OBJECTS AS SELECT USER AS OWNER, A.* FROM USER_OBJECTS A;
CREATE OR REPLACE VIEW DBA_USERS AS SELECT * FROM SYS.ALL_USERS A WHERE USERNAME=USER;
CREATE OR REPLACE VIEW ALL_TAB_COLUMNS AS SELECT USER AS OWNER, A.* FROM SYS.USER_TAB_COLUMNS A;