Está en la página 1de 15

Unidad 4.

Construyendo una solucin OLAP


Objetivos
Diferenciar los distintos modos de almacenamiento Comprender qu es y como definir el porcentaje de agregacin Conocer la posibilidad del uso particiones Entender el manejo de los Cubos Virtuales Mejorar los tiempos de procesamiento Optimizar el espacio de almacenamiento

Contenido de la unidad
4.1. 4.2. Introduccin Tipos de Almacenamiento 4.2.1. 4.2.2. 4.2.3. 4.3. 4.4. 4.5. 4.6. 4.7. MOLAP ROLAP HOLAP

Definicin de Agregaciones Procesamiento de cubos Cubos Virtuales Particiones La difcil bsqueda del equilibrio

Pgina 1 de 15

4.1. Introduccin

En esta unidad abordaremos los conceptos a tener en cuenta para la implementacin del data mart. Describiremos los distintos tipos de almacenamiento y las consideraciones que debemos analizar para mejorar la performance del sistema. Adems, veremos con que frecuencia es conveniente procesar nuestros cubos y explicaremos el uso de los cubos virtuales y particiones. Al final de este modulo, el lector conocer qu modo de almacenamiento ser el ms adecuado para los requerimientos de la organizacin, como balancear los distintos factores que intervienen al implementar un cubo.

4.2. Tipos de Almacenamiento


Haciendo un pequeo balance de las unidades anteriores, vemos que ya tenemos: un diseo de requerimientos, sabemos de dnde y cmo obtener los datos y ya contamos con la definicin de la estructura multidimensional. Ahora que vamos a armar fsicamente el cubo debemos elegir entre los distintos modos de almacenamiento que podemos utilizar. Para facilitar esta eleccin, desarrollaremos los conceptos de MOLAP, ROLAP y HOLAP y luego haremos una comparacin de los mismos.

4.2.1.

MOLAP

En el modo de almacenamiento MOLAP ( OLAP Multidimensional) una copia de los datos de origen del cubo, junto con sus agregaciones, es almacenada en una estructura multidimensional.

Pgina 2 de 15

Debemos tener en cuenta que mientras los datos de origen cambian directamente con las operaciones, los objetos con almacenamiento MOLAP deben ser procesados para incorporar estos cambios. El tiempo comprendido entre un procesamiento y el siguiente, crea un periodo de latencia durante el que puede que la informacin OLAP no coincida con los datos de origen actuales. Como caracterstica del almacenamiento MOLAP podemos desatacar: Provee excelente rendimiento y compresin de datos. Tiene mejor tiempo de respuesta, dependiendo solo del porcentaje de las agregaciones del cubo. La estructura est muy optimizada para maximizar el rendimiento de las consultas. En general este mtodo, es muy apropiado para cubos con uso frecuente por su rpida respuesta.

AGREGACIONES Y DATOS

Base de Datos Relacional Base de Datos Multidimensional

Vista de Usuario

4.2.2.

ROLAP

En un modelo ROLAP (OLAP Relacional) toda la informacin del cubo, sus datos, su agregacin, sumas, etc., son almacenados en una base de datos relacional. A diferencia del modo de almacenamiento MOLAP, ROLAP no almacena copia de la base de datos, accede a las tablas originales cuando necesita responder a las consultas, generalmente es mucho ms lenta que las otras estrategias de almacenamiento (MOLAP o HOLAP). ROLAP se utiliza para ahorrar espacio de almacenamiento cuando se trabaja con grandes conjuntos de datos que se consultan con poca frecuencia; por ejemplo, datos exclusivamente histricos. Los usos comunes de este esquema son:
Pgina 3 de 15

Cuando los clientes desean ver los cambios inmediatamente. Cuando contamos con grandes conjuntos de datos que frecuentemente buscados AGREGACIONES Y DATOS no son

Base de Datos Relacional

Base de Datos Multidimensional

Vista de Usuario

4.2.3.

HOLAP

HOLAP (OLAP hbrido) combina atributos de MOLAP y ROLAP. Al igual que MOLAP, HOLAP hace que las agregaciones se almacenen en una estructura multidimensional, y los datos a nivel de detalle, en una base de datos relacional como lo hace el almacenamiento ROLAP. Para procedimientos de bsqueda que accedan datos sumarizados, HOLAP es equivalente a MOLAP. Por el contrario, si los procesos de consultas accedieran a los mximos niveles de detalle, deberan recuperar los datos de la base de datos relacional y esto no seria tan rpido comparado con una estructura MOLAP. Los cubos almacenados como HOLAP, son ms pequeos que los MOLAP y responden ms rpidos que los ROLAP. Usos comunes de HOLAP Cubos que requieren rpida respuesta Cuando existen sumarizaciones basadas en una gran cantidad de datos de origen. Solucin de compromiso para bajar el espacio ocupado sin perjudicar totalmente el rendimiento de las consultas.

