Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Olapbase Multidimensional
Olapbase Multidimensional
ROLAP
Implementación OLAP que almacena los datos en un motor relacional. Típicamente, los
datos son detallados, evitando las agregaciones y las tablas se encuentran normalizadas.
MOLAP
Esta implementación OLAP almacena los datos en una base de datos multidimensional.
Para optimizar los tiempos de respuesta, el resumen de la información es usualmente
calculado por adelantado.
Pentaho es la solución BI Open Source líder del mercado y la mejor alternativa a los
productos comerciales.
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.
El ejemplo de este tutorial usa la arquitectura del copo de nieve de almacén de datos.
Los siguientes datos formarán parte del cubo OLAP de este guía:
- Tres campos de los Hechos – venta (Sales), coste (Costs), descuento (Discounts).
- Dimensión del Tiempo (TIME) – con la jerarquía de Año, Trimestre, Mes.
- Dos dimensiones del cliente (CUSTOMER) – uno con los datos de ubicación de
cliente (Región y Pais) y el otro con clasificación del grupo y nombre del cliente
(CUSTOMER_GROUP y CUSTOMER_NAME)
- El dimensión del producto (PRODUCT) – con el nombre de producto
(PRODUCT_NAME)
1. Informaciones básicas sobre el cubo OLAP y
conexión a la base de datos
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 relacional
Una 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 dimensiones
Crear dimensiones:
Hacer 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 práctica 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>