El Rincon del BI

Descubriendo el Business Intelligence…

17.5. Cubos Olap y navegación dimensional con Mondrian y Jpivot.

Posted by Roberto Espinosa en 20 julio 2010


Pentaho Analysis Services es la parte de la plataforma BI de Pentaho que nos proporciona las funcionalidades Olap para el análisis de la información. Nos permite, de una forma interactiva, analizar los datos del Data Warehouse a traves de una interfaz de tabla cruzada donde podemos navegar por las diferentes dimensiones definidas en el modelo dimensional.

En una entrada anterior del blog, vimos la forma de definir nuestro modelo dimensional utilizando Pentaho Schema Workbench, aunque disponemos de otra herramienta adicional para la construcción de tablas agregadas, llamada Pentaho Agregation Designer (que permite mejorar la velocidad de ejecución de los análisis).

Una vez definidos los módelos dimensionales, podemos ejecutar nuestros análisis utilizando Jpivot a nivel de interfaz de usuario y Mondrian a nivel del servidor (es la parte que recibe las solicitudes de información de Jpivot, realiza las consultas contra la base de datos y devuelve la información en formato multidimensional).

Vamos a ver un poco como funciona la plataforma utilizando estos componentes y a continuación detallaremos las características mas importantes de Jpivot.

Arquitectura de PAS.

Cuando un usuario realiza un análisis a través de Pentaho Analysis Services, se realiza la siguiente secuencia de acciones entre los diferentes componentes que forman la plataforma:

  1. Cuando estamos conectados a la plataforma BI y lanzamos la ejecución de un nuevo análisis, o interactuamos en un análisis ya visualizado (haciendo un drilldown por los datos, por ejemplo,  o modificando la vista de los datos o los filtros), se produce una request HTTP, que provoca una secuencia de acciones sobre Jpivot.
  2. El servlet Jpivot recibe la solicitud y la traduce/transforma a una query en lenguaje multidimensional MDX, que es enviada a Mondrian (nuestro servidor ROLAP).
  3. Mondrian interpreta la query MDX y la traduce en una o mas sentencias SQL, que son enviadas a la base de datos relacional.
  4. La base de datos relacional ejecuta las sentencias SQL enviadas por Mondrian y le devuelve los resultados en forma de tabla (la forma tipica de visualizar resultados en cualquier motor de base de datos relacional utilizando el lenguaje de interrogación SQL).
  5. Mondrian procesa los resultados y los traduce a un set de resultados multidimensional. Este set de datos sería la respuesta a la query MDX del punto 2.
  6. Jpivot utiliza los resultados multidimensionales para construir una página HTML para visualizar la información, con la interfaz propia que veremos a continuación.

Arquitectura de Pentaho Analysis Services

La base para el correcto funcionamiento del sistema y de los diferentes componentes que lo forman, es la definición de los esquemas dimensionales y sus cubos, que habremos realizado previamente utilizando PWD. Mondrian viene instalado en la plataforma BI de Pentaho como un componente integrado. Si quereis profundizar en aspectos concretos de su funcionamiento y configuración, os recomiendo la lectura de la documentación que Pentaho proporciona en su portal.

Jpivot.

Jpivot es el cliente que vamos a utilizar para visualizar los resultados de los análisis. Para ejecutar un análisis, podemos utilizar uno ya existente que habremos guardado en la correspondiente carpeta de la plataforma, o bien crear uno nuevo desde la opción Nueva vista de análisis, momento en el que se nos pedirá el esquema y el cubo sobre el que queremos construirlo.

Seleccion esquema y cubo

A continuación, nos aparecerá una tabla de Jpivot por defecto, donde aparecerán todas las dimensiones de análisis definidas en el cubo y los indicadores por defecto, con una única linea de resultados totales. Este será el punto de partida sobre el que iremos puliendo nuestro análisis hasta dejarlo de la forma que cumpla nuestros requerimientos de información.

Esta tarea de modificación de los análisis no será siempre necesaria, pues una vez los tengamos preparados, los podremos guardar y reejecutar, manteniendo la configuración de dimensiones, jerarquías, filtros e indicadores de análisis que tuviera la tabla en el momento de ser guardada. Vamos a ver las diferentes opciones de la interfaz de usuario de Jpivot.