Pgina 4 de 15

DATOS

AGREGACIONES

Base de Datos Relacional

Base de Datos Multidimensional

Vista de Usuario

Debemos tener en cuenta que si los usuarios generan consultas que deben utilizar los datos del nivel mas bajo HOLAP no suele ser la mejor opcin

Ejemplo del operador telefnico. Supongamos que: Se miden las llamadas realizadas x Da y x Cliente. El tiempo se estructura en Da Mes Ao. Los Clientes se estructuran en Cliente Ciudad Pas. Definicin MOLAP Llamadas para un Da y EM Cliente Suma de llamadas para algn cruce de Cliente Tiempo donde al menos uno de las dos dimensiones EM no est en el mnimo nivel. (Cliente y Mes Ao, Da y Ciudad o Pas, etctera) EM = Estructura Multidimensional BR = Base de Datos Relacional Datos detallados Datos sumarizados ROLAP BR HOLAP BR

BR

EM

Pgina 5 de 15

MOLAP Almacenamiento Modelo de las Multidimen Agregaciones sional Almacenamiento Modelo de los Multidimen datos sional Facilidad de Creacin Velocidad de respuesta Sencillo Buena

ROLAP Base de datos relacional Base de datos relacional Muy Sencillo Regular o Baja

HOLAP Modelo Multidimensiona l Base de datos relacional Sencillo Buena para consultas que posean agregaciones, Regular para datos de bajo nivel

Escalabilidad

Problemas de escalabilid ad Cubos con uso frecuente

Son ms escalables Datos que no son Si el cubo requiere frecuenteme una rpida nte usados respuesta

Recomendados para

Ventajas Mejor performance en los tiempos de respuesta

Desventajas Duplica el almacenamiento de datos (ocupa ms espacio) Tiempo de Latencia

MOLAP

ROLAP

Ahorra espacio de almacenamiento. til cuando se trabaja con muy grandes conjuntos de datos.

El tiempo de respuesta a consultas es mayor.

Pgina 6 de 15

HOLAP

Volmenes de datos ms Buen tiempo de respuesta slo para grandes en la base de datos informacin sumarizada relacional

MOLAP es un OLAP basado en el acceso a una base de datos multidimensional ROLAP es un OLAP basado en el acceso a una base de datos relacional HOLAP es un OLAP situado entre ROLAP y MOLAP, accede a la Multidimensional y a la Relacional.

4.3. Definicin de Agregaciones


Otro factor para considerar en la implementacin del modelo OLAP, adems del modo de almacenamiento, es la definicin del porcentaje de agregaciones. Se denomina agregacin al proceso de precalcular el clculo de los datos a travs de los niveles, para disminuir los tiempos de respuestas en los procesos de bsquedas de informacin. El porcentaje de agregacin da idea de la proporcin o profundidad hasta la que se realizarn los preclculos. Las agregaciones se almacenan en la estructura multidimensional (segn el modo de almacenamiento que escogimos). Las agregaciones son resmenes de datos precalculados que mejoran el tiempo de respuesta por el simple hecho de tener preparadas las respuestas antes de que se planteen las consultas.

Cuando definamos agregaciones debemos tener en cuenta de especificar las restricciones de almacenamiento y de porcentaje de agregacin, a fin de lograr una buena solucin de compromiso entre el tiempo de respuesta a las consultas y los requisitos de almacenamiento. Si calculramos todas las agregaciones posibles necesitaremos gran cantidad de tiempo de procesamiento y espacio de almacenamiento. Si por el contrario, no se precalculan agregaciones (0%), la cantidad de espacio de almacenamiento que se necesita se reduce al mnimo, pero el tiempo de respuesta aumenta.
Pgina 7 de 15

Por lo tanto, suele existir un equilibrio entre el espacio de almacenamiento, el porcentaje de posibles agregaciones que se precalculan y la performance requerida. En la figura mostramos la grafica de esta relacin:

En el grfico podemos observar que llega un punto en el cual ya no se consigue un aumento significativo en las agregaciones (debemos recordar que, en este contexto, aumentar las agregaciones el sinnimo de mejorar la performance en las consultas), a pesar de aumentar la cantidad de espacio de almacenamiento. Debemos escoger un porcentaje situado en la zona del punto A, donde logramos el mximo porcentaje de agregacin con la menor cantidad de espacio posible. Caractersticas de las agregaciones: Las agregaciones permiten mejorar los tiempos de respuesta Requieren de almacenamiento adicional Si no son controladas pueden provocar una explosin en los requisitos de almacenamiento

