Tampoco pretendo llegar a explicar en detalle todos los conceptos para crear un cubo. Sino que se pretente explicar como crear un cubo basico sin ningun tipo de complejidad, ya que a posteriori se desarrollaran en detalle los diferentes conceptos que no se explicaron en esta primera entrega.
Algunos elementos basicos
- Dimensión Degenerada, hace referencia a un campo que será utilizado como criterio de análisis y que es almacenado en la tabla de hechos. Esto sucede cuando un campo que se utilizará como criterio de análisis posee el mismo nivel de granularidad que los datos de la tabla de hechos, y que por lo tanto no se pueden realizar agrupaciones o sumarizaciones a través de este campo. Los "números de orden", "números de ticket", "números de transacción", etc, son algunos ejemplos de dimensiones degeneradas. La inclusión de estos campos en las tablas de hechos, se lleva a cabo para reducir la duplicación y simplificar las consultas.
- Las dimensiones compartidas, son aquellas que están relacionadas a dos o más dimensiones y que brindan información diferente a cada una de ellas.Se pueden incluir todos los campos de la dimensión Compartida en cada tabla de dimensión con que se relacione y eliminar luego la dimensión Compartida.Se puede crear una nueva tabla de dimensión basada en la dimensión compartida por cada tabla que se relacione con esta y luego eliminar la dimensión compartida.
Elementos basicos para la creación de un cubo
- Cubos:contiene una combinación de dimensiones, métricas y miembros calculados que conforman la consulta a analizar.
- Cubos virtuales:Un cubo definido por la combinación de las dimensiones y las mediciones de uno o más cubos.
- Tabla de hechos: es una tabla principal en el modelado multidimensional en la que se almacenan las medidas.
- Dimensiones: son las tablas que contienen los elementos en los que se descomponen las vistas multidimensionales (a nivel de granulidad).
- Jerarquía: define la relación entre la tabla de hechos y las dimensiones.
- Elemento: son los elementos que se mostraran en cada dimensión.
- Métrica: son métricas de negocio en estado puro (sum, rest, count, div,mult).
- Miembros calculados:es una métrica que tiene como valor el resultado de la aplicación de una fórmula que puede utilizar todos los elementos disponibles en un cubo, así como otras funciones de MDX disponibles.
Proceso de creación de un cubo
En la plataforma pentaho se trabaja con Mondrian Schema Workbench o Pentaho Schema Workbench en adelante PSW, es la herramienta generica que trae la suite para la generación de cubos para su posterior visualizacion.
Una vez configuremos la conexión podremos cargar los datos de la bd normalizada para crear la estructura de los cubos.
- Creamos el esquema nuevo: seleccionar en el menú “File → New → Schema” (esperen que se toma su tiempo).
- Cuando hayamos conectado con la base de datos veremos que se queda en blanco, como si nada hubiera ocurrido:
- Pero si ocurrió, ya está todo listo para crear nuestro cubo.
- Como se puede apreciar se ha creado un “Schema” al cual se le pone un nombre en el campo “name”
Partamos de un esquema en estrella que tengamos en nuestro Data Warehouse, de dicha estrella es que modelaremos el cubo. En el sistema de ejemplo se recogen solicitudes de diversas empresas para que se les repare o dé mantenimientos a sus respectivas flotas de autos y existen varios tipos de solicitudes en dependencia de la empresa que solicita el servicio.
Queremos hacer un cubo que contenga la siguiente información:
Cantidad de solicitudes entradas al sistema, agrupadas por el tipo de solicitud y la fecha en que entró la solicitud, dicha fecha debe poseer la siguiente jerarquía:
1- Año
1.1- Mes
1.1.1 Fecha
Empecemos entonces a ver como se usa esta herramienta para dar respuesta al cubo solicitado.
3. Nuevo cubo
Posteriormente con el schema marcado se le da al botón que apunta el cursor (Add Cube) y se crea un cubo
Como se puede ver el nombre dado a este cubo es “Cant_Sol”, es importante que se observe los mensajes de color rojo que se muestra en el borde inferior de la ventana, en este caso “Fact Table does not exist in database” este mensaje hace referencia a que la tabla de hecho especificada no se encuentra en la base de datos, en realidad no hemos seleccionado ninguna, y hasta que no se haga se mantendrá el mensaje. Siempre que aparezcan estos mensajes es que falta algún dato, por lo que el cubo está defectuoso.
Una tabla de hechos es una tabla principal en el modelado multidimensional y que almacena las medidas del rendimiento del negocio, es decir es la medida de los indicadores solicitados.
Una tabla de hechos
es la tabla principal en el modelado multidimensional y que almacena
las medidas del rendimiento del negocio. El término "hecho" se usa para
referise a una medida de negocio, por ejemplo la cantidad de elementos vendidos en un periodo de tiempo. Al ser esta medida el dato que se toma
de la sumarización de las dimensiones que intervienen en el esquema
multidimensional".
Por ejemplo, procedemos a configurar la tabla de hechos en Workbench dando clic en el cubo “Cant_Sol” se puede ve como se despliega un icono de tabla “Table”, seleccionando la tabla que contendrá los hechos que contendra aquello que deseamos analizar.
Por ejemplo, procedemos a configurar la tabla de hechos en Workbench dando clic en el cubo “Cant_Sol” se puede ve como se despliega un icono de tabla “Table”, seleccionando la tabla que contendrá los hechos que contendra aquello que deseamos analizar.
Vean como al seleccionar la tabla deseada “h_cant_solicitudes” el nodo “Table” se acoge al nombre de dicha tabla.
5. Añadir dimensiones
Las dimensiones son los elementos en los que se puede descomponer un cubo, por lo que tendremos que descomponer cada una de las dimensiones en sus elementos desgranables, siendo ecada uno de estos un nivel de granulidad del cubo final.
5.2. Tipos
Ya con esto hemos terminado de configurar la dimensión de tiempo de la solicitud, según lo requerido nos queda crear otra para el tipo, para lo cual nos volvemos a posicionar arriba del cubo,
Para continuar este proceso, le damos
clic derecho y creamos una nueva dimensión (“Add Dimension”), posteriormente bajamos
hasta el nivel más bajo “Table” y seleccionamos la tabla
correspondiente.
Procedemos a crear nuestra dimensión particular que mostrará el tipo de solicitud.
Seguidamente nos paramos encima del cubo otra vez, le damos clic derecho y del conjunto de opciones que sale se selecciona la opción “Add Dimension”.
Como pueden apreciar ha surgido un nuevo elemento “New Dimensión 0”, es aquí donde se hace referencia a las tablas de “Dimensiones” que se quieran utilizar. Este elemento también tiene en su interior otras estructuras.
Aquí se muestra como el elemento “New Dimensión 0” tiene en su interior a “Hierarchy” (jerarquía), quien a su vez contiene un “Table”, siendo muy util y comprensible la utilizacion de la tecnica de ir configurando estas estructuras compuestas, desde adentro hacia afuera, por lo que el modo de configuración es el siguiente.
“Table” contiene el campo “name” en donde se escoge la tabla dimensión requerida, nos interesa el tipo de solicitud y el tiempo, así que seleccionamos la primera mencionada. De la misma forma que arriba “Table” se acoge al nombre de la tabla seleccionada.
Luego nos paramos en “Hierarchy” y en los campos “name” y “allMemberName” ponemos “Todos_los_tipos” este será el título de los valores que saldrán en los reportes, vistas de análisis, etc.
En el campo “primaryKey” seleccionamos de los campos que tenga esta tabla dimensión aquel que sea la llave primaria, en este caso “Id_TipoSol”.
Seguidamente nos paramos sobre “New Dimensión 0” y le ponemos un nombre a este elemento en “name”.
Observen detenidamente ahora, se cuenta con un campo “foreingKey” eso se debe a que esta capa más arriba, está conectada a la tabla del cubo “h_cant_solicitudes” por lo que cuando vemos la lista que brinda “foreingKey” vemos todos los campos con los que cuenta la tabla hecho de este cubo, y como todos y todas sabemos las tablas hechos deben tener como llaves principales las llaves de las dimensiones que usa. De esta forma ya hemos establecido los campos por los que se indexan las tablas “h_cant_solicitudes” y “d_tipo_solicitud”.
Bien, ya establecimos la conexión entre las tablas mencionadas, pero no hemos establecido que campo(s) son los que mostraremos. Para ellos nos paramos en “Hierarchy” y damos clic derecho y seleccionamos “Add Level”.
A este “Level” le ponemos nombre en “name” y en “nameColumn” seleccionamos el campo que deseamos se muestre.
Ahora mismo tendriamos configurada la siguiente seccion:
De esta forma ya hemos establecido
los campos por los que se relacionan las tablas “h_cant_solicitudes” y “d_tipo_solicitud”.
Luego nos paramos en “Hierarchy” y en los campos “name” y “allMemberName” ponemos “Todos_los_tipos” este será el título de los valores que saldrán en los reportes, vistas de análisis, etc.
Seguidamente nos paramos sobre “New Dimensión 0” y le ponemos un nombre a este elemento en “name”.
A este “Level” le ponemos nombre en “name” y en “nameColumn” seleccionamos el campo que deseamos se muestre.
De esta forma ya hemos establecido
los campos por los que se relacionan las tablas “h_cant_solicitudes” y “d_tipo_solicitud”.
5.1. Fechas
Ya con esto hemos terminado de configurar la dimensión de tiempo de la solicitud, según lo requerido nos queda crear otra para el tipo, para lo cual nos volvemos a posicionar arriba del cubo,
Para
añadir las fechas tenemos que añadir cada nivel de granulidad del cubo
añadiendo primero los elementos del nivel superior y por ultimo los de
nivel inferior. Esta dimension se diferencia de la dimension tipo por la
diferenciación en los niveles de granulidad, ya que la dimensión tipo
solo mostrará un nivel de graniludad
Se selecciona la tabla “d_tiempo”.
Configuramos
la jerarquía “Hierarchy”, que no es mas que la relaccion de la primary
key de la dimensión (como se ve en la imagen superior), con la el id que
la relacciona con la tabla de hechos, en la imagen superior se puede
ver como se configura esta relacción(Como se ve en la imagen inferior).
Como
se comento anteriormente en la dimension fecha se mostrará más de un
nivel, puesto que se desea organizar por año, por cada año los meses,
y por las fechas. A continuación veremos como se debe hacer para lograr
esto, asignando los niveles de granulidad.
Se
crea un primer nivel que va a coger el campo “Anno”. ESte nivel
referencia al año, siendo este el nivel de granulidad superior.
Luego se crea otro nivel que guardará el campo referente a los meses: “Mes”, Siendo el nivel de granulidad inferior.
Y por último el nivel “Fecha” que acogerá el campo “Fecha”, siendo este el ultimo nivel de granulidad.
6. Añadir metricas
Bien, ya tenemos modelado nuestro cubo con las especificaciones requeridas, ahora solo nos queda hacer el cálculo de las solicitudes realizadas.
Esto se hace con el campo “Cant_sol” que tiene la tabla hecho “h_cant_solicitudes” de la siguiente forma.
Nos posicionamos arriba del cubo, damos clic derecho y seleccionamos “Add Measure”.
En “name” ponemos el nombre de este valor a calcular, en “aggregator” seleccionamos la operación de sumarización que se desee realizar, en nuestro caso “Sum” (sumar).
Luego, en “column” seleccionamos el campo “CantSol”, que será el hecho al que le vamos a realizar el cálculo seleccionado anteriormente.
Aquí especificamos el formato que le vamos a dar al resultado calculado, entero, decimal, con símbolos como “$, %” en dependencia de lo que se calcule.
8. Conclusion
Con todos los pasos anteriores ya tendremos configuradas las dimensiones que nos interesan en nuestro cubo y la tabla de hechos para el estudio del elemento a analizar.

Con todos los pasos anteriores ya tendremos configuradas las dimensiones que nos interesan en nuestro cubo y la tabla de hechos para el estudio del elemento a analizar.
7. Guardado y publicado de cubos
Y por último publicar el cubo en nuestro servidor Pentaho. Atención, para poder hacer una publicación en nuestro servidor hay que haber modificado un archivo que nos da permisos para ello. Para poder modificar este fichero sigue estos pasos:
- Entra en biserver-ce > pentaho-solutions > system
- Botón derecho en el archivo publisher_config.xml
- Edita estas lineas de a continuación poniendo lo que está en negrito un password, que es el mismo de PUBLISH PASSWORD de la imagen anterior.
<publisher-config>
<publisher-password> password_seleccionada </publisher-password>
</publisher-config>
No hay comentarios:
Publicar un comentario