La interfaz de usuario de JPivot es muy sencilla. Básicamente, disponemos  de una barra de herramientas con botones donde podemos configurar las propiedades que va a tener la tabla donde visualizamos los resultados de los análisis. Veamos uno por uno cada botón (de izquierda a derecha) de la interfaz de usuario.

Jpivot - Barra Herramientas

Navegador Olap

El primer botón de la barra de herramientas es el navegador Olap que nos permite configurar como Jpivot muestra la información de los cubos en la tabla pivot. Con la herramienta podemos definir que dimension y jerarquia aparece en cada uno de los ejes (filas/columnas), los indicadores que visualizamos en el análisis, filtros, etc. Podemos ir moviendo los diferentes elementos de una sección a otra pulsando los correspondientes iconos a la izquierda de cada elemento hasta dejar el análisis personalizado a nuestra necesidades.

Jpivot - Navegador Olap

De esta forma, vamos configurando como será la visualización en la tabla. Ademas, podremos modificar la jerarquía visible en cada dimensión (en principio se verá la jerarquía por defecto, para el caso de tener varias jerarquías en la misma dimensión). También podemos seleccionar el nivel dentro de la jerarquía o los elementos a visualizar de todos los disponibles.

Jpivot - Selección miembros

Una vez realizadas las consiguientes modificaciones en el layout, pulsaremos el botón Aplicar y los cambios serán visibles en la tabla pivot.

Jpivot - Informe Modificado

Editor MDX.

Como hemos indicado antes, conforme vamos seleccionado las dimensiones e indicadores en el navegador olap, al actualizar la consulta, internamente se traduce a lenguaje MDX que es el que utiliza Mondrian para luego construir las sentencias SQL que se ejecutaran contra la base de datos relacional. Con este control, podemos visualizar la sentencia MDX que se ha construido de forma automática, e incluso, si dominamos este lenguaje, escribir directamente las consultas que darán como resultado la tabla pivot correspondiente.

Jpivot - Editor MDX

Habrá que tener en cuenta en la sintaxis de las sentencias MDX como hayamos llamado a las dimensiones, jerarquías e indicadores. Podeis consultar sobre la sintaxis del lenguaje MDX en la correspondiente página de Pentaho.

Propiedades de visualización.

El siguiente grupo de iconos nos permite establecer propiedades de visualización de la tabla de pivoteo sobre los datos.

  • Mostrar padres: podemos forzar la visualización de los elementos padre conforme vayamos profundizando en los datos.

Jpivot - Mostrar Padres

  • Ocultar repeticiones: con esta opción podemos ocultar repeticiones de los valores de los miembros de una jerarquía y asi hacer mas comprensible el análisis de los resultados.

Jpivot - Ocultar repeticiones

  • Suprimir filas/columnas vacias: oculta las filas o columnas que no tuviesen valores.
  • Intercambiar ejes: nos permite de una forma rápida pasar las filas a columnas y viceversa, y así cambiar la forma de ver la información.

Opciones de navegación.

Una opción muy interesante es determinar la forma en que se realiza la navegación por la tabla. Para ello, tenemos 3 posibles opciones.

  • Detallar miembro: cuando navegamos por un miembro de una dimensión (por ejemplo, el mercado EMEA en la imagen anterior), independientemente de que estemos en un año u otro, se abre el desglose del miembro en todas las ocurrencias que tuviera en la tabla (en los diferentes años en el caso de nuestro ejemplo).
  • Abrir detalle: en contraposición a Detallar miembro, con la opción Abrir detalle sobre se abre el nivel del miembro que hayamos seleccionado, no todas las ocurrencias.
  • Entrar en detalle: cambiamos la forma de navegación, sustituyendo el icono + por una flecha, que nos permite ir bajando y subiendo por la información sin que se vaya realizando un desglose. Es una forma de navegación mucho más util para ir analizando aspectos concretos.

Las tres opciones de navegación descritas son excluyentes entre si (solo podremos tener seleccionada una de ellas a la vez).