A mayor nmero de agregaciones ms tiempo de procesamiento y ms requerimiento de espacio A menor nmero de pre agregaciones peor tiempo de respuesta de las consultas

4.4. Procesamiento de cubos


En esta etapa debemos definir cuando y con que frecuencia procesar los cubos.

Pgina 8 de 15

Cuando se procesan Dimensiones o cubos se estn actualizando los datos, las estructuras multidimensionales o ambas cosas.

Esta definicin debe considerar los siguientes factores Modo de almacenamiento que escogimos (MOLAP-ROLAP-HOLAP), Tamao de la tabla de hechos (cantidad de registros) Numero de dimensiones del modelo Porcentaje de agregaciones Para determinar la frecuencia con que procesaremos el cubo debemos tener en cuenta lo analizado con el cliente respecto de la granularidad de los datos para el tiempo. EL nivel de detalle (da, mes, etctera) nos fijar la periodicidad de actualizacin de los datos. A diferencia de los sistemas OLTP en los que la actualizacin de los datos se realiza en lnea con las transacciones y la agregacin de los datos se realiza en el momento en que el usuario realiza una consulta, en OLAP el procesamiento de los cubos se realiza a contra turno, en los horarios en que no se afecta la tarea de los usuarios. En el sistema de trfico telefnico, si se reciben los datos de las llamadas una vez por semana, entonces deberamos procesar el cubo un da del fin de semana y de esa manera no afectaramos la tarea del usuario. Si en cambio, la informacin de las llamadas se recibe en forma diaria, el procesamiento se podra realizar una vez al da a ltima hora de la noche, o bien a primera hora de la maana.

4.5. Cubos Virtuales


Los cubos virtuales son vistas de cubos reales. Los cubos virtuales pueden ser utilizados: Cuando el usuario desee ver informacin conjunta de dos cubos diferentes. Cuando se quiere tener una visin parcial de un cubo. Es una forma de simplificar el manejo de la seguridad.

Pgina 9 de 15

En el sistema de trfico telefnico, se pueden querer relacionar las llamadas telefnicas con la cantidad de horas trabajadas. Una forma simple de cumplir con este requisito es crear un cubo virtual que tome datos de los cubos de Trfico y de RRHH.

4.6. Particiones
Los cubos estn compuestos por particiones. Como su nombre lo sugiere, una particin es una divisin o fraccionamiento de la informacin que conforma a un cubo. Cada cubo contiene al menos una particin, pero puede estar compuesto por mltiples particiones, Las particiones de un cubo son invisibles para el usuario, pero su uso aumenta la carga de trabajo del administrador del modelo multidimensional. Para cada particin podemos definir la fuente de datos, el modo de almacenamiento y el porcentaje de agregacin de manera independiente de las dems particiones. Adems, una particin de datos puede ser actualizada independientemente de las otras. Esta propiedad es muy importante ya que nos brinda la ventaja de mejorar los tiempos de procesamiento si dividimos correctamente las particiones y las procesamos adecuadamente. As, si dividimos nuestro cubo en particiones definiremos cada unos de estos parmetros de la manera mas indicada. Particin ms utilizada (Tiempo Actual): Modo de Almacenamiento MOLAP, % de Agregacin: alto Frecuencia de procesamiento: alta Particin medianamente consultada (Tiempos intermedios): Modo de Almacenamiento: HOLAP % de Agregacin: bajo Frecuencia de procesamiento: ocasional Particin poco accedida (Perodos viejos): Modo de Almacenamiento ROLAP, % de Agregacin: nulo Frecuencia de procesamiento: muy baja (normalmente slo al crear la particin)

Pgina 10 de 15

Desde el punto de vista de la administracin, se puede manejar cada particin como si fuera un cubo independiente. Puede tener fuente de datos, modo de almacenamiento, porcentaje de agregacin y frecuencia de procesamiento propios.

Podemos crear una particin por cada ao que contenga el cubo, (por ejemplo 2004, 2005 y 2006), y almacenar las particiones de la siguiente manera: Ao 2006: En una estructura MOLAP, con un alto porcentaje de agregaciones, para obtener una respuesta rpida a las consultas. Ao 2005: En una estructura HOLAP, con un bajo porcentaje de agregaciones, lo que permitir buenos tiempos de respuesta para consultas de resumen, con un espacio de almacenamiento mnimo. Aos anteriores: En una estructura ROLAP, con porcentaje de agregaciones cero, lo que nos ahorrar espacio de almacenamiento. Este ahorro se paga con el aumento del tiempo de respuesta, pero no es caro, porque las consultas son ocasionales.

