Está en la página 1de 9

OLAP (online analytical processing o procesamiento analítico en línea)

Nos referimos a cubos OLAP cuando hablamos de bases de datos multidimensionales,


en las cuales el almacenamiento físico de los datos se realiza en vectores
multidimensionales. Los cubos OLAP se pueden considerar como una ampliación de
las dos dimensiones de una hoja de cálculo. Por ejemplo, una empresa podría analizar
algunos datos financieros por producto, por período de tiempo, por ciudad, por tipo de
ingresos y de gastos, y mediante la comparación de los datos reales con un presupuesto.
Estos parámetros en función de los cuales se analizan los datos se conocen como
dimensiones. Para acceder a los datos sólo es necesario indexarlos a partir de los
valores de las dimensiones o ejes.

La principal característica que potencia a OLAP, es que es lo más rápido a la hora de


ejecutar sentencias SQL de tipo SELECT, en contraposición con OLTP que es la mejor
opción para operaciones de tipo INSERT, UPDATE Y DELETE.

Tipos de sistemas OLAP

Tradicionalmente, los sistemas OLAP se clasifican según las siguientes categorías:

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.

HOLAP (Hybrid OLAP)


Almacena algunos datos en un motor relacional y otros en una base de datos
multidimensional.
Aunque no todo es tan complicado como parece, Existe software especializado para
crear Cubos OLAP como :

Pentaho: ¿Que es pentaho?

Pentaho es la solución BI Open Source líder del mercado y la mejor alternativa a los
productos comerciales.

Las soluciones que Pentaho pretende ofrecer se componen fundamentalmente de una


infraestructura de herramientas de análisis e informes integrados con un motor de
workflow de procesos de negocio. La plataforma será capaz de ejecutar las reglas de
negocio necesarias, expresadas en forma de procesos y actividades y de presentar y
entregar la información adecuada en el momento adecuado, mediante analisis OLAP,
Cuadros de Mando, etc…

La plataforma Open Source Pentaho Business Intelligence cubre muy amplias


necesidades de Análisis de los Datos y de los Informes empresariales. Las soluciones de
Pentaho están escritas en Java y tienen un ambiente de implementación también basado
en Java. Eso hace que Pentaho es una solución muy flexible para cubrir una amplia
gama de necesidades empresariales – tanto las típicas como las sofisticadas y
especificas al negocio

Mondrian: ¿Que es Mondrian?

Mondrian es un servidor OLAP que esta escrito en Java.


Permite interactuar con grandes cantidades de datos almacenados en Bases de Datos
relacionales, sin necesidad de utilizar complejas sentencias SQL.
Creación de los cubos OLAP Mondrian
con el Pentaho Cube Designer

El fichero de la configuración del Cubo OLAP


Mondrian
Para crear el modelo de los datos 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.
El fichero del esquema Cubo Mondrian es un fichero del tipo XML que se puede crear
con cualquier editor de texto. El problema es que eso puede resultar muy difícil y
consumir mucho tiempo y por eso se aconseja usar la aplicación open source Pentaho
Cube Designer que ayudara al proceso de creación de los cubos.
La aplicación Cube Designer es un buen apoyo en creación de los cubos OLAP. Sin
embargo, en la versión actual del Pentaho Cube Designer (0.7.2.0) faltan algunas
opciones avanzadas, como por ejemplo creación de los agregados, dimensiones
compartidos o cubos múltiples en un fichero de definición del cubo OLAP.
En este caso una solución puede ser la siguiente: usar Cube Designer para crear unos
modelos simples, no complejos y añadir las opciones avanzadas a mano, editando
directamente al fichero XML.

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

El 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 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

En 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


Mondrian

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>

También podría gustarte