Jpivot - Entrar en detalle

  • Mostrar datos Origen: con esta opción mostramos en la parte inferior de la tabla pivote una tabla adicional donde se muestran los datos originales que dan lugar a los resultados mostrados en la tabla principal. Puede ser útil para buscar determinados valores en registros individuales de datos cuando se produzca una alarma visualizando los resultados de la tabla principal.

Modo gráfico y exportación PDF/Excel.

Finalmente, el ultimo set de botones de la barra de herramientas nos permiten configurar el gráfico que se muestra como complemento de la tabla pivot o realizar la exportación de los resultados en formato PDF o Excel.

  • Mostrar gráficos: al seleccionar la opción, se visualiza adicionalmente un gráfico con los resultados de la tabla. Los tipos de gráfico que se pueden utilizar son de barras, de linea, de area o de tarta.

Jpivot - Tabla y grafico

  • Configurar gráficos: en esta opción configuramos las propiedades del gráfico (tipo de gráfico, fuentes, titulos, color de fondo, etc).
  • Configurar impresion: configuramos alguna de las propiedades que tendrá el PDF que se genere en la opción Exportar a PDF (titulo, tamaño de tabla, orientación del papel, etc).
  • Exportar a PDF: genera un documento PDF con los resultados de la tabla pivot según la configuración indicada.
  • Exportar a Excel: nos permite exportar la tabla de resultados visibles a un fichero con formato excel.

Otras alternativas. StPivot, Pat y Jrubic/La Azada.

Jpivot tiene una interfaz algo anticuada y no demasiado vistosa. Por este motivo, han surgido algunas alternativas que tratan de mejorar la experiencia de usuario al trabajar con Mondrian. Podemos destacar:

  • Stpivot: como lo llaman en Stratebi, es Jpivot con esteroides. Es una mejora de la interfaz de usuario y algunas funcionalidades realizadas por ellos. Os dejo el link al blog de todobi.com donde podeis ampliar información y ver videos de como instalarlo y utilizarlo.
  • Jrubik/ La Azada: una opción alternativa a la utilización de PAS es utilizar un cliente Olap que ejecutaremos en nuestro PC como un programa más de escritorio. Un ejemplo de este tipo de aplicación es Jrubik, proyecto desarrollado en su día por gente de la Agencia Tributaria en España o el más actual La Azada, del que podeis leer mas en este documento publicado por todobi.com. Estan totalmente integrados con Mondrian, y aunque tienen algunas limitaciones y bugs, pueden ser una opción interesante.

Interfaz gráfico de La Azada

  • Pat (Pentaho Analysis Tool): es el nuevo proyecto que pretende crear la interfaz del futuro que sustituya a Jpivot. Esta todavía en una fase muy inicial y aun le queda un largo recorrido antes de ser una opción a considerar. Podeis ampliar información sobre el proyecto aquí.

Interfaz de usuario de PAT

En la próxima entrada del blog concluiremos el análisis de las herramientas de Pentaho en la parte referente a Cuadros de Mando y Dashboard a través del proyecto Community Dashboard Framework for the Pentaho BI Platform.

2 respuestas to “17.5. Cubos Olap y navegación dimensional con Mondrian y Jpivot.”

  1. Dani said

    Hola Roberto, en primer lugar quería felicitarte por tu blog, he utilizado BI para la realización de mi PFC, y me ha sido de gran ayuda, de lo mejorcito que he encontrado sobre este tema.
    Tengo una aplicación en la cual los usuarios se registran y en función de unos parámetros de entrada realizo búsquedas diarias en Twitter. Los resultados obtenidos los guardo en una BD para posteriormente aplicar procesos BI. A cada una de estas búsquedas dentro de mi aplicación le he llamado informes. Un usuario realizará N informes.
    Lo que quiero conseguir, es que cuando un usuario accede a Pentaho, sólo pueda ver la información de los informes que el ha creado, establecer un filtro en la dimensión Informe, en función del usuario previamente registrado en mi aplicación.
    Agradecería cualquier fuente, consejo o forma de conseguir esta funcionalidad.
    Gracias de antemano.
    Un saludo.

  2. Hello to every one, the contents existing at this web site are in fact awesome for people
    experience, well, keep up the good work fellows.

Deja un comentario