Disear mal una particin, sin considerar los filtros que habitualmente utiliza el usuario, aumenta la carga de administracin y no mejora la performance de las consultas. Si la lgica que define las particiones no est correctamente diseada, se pueden perder o duplicar datos.

4.7. La difcil bsqueda del equilibrio


En el momento de implementar el cubo, debemos analizar en conjunto los siguientes factores, tratando de llegar a un punto de equilibrio. % de Preagregacin. Tiempo de Procesamiento. Requerimientos de tiempos de respuesta Tipo de almacenamiento

Pgina 11 de 15

Tipificacin de las consultas (Base para decidir si se manejan particiones) Uso de Particiones Tiempo de miento ProcesaRespuesta Tiempo de Respuesta Consultas Cambios Espacio Ocupado Manteni-miento

Accin

% Preagregaciones Almacenamiento MOLAP ROLAP HOLAP

X X X S

Alto Bajo Medio

Alto Bajo Medio

x Agenda Directo x Agenda

Alto Bajo Medio

Particiones

Caso de Estudio Veremos como implementamos el diseo del modelo de OLAP que desarrollamos en la unidad anterior.

Como vimos nuestro modelo era:

Pgina 12 de 15

Dimensin Vendedor Dimensin Producto Subcategora Subcategora

*
** *** Fact_Ventas

*
** *** **** *****

Familia Departamento Categora Subcategora Producto

Sucursal Seccin Vendedor

Categora Categora

Departamento Departamento

ID_Fecha ID_Producto ID_Cliente ID_Vendedor Ventas_Importe Ventas_Costo Ventas_Unidades

Dimensin Sucursal

*
** *** **** *****

Sucursal Tipo Sucursal Pas Provincia Ciudad

Familia Familia

Dimensin Tiempo

*
** *** **** *****

Dimensin Cliente Ao Semestre Trimestre Mes Da

*
** *** **** Social

Pas Provincia Ciudad Razn

A este modelo lo implementaremos sobre un cubo denominado Ventas.

Cubo Ventas

Teniendo en cuenta que nuestro cliente analiza su informacin con respecto a los periodos de tiempo, filtrando por ao, construiremos dos particiones dividiendo el cubo en forma anual. As, obtenemos una particin para el ao 2005 y otra para el ao 2006. Esta particin tiene como objeto dar soporte a consultas que se realizan con poca frecuencia, por lo que optamos por definir parmetros que permitan el ahorro de espacio ocupado, aceptando una performance ms baja. La particin para el ao 2005 tendr: Modo de almacenamiento: HOLAP Porcentaje de agregacin: 10% Frecuencia de procesamiento: La procesaremos en el momento de la

Pgina 13 de 15

2005

creacin y despus solo cuando el cliente lo solicite.

2006

Esta particin tiene como objeto dar soporte a las consultas que se realizan habitualmente, uno de los requerimientos bsicos es el tiempo de respuesta de las consultas, por lo que optamos por definir parmetros que apunten a obtener la mejor performance, aceptando el costo en espacio ocupado y tiempo de procesamiento. La particin del ao 2006 tendr:

Modo de almacenamiento: MOLAP Porcentaje de agregacin: 40% Frecuencia de procesamiento: El procesamiento se realizar diariamente a partir de las 22:00 hs. ya que sabemos que los usuarios no realizan consultas en ese horario. No es necesaria la creacin de un cubo virtual para poder visualizar las dos particiones. Desde el punto de vista del acceso para las consultas, las particiones son transparentes para el usuario , quien define al cubo como su fuente de datos sin tener en cuenta la forma en que est construido.

Existen distintos modos de almacenamiento de los datos y agregaciones de un cubo, deberemos seleccionar uno de ellos segn las necesidades y posibilidades de nuestra organizacin. Es conveniente emplear particiones cuando existen grandes volmenes de datos con fin de lograr mejoras en los tiempos de procesamiento y la resolucin de las consultas. Utilizaremos cubos virtuales cuando el data mart necesite relacionar informacin de distintos cubos.

Pgina 14 de 15

Los tiempos de respuesta de las consultas son un factor clave? Se tienen definidos valores mnimos o mximos a cumplir? Est estimado el volumen de datos a manejar, tanto en la actualidad como en el futuro? La frecuencia y el tiempo de procesamiento, son factores crticos? Se cuenta con el equipamiento adecuado para la situacin actual y la estimacin futura? Se consider este factor relacionndolo con el almacenamiento y la velocidad de procesamiento? Existen criterios predefinidos para la definicin del % de pre agregacin? Ser necesaria la creacin de cubos virtuales? Se tiene una clara idea de la cantidad y calidad de las consultas habituales? Existe algn patrn de filtrado que se repita, como el mes o la ciudad?

Pgina 15 de 15