Creación de un Modelo
OLAP
Es una estructura lógica que describe el plan
comercial general. El modelo toma la forma de un esquema estrella, que
representa la relación entre sus componentes con una estructura en estrella. En el centro del esquema se encuentra una
tabla de hechos, que contiene los datos reales que desea utilizar, como por
ejemplo las cifras de las ventas de productos.
De la tabla de hechos salen las tablas de
mediciones que contienen los datos que definen las dimensiones OLAP, como por
ejemplo números de cuentas, meses, nombres de productos.
Una vez iniciada la interfaz del escritorio
de integración server, se debe conectar a los metadatos del catalogo OLAP. Modelo OLAP IBM DB2 OLAP SERVER
Luego de esta se debe
iniciar el asistente de modelos OLAP y conectar a la base de datos de DB2 que
contiene la fuente de datos.
Selección de la Tabla de Hechos
Cada modelo necesita una tabla de hechos que es el
centro del esquema estrella. La dimensión Accounts contiene los datos numéricos
que desea analizar y de las cuales desea hacer un seguimiento a lo largo del
tiempo, como por ejemplo; ventas o inventarios, estos datos también reciben el
nombre de datos de medidas variables y permiten una contabilidad inteligente
durante el proceso analítico en línea.
Creación de
Dimensiones
Unión de la Tabla de Mediciones
El esquema estrella representa las relaciones
entre la tabla de hechos y las otras dimensiones del modelo. Se puede definir
la estructura del esquema en estrella mediante uniones entre las tablas de
mediciones y la tabla de hechos. La parte izquierda de la pagina Fact Table
Joins lista todas las dimensiones del modelo.La parte derecha muestra las columnas que se unen
entre las tablas de mediciones y la tabla de hechos, si existe una unión.
Creación de Herencia
Guardar Modelo OLAP
Referencias: Procesamiento analítico en-línea (OLAP). Nadia Farías A. nlfarias@hotmail.com, Paula Pérez C. paulalittrel@hotmail.com, Pilar Opazo G. pili.opazo@hotmail.com. Escuela de Ingeniería Comercial CHILE
Herramienta OLAP Mondrian
Mondrian nos permite emular una base multidimensional.
Permitiéndonos así realizar consultas en lenguaje MDX, pensando en términos de
cubos, hechos, dimensiones y valores en lugar de tablas, registros y campos.
La base relacional debe ser diseñada cuidadosamente de modo que sobre
ella se pueda hacer el mapeo. Las estructuras comúnmente usadas son tres:
- Una única tabla para el cubo donde existe un registro por cada hecho (por ejemplo, un registro por cada venta). El registro tendrá un código único, un campo o más por cada dimensión y un campo por cada valor del hecho (un campo con el importe de la venta, otro con la cantidad de artículos vendidos, etc.).
- Una estructura de estrella. Con una tabla central de hechos donde está el código único del mismo y los valores correspondientes, y varias tablas periféricas, una por cada dimensión. Los registros de la tabla central se relacionan con los registros de las tablas periféricas de un modo "muchos a uno", por lo tanto la tabla central posee además una clave foránea por dimensión.
- Una estructura de copo de nieve. No muy alejada de la estrella, pero busca quitar relaciones de la tabla central para ahorrar espacio.
Para mostrar un ejemplo de mapeo, supongamos un cubo llamado
"Ventas" que posee todas las ventas de una pequeña cadena de
mercados. Este cubo tendrá tres dimensiones: "Rubro",
"Sucursal" y "Tiempo", y también un valor, el
"Importe" de la venta. Previamente crearíamos una base de datos en
algún servidor que tenga conectividad con JDBC, por ejemplo MySQL. Nuestra arquitectura
será la típica estrella, con la tabla de hechos "venta" y una tabla
adicional por cada dimensión.
Así las sentencias que crearán la base serán las siguientes:
Así las sentencias que crearán la base serán las siguientes:
create database olapmercado;
create table venta (id integer primary key,
rubro_id integer,
sucursal_id integer, tiempo_id integer, importe double);
create table rubro (id integer primary key, nombre
char(20));
create table sucursal (id integer primary key,
nombre char(20));
create table tiempo (id integer primary key, anio
integer, mes integer);
Estas tablas deben ser llenadas. Probablemente queramos hacerlo con datos que se encuentran en algún otro sistema. Por eso debemos crear un script o programita que extraiga, transforme y cargue los datos (ETL), y que lo haga periodicamente, por ejemplo todas las semanas o todos los meses.
Para mapear el cubo con la tabla, creamos un archivo llamado "olapmercado.xml" con el siguiente contenido:
<?xml version="1.0"?>
<Schema name="olapmercado">
<Dimension name="Rubro">
<Hierarchy hasAll="true" allMemberName="Todos"
primaryKey="id">
<Table name="rubro"/>
<Level name="Rubro" column="nombre"/>
</Hierarchy>
</Dimension>
<Dimension name="Sucursal">
<Hierarchy hasAll="true" allMemberName="Todas"
primaryKey="id">
<Table name="sucursal"/>
<Level name="Sucursal" column="nombre"/>
</Hierarchy>
</Dimension>
<Dimension name="Tiempo">
<Hierarchy hasAll="true" allMemberName="Total"
primaryKey="id">
<Table name="tiempo"/>
<Level name="Anio" column="anio"/>
<Level name="Mes" column="mes"/>
</Hierarchy>
</Dimension>
<Cube
name="Ventas">
<Table
name="venta"/>
<DimensionUsage name="Rubro" source="Rubro"
foreignKey="rubro_id"/>
<DimensionUsage
name="Sucursal" source="Sucursal"
foreignKey="sucursal_id"/>
<DimensionUsage name="Tiempo" source="Tiempo"
foreignKey="tiempo_id"/>
<Measure name="Importe" column="importe"
aggregator="sum" formatString="#,##0.00"/>
</Cube>
</Schema>
Una vez hecho esto, ya estamos en condiciones de poder utilizar la API de Mondrian, basada en JDBC, para conectarnos a la base, ejecutar consultas MDX y obtener resultados.
Ligas de interés
No hay comentarios.:
Publicar un comentario