Buscar en el Blog

sábado, 2 de abril de 2016

Licenciamiento

Estimados lectores:

Mi principal motivación y propósito de éste blog ha sido el de contribuir a la comunidad con guías y resolución a problemas en idioma español para las tecnologías de manejo de Datos Open Source sean éstas para (Data Warehousing, Business Intelligence, Data Engineering, Data Science, etc.)

Se me notificó hace días atrás que personas poco éticas han tomado el contenido del blog textualmente, sin ninguna atribución y lo han generado en formato .doc para comercializarlo como tutorías en un portal web. Al no tener los conocimientos suficientes en las tecnologías mencionadas y el haber tomado tal cual el contenido sin atribución y ninguna secuencia, han generado un perjuicio económico a ciertas personas afectas, a quiénes agradezco por haberme notificado sobre éste particular.

Esto me ha motivado a licenciar todo el contenido del blog bajo la licencia Creative Commons, que en resumen:

ESTÁ PERMITIDO

  • COMPARTIR: copiar y distribuir el material en cualquier medio o formato
  • ADAPTAR: cambiar, mezclar y crear nuevo material sobre el contenido

BAJO LOS SIGUIENTES TÉRMINOS

  • ATRIBUCIÓN: se debe dar obligatoriamente el crédito apropiado al autor, proveer un link a la licencia e indicar sí se realizaron cambios.
  • NO COMERCIAL: no se puede usar el material con fines comerciales

jueves, 5 de noviembre de 2015

Como acceder directamente a reportes creados con PRD usando el API de REST de Pentaho Server

En ésta publicación explico el procedimiento para invocar a Pentaho Report Viewer a través del API de REST. Esto es muy útil cuando se desea acceder directamente a reportes creados con Pentaho Report Designer (PRD) y publicados en Pentaho Server sin necesidad de navegar por la perspectiva Browse Files.

Suponiendo que se tiene la siguiente organización de la solución y se desea visualizar el ReportePentaho.prpt:

├── home
│   └── cursobi
│       └── reportes
│           └── ReportePentaho.prpt


El API de REST para invocar a ReportViewer provee el siguiente URL:
http://localhost:8080/pentaho/api/repos/<path>/viewer

En dónde <path> hace referencia a la ubicación del reporte usando :
:home:cursobi:reportes:ReportePentaho.prpt

URL simple para visualizar un reporte
http://localhost:8080/pentaho/api/repos/:home:cursobi:reportes:ReportePentaho.prpt/viewer

URL para visualizar un reporte enviando los valores de los parámetros

http://localhost:8080/pentaho/api/repos/:home:cursobi:reportes:ReportePentaho.prpt/viewer?param1=A&param2=X&param2=Y&param2=N

NOTA: para parámetros de selección múltiple se envía N veces el parámetro con los valores. Ej. param2=X&param2=Y&param2=N

URL para visualizar un reporte en formato PDF y ocultar la selección de parámetros
http://localhost:8080/pentaho/api/repos/:home:cursobi:reportes:ReportePentaho.prpt/viewer?param1=A&param2=X&param2=Y&paramN=N&output-target=pageable/pdf&showParameters=false

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 Pentaho: hibernate, quartz y 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.sql, create_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

viernes, 7 de agosto de 2015

Cómo ocultar el mensaje de la versión Community para el visor Saiku

En ésta publicación explico el procedimiento para ocultar el mensaje de la versión Community del visor de cubos OLAP



1. Ir al directorio /biserver-ce/pentaho-solutions/system/saiku/ui

2. Editar el archivo saiku.min.js con un editor de texto

Para Saiku v3.3

En el archivo, buscar el valor
$(a.workspace.el).find(".upgrade")
y reemplazarlo por
$(a.workspace.el).find(".upgradex")
NOTA: aproximadamente se tienen que reemplazar 4 ocurrencias


Para Saiku v3.8.8

En el archivo, buscar el valor
You are using Saiku Community Edition
Se encontrarán 2 ocurrencias con los valores:
class\x3d'upgradeheader'\x3eYou are using Saiku Community...
Reemplazar  class\x3d'upgradeheader'\x3e por:
style\x3d'display:none;'\x3e
Después de reemplazar quedará:
style\x3d'display:none;'\x3eYou are using Saiku Community