domingo, 16 de agosto de 2009

Post # 6 - Crear cubo OLAP con CubeDesigner

En el post anterior ya se había creado la BD multidimensional, es momento entonces de crear el cubo OLAP (un archivo XML), para esto utilizaremos la herramienta gráfica Cube Designer (acceder a la siguiente página donde podrán obtener versiones para Windows, Mac o Linux). Debido al comentario de una lectora me enteré que los links para descargar Cube Designer ya no están activos, creo que debido a que dicho software ya estaba descontinuado. De todos modos acabo de subirlo a Megaupload y les dejo el link para descargarlo. Una vez descargado el archivo, se procede a descomprimir y se obtiene la carpeta CubeDesigner, para cargar simplemente ejecutamos el archivo CubeDesigner.exe. Para el caso particular de este tutorial, el gestor de base de datos utilizado es Postgresql, por lo que antes de ejecutar la herramienta se debe copiar el archivo postgresql-8.2-506.jdbc3.jar (*) en la carpeta CubeDesigner\lib\jdbc, a continuación seguir los pasos que se indican: (*) OBS. El archivo .jar lo puede encontrar entre los archivos de Pentaho BI Server, en la version 1.7.1 lo encuentra en pentaho-demo\jboss\server\default\lib; en la versión 2.0.0 en biserver-ce\administration-console\jdbc y en la versión 3.0.0 en administration-console\jdbc. IMPORTANTE: Antes de utilizar CubeDesigner, se debe editar el archivo publisher_config.xml que se ubica en ..\biserver-ce\pentaho-solutions\system\. Si es que el servicio Pentaho está iniciado, se debe reiniciar para que reconozca el cambio realizado. En el segundo post, en el punto 2.2 se recomienda la creación de una carpeta (ubicada en ..\biserver-ce\pentaho\pentaho-solutions) para guardar nuestros los archivos de nuestra propia solución. En el punto 6 de este post se hace referencia a esta carpeta y el modo correcto en que debe ser ingresado. Asegurarse de ir a la Consola de Administración (http://localhost:8099) Administration -> Services -> Solution Repository -> Refresh para que Pentaho "reconozca" esa nueva carpeta. 1. Desde CubeDesigner ir al Menú File -> New Cube Schema. 2. Ingresar los valores siguientes en el Inicio de la Configuración:

  • Cube Name: Ventas

  • Cube Description: Cubo para obtener los datos de ventas.

  • Select a data source. Como es la primera vez que se usa la herramienta se debe agregar un origen de datos, e ingresar los valores que se indican en la imagen siguiente (Los datos de conexión son los mismos que se usan cuando se crea un datasource en la Consola de Administración, sobre todo el valor que se ingresará en JNDI Name):

3. Realizar el Mapeo de Tablas.

  • Del panel inferior izquierdo seleccionar el esquema dmventas (esquema donde se hallan las tablas del modelo multidimensional). Asegúrese que el servicio Pentaho BI Server esté cargado.

  • Se muestran las tablas, y ahora arrastrarlas al panel derecho y pueden ordenarlas como se muestra en la imagen.

  • Ordenadas las tablas se procede a seleccionar los campos que se utilizarán para crear las medidas, tablas dimensión y de hechos.

4. Crear las Medidas (Create Measures)

  • En el combo se debe seleccionar la tabla thventas.

  • Se muestran las columnas de la tabla seleccionada pero solo seleccionar thventas.ca_ventas (Cantidad de ventas) y thventas.im_ventas (Monto vendido). Verificar que el tipo de agregación sea SUM y el formato sea #,##0.

5. Crear las Dimensiones (Create Dimensions). En la lista Source Fields realizar lo siguiente:

  • Seleccionar el campo tdvended.co_vended, luego click en Add New Dimension e ingresar como nombre de dimensión: Vendedor.

  • Seleccionar el campo tdtienda.co_tienda, luego click en Add New Dimension e ingresar como nombre de dimensión: Tienda.

  • Seleccionar el campo tdproduc.co_produc, luego click en Add New Dimension e ingresar como nombre de dimensión: Producto.

  • Seleccionar el campo tdfecven.co_fecven, luego click en Add New Dimendion e ingresar como nombre de dimensión: Fecha.


  • Al momento de ir creando cada dimensión puede ir editando algunas propiedades, como por ejemplo uniqueMembers, cambiando el valor por defecto a true; esto porque cada miembro de las dimensiones que se usan para este tutorial no presentan valores duplicados (ejm. no existen dos tiendas con el mismo nombre).

  • La dimensión fecha presentará una jerarquía de 3 niveles (año, mes y día), se puede agregar dichos niveles desde CubeDesigner, pero lo dejaremos así en este momento pues editaremos a mano el archivo XML más adelante (que a mi parecer es la mejor forma de aprender a crear nuestros cubos OLAP)
6. Pasos finales. En el último paso se puede apreciar las siguientes partes:

  • View XML. En la solapa XML Source se puede observar el código XML que se ha generado (schema files). En la solapa XML DOM se observa la vista en árbol de la estructura del cubo.

  • Publish. La publicación generará 3 archivos (Ventas.mondrian.xml, Ventas.properties, Ventas.xaction) .También se debe indicar donde se generarán los 3 archivos, en Publish Location ingresar /ventas/olap, la ruta completa donde su ubicarán los archivos es pentaho-solutions/ventas/olap (La carpeta ventas ya se había creado en uno de los post anteriores, se debe crear la carpeta olap).

  • El valor que aparece en Web Publish URL no es necesario modificarlo.

  • Además del Publish Password, la publicación solicita datos en Server Userid y Server Password se debe ingresar joe y password respectivamente.

  • Por último click en Publish.

  • Preview. Si el archivo XML que se ha generado, y el código XML que define las medidas, dimensiones y el cubo está correcta se podrá visualizar el resultado visualizando los datos del cubo desde la página xaction que se generó.
Además también se puede observar la página xaction desde Pentaho DesignStudio, para esto sólo se accede a la carpeta donde se realizó la publicación y poder revisar en la solapa Define Process y XML Source todo lo necesario del archivo generado. En la solapa Test se podrá realizar el acceso a la información de la base de datos multidimensional. IMPORTANTE. Como se indicó en el paso 5, el archivo XML que se generó lo iba a editar (pues la herramienta sirve de ayuda, pero es mejor editarlo a mano, de paso que se aprende más) por lo que recomiendo descargar y utilizar el archivo Ventas.mondrian.xml. Utilizando este archivo, al momento de visualizar la página Ventas.xaction se mostrarán los datos como en la figura siguiente: A partir de este primer reporte, se puede utilizar toda la funcionalidad que brinda Jpivot, como muestra el siguiente reporte donde se elige revisar solo una medida analizando por la dimensión Producto y obtener ver cual es el producto más vendido. O este otro reporte, donde se muestran las dos medidas y se analiza la dimensión Vendedor, así podemos observar que si bien el que vende más productos es CARLOS DIAZ, el que genera más monto en ventas es LUIS PEÑA.

Curso Pentaho - Noviembre 2013

Aprender Pentaho Data Integration (Kettle)
Post # 6 - Crear cubo OLAP con CubeDesigner
Post # 5 - Crear base de datos multidimensional
Post # 4 - Conexión a tu base de datos - II
Post # 3 - Conexión a tu base de datos
Post # 2 - Descarga e instalación
Post # 1 - Business Intelligence, introducción sobre Pentaho