|
|
Creación de los cubos OLAP Mondrian con el Pentaho Cube DesignerEl fichero de la configuración del Cubo OLAP Mondrian
Para crear el modelo de los datos el la plataforma Pentaho hay que configurar el fuente de los datos y configurar el cubo OLAP en el fichero de configuración XML llamado fichero del esquema Cubo Mondrian (Mondrian Cube Schema).
En este fichero de esquema se puede definir las dimensiones, los niveles de jerarquía de dimensiones, los hechos y conexión a la base de datos relacional que sirve los datos para el cubo OLAP.
Debajo encontrarán un ejemplo con las instrucciones detalladas que puede ilustrar la idea del uso de Pentaho Cube Designer para crear un fichero esquema Mondrian.
1. Informaciones basicos sobre el cubo OLAP y conexión a la base de datosEl primer paso para configurar un cubo OLAP Mondrian es intruducir su nombre y descripción. El nombre debe ser corto y describir bien el contenido y tipo de datos que contiene. La sección abajo (select a data source) permite definir y configurar fácilmente la conexión con la base de datos con un wizard. Para este tutorial creamos un cubo con el nombre EtlTools_Sales, usamos la conexión DwDev y los datos fuente vienen de la base de datos Oracle. Configuración de la conexión a la base de datos que sirve datos para un cubo OLAP Mondrian: ![]() 2. Definir el modelo de datos relacionalUna pantalla de vinculación de tablas (Map Tables) permite definir el modelo de datos relacional, que servirá para cargar datos al cubo OLAP. Crea los vínculos entre tablas arrastrando los campos clave entre las tablas y seleccione los campos que desea incluir en el cubo marcando un ‘checkbox’ al lado del nombre del campo. En esta pantalla se puede definir tambien los filtros de datos (condición WHERE), agrupar datos (GROUP BY) y ordenar datos (ORDER BY). El modelo abajo puede ilustrar la idea genera de cómo representar una esquema del copo de nieve en arquitectura de almacén de datos. Vincular tablas Oracle : ![]() 3. Seleccionar la tabla de hechos (facts) y las medidas (measures)Después de configurar las tablas fuente debe seleccionar la tabla que contiene los datos de los hechos y elegir los campos para agregar. En este guía usamos los siguientes campos numéricos: Venta Total (TOTAL_SALES), Coste (TOTAL_COSTS) y Descuento (TOTAL_DISCOUNT) Aquí se puede también cambiar el modo de agregación – a parte de la suma se puede calcular el promedio (AVG), contar (COUNT), indicar el valor mínimo o máximo para un grupo de datos (MIN, MAX). En esta pantalla se define el formato de los datos numericos (el valor por omisión es # ##0,###). Crear medidas en Cube Designer: ![]() 4. Crear dimensionesEn este paso se crea y configura las dimensiones en el cubo multidimensional OLAP. Para crear un nuevo dimensión elija un campo de la área ‘source fields’ (campos fuente) i haga click en ‘Add New Dimension’ (crea un dimensión nuevo). Hay que tener en cuenta el facto de que los campos que estén al tope de la jerarquía deben ser elegidos primeros. Por ejemplo, para crear un dimensión de tiempo hay que elegir el ano (YEAR_ID), hacer click en ‘Add New Dimension’, poner el nombre TIME y confirmar con el botón OK. Luego seleccionamos los campos del trimestre y mes (QUARTER_ID, MONTH_ID) y hagamos clic sobre la flecha hacia derecha que resulta en crear niveles nuevos en el dimensión del tiempo. Crear dimensiones: ![]() 5. Guardar el fichero de la definición del Cubo OLAP MondrianHacer clic en el botón ‘View XML’ mostrara el contenido del fichero XML con la definición del Cubo. Si notamos algunas inconsistencias podemos regresar (el botón ‘Back’) y reconfigurar datos en los pasos anteriores. Podemos también editar el código del fichero XML y así cambiar la definición. Si todo parece bien, hagamos clic en ‘Finish’ y después de indicar la ubicación solicitada, el fichero esta creado. El fichero del esquema Mondrian de esta guía practica se llama ETLTOOLS_SALES.mondrian.xml y tiene el siguiente contenido: <?xml version="1.0" encoding="UTF-8"?> <Schema name="ETLTOOLS_SALES"> <Cube name="ETLTOOLS_SALES"> <Table name="F_SALES"/> <Dimension name="TIME" foreignKey="DATE_ID"> <Hierarchy name="TIME" hasAll="true" allMemberName="All time" primaryKey="DATE_ID"> <Table name="D_TIME"/> <Level name="YEAR" table="D_TIME" column="YEAR_ID" uniqueMembers="false"/> <Level name="QUARTER" table="D_TIME" column="QUARTER_ID" uniqueMembers="false"/> <Level name="MONTH" table="D_TIME" column="MONTH_ID" uniqueMembers="false"/> </Hierarchy> </Dimension> <Dimension name="PRODUCT" foreignKey="PROD_ID"> <Hierarchy name="PRODUCT" hasAll="true" allMemberName="All product" primaryKey="PROD_ID"> <Table name="D_PRODUCT"/> <Level name="PRODUCT_NAME" table="D_PRODUCT" column="PROD_TEXT" uniqueMembers="false"/> </Hierarchy> </Dimension> <Dimension name="CUSTOMER_LOCATION"> <Hierarchy name="CUSTOMER_LOCATION" hasAll="true" allMemberName="All customer_location"> <Table name="D_COUNTRY"/> <Level name="CUSTOMER_REGION" table="D_COUNTRY" column="REGION_TEXT" uniqueMembers="false"/> <Level name="CUSTOMER_COUNTRY" table="D_COUNTRY" column="COUNTRY_TEXT" uniqueMembers="false"/> </Hierarchy> </Dimension> <Dimension name="CUSTOMER" foreignKey="CUST_ID"> <Hierarchy name="CUSTOMER" hasAll="true" allMemberName="All customer" primaryKey="CUST_ID"> <Table name="D_CUSTOMER"/> <Level name="CUSTOMER_GROUP" table="D_CUSTOMER" column="CUST_GROUP_ID" uniqueMembers="false"/> <Level name="CUSTOMER_NAME" table="D_CUSTOMER" column="CUST_NAME" uniqueMembers="false"/> </Hierarchy> </Dimension> <Measure name="TOTAL_SALES" column="TURNOVER_EUR" aggregator="sum" datatype="Numeric" formatString="# ##0,###"/> <Measure name="TOTAL_COSTS" column="SALES_COSTS_EUR" aggregator="sum" datatype="Numeric" formatString="# ##0,###"/> <Measure name="TOTAL_DISCOUNT" column="SALES_DISCOUNT_EUR" aggregator="sum" datatype="Numeric" formatString="# ##0,###"/> </Cube> </Schema> |
|