Estas slides fueron presentadas en el evento OpenBI Day, organizado por Inacap en octubre del año 2013.
El objetivo de esta presentación fue mostrar las distintas técnicas que existen para diseñar cubos eficientes en función del tiempo de respuesta de las consultas, facilidad de administración de los ambientes y nivel de dificultad en resolver problemas de negocios.
Introducción a DataWarehouse e Inteligencia de Negocios
Diseño eficiente de un cubo para resolver problemas en las áreas de negocio
1. Diseño eficiente de un cubo para resolver
problemas en las áreas de negocio.
Presentación OpenBI Day, Octubre 2013.
Sebastián Rodríguez Robotham
srodriguez@easybi.cl
www.EasyBI.cl
1
3. Conceptos Generales
Alcance
Esta presentación está basada en el diseño de cubos
para modelos de negocio empresariales sobre datos
de los sistemas transaccionales.
El objetivo de estos cubos es dar apoyo a la toma de
decisiones en los niveles operativos, tácticos y
estratégicos.
www.EasyBI.cl
3
4. Conceptos Generales
Referencia Bibliográfica
Ralph Kimball: The DataWarehouse Toolkit
Bill Inmon: Building the DataWarehouse
Salvador Ramos: Microsoft Business Intelligence: Vea el cubo Medio Lleno
Sebastián Rodríguez R.: EIAD, Estrategia para la Implementación Inteligente de DW
www.EasyBI.cl
4
6. Conceptos Generales
Modelo de Dato OLTP
Sucursal
Cliente
Ciudad
Factura
Sexo
Producto
Est. Civil
Det. Factura
www.EasyBI.cl
6
7. Conceptos Generales
Componentes del Cubo
Tabla de
Hechos
Almacena los indicadores del negocio (datos numéricos),
tanto básicos como elementos calculados.
Tabla de
Dimensiones
Almacena los datos descriptivos, por lo general son tablas con
un porcentaje muy bajo de filas en relación a las tablas de
Hechos, pero pueden contener muchas más columnas.
Una correcta y completa definición de campos en la tabla de
dimensiones puede ayudar a realizar análisis robusto sobre los
datos.
8. Conceptos Generales
Topología
Estrella
Las dimensiones se relacionan directamente con la tabla de
hechos.
Por lo general esta estrategia es utilizada cuando hay grandes
volúmenes de información y/o cuando existe un proceso
robusto de administración de Información.
Copo de
Nieve
Las dimensiones se pueden relacionar con las tablas de
hechos, o con otras dimensiones.
Esta estrategia es mejor para la administración directa en el
modelo de DW.
www.EasyBI.cl
8
9. Conceptos Generales
Tabla de
Dimensiones
Modelo de Datos OLAP – Estrella
Tabla de
Dimensiones
Cliente
Tabla de
Dimensiones
Sucursal
Ciudad
Tabla de
Hechos
Ventas
Tabla de
Dimensiones
Sexo
Tabla de
Dimensiones
Producto
Est. Civil
Fechas
Categoría
Producto
Tabla de
Dimensiones
www.EasyBI.cl
Tabla de
Dimensiones
Tabla de
Dimensiones
9
10. Conceptos Generales
Tabla de
Dimensiones
Modelo de Datos OLAP – Copo de Nieve
Sucursal
Ciudad
Tabla de
Dimensiones
Cliente
Tabla de
Hechos
Ventas
Tabla de
Dimensiones
Tabla de
Dimensiones
Tabla de
Dimensiones
Sexo
Producto
Fechas
Est. Civil
Categoría
Producto
Tabla de
Dimensiones
Tabla de
Dimensiones
www.EasyBI.cl
Tabla de
Dimensiones
10
12. Conceptos Generales
Cubos eficientes ¿Qué es Eficiente?
Se define como la capacidad de disponer de alguien o
de algo para conseguir un objetivo determinado con el
mínimo de recursos posibles viable
El diseño eficiente de un cubo puede variar para cada
empresa.
¿Cuáles son los recursos que debemos optimizar al
diseñar y poner en producción un cubo de información?
www.EasyBI.cl
12
13. Conceptos Generales
Cubos Eficientes
Eficiencia en T°
Respuesta
Ejes de un cubo
Eficiente
Eficiencia en
Administración
del Ambiente
Eficiencia en
Modelo
de Negocios
Calidad e Integridad de Información
www.EasyBI.cl
13
14. Cubos Eficientes
T° Respuesta
Como hacer que las consultas sean rápidas.
Elección del Motor de Base de Datos
•
•
•
•
•
RDBMS (Relational DataBase Management System), almacena en
ROLAP
Multidimensional (Almacena MOLAP, precálculos)
Columnar
InMemory
NoSQL
Optimización Hardware
Optimización BBDD
•
•
•
•
•
•
•
Tablas de Resumen
Revisión de Índices
Compresión de Información
Particionamiento Horizontal / Vertical / Sharding
Optimización Querys (Evitar cursores, joins)
Conocer el funcionamiento interno del motor
de base de datos (Optimizador).
Relación I/O Disco, Procesador, Uso Memoria.
www.EasyBI.cl
•
•
•
•
•
Discos Duros
Red
Procesadores
Memoria RAM / Cache
Sistemas Distribuidos
14
15. Cubos Eficientes
Administración del Ambiente
Muchos Origenes, Muchos Cubos… Simplificar la
administración en ambientes complejos
Técnicas para simplificar y controlar el ambiente
•
•
•
•
•
•
Muchas Fuentes: utilizar Staging y ODS
(Operational Data Store)
Muchos Cubos: utilizar BUS Arquitecture.
Muchos Usuarios: Diferenciar herramientas y
soluciones en nivel Operativo, Táctico y
Estratégico. Implementar control de accesos a
nivel de filas y columnas.
Muchos Procesos: Control de Tiempos de
Procesos, Realizar Backup de fuentes
automáticos.
Otras Consideraciones: Alta Disponibilidad, DW
Operativo, Recuperación de Desastres.
EIAD.
www.EasyBI.cl
15
16. Cubos Eficientes
Administración del Ambiente
Muchas Fuentes, Muchos Cubos
Bus Arquitecture
Cubo 1 Cubo 2 Cubo 3
Dim 1
X
www.EasyBI.cl
Dim 3
X
X
X
Dim 2
X
X
X
16
17. Cubos Eficientes
Modelo de Negocio.
Como dar respuesta a las preguntas de negocio para los
niveles operativos, tácticos y estratégicos.
Posibles Preguntas: Distintos Niveles
•
Tipo de Información Requerida
•
•
Histórica: Necesito ver las ventas del año pasado
por Ciudad… ¿Cuál Ciudad quiere ver?
a. Ciudad actual del cliente
b. Ciudad anterior del cliente
c. Ciudad del cliente cuando realizó la compra
d. Ciudad donde se encuentra la sucursal
Cálculos: ¿Cuántas compras realizan los clientes
fuera de su ciudad de residencia?
a. Mantener identificado los clientes que
compran en ciudades diferentes a su
residencia.
•
•
www.EasyBI.cl
Nivel Estratégico: Busca pocos indicadores,
pero que son clave para la gestión global de
la empresa.
Ejemplo: Como van las ventas del mes.
Nivel Táctico: Necesita indicadores de
comportamiento y evolutivos para tomar
acciones sobre la información.
Ejemplo: Qué % de clientes nuevos hay en el
mes y qué % de clientes habituales no han
comprado.
Nivel Operativo: Necesita el detalle máximo
de información disponible para realizar
acciones sobre los datos recopilados.
Ejemplo: Qué clientes habituales no han
comprado este mes.
17
19. Técnicas de Diseño de Cubos
Tipos de Tablas de Hechos.
SnapShot
Cada período se agrega un registro para la entidad, sin
remplazar ni modificar la foto del período anterior. Ejemplo:
Balances, Estados de Resultados.
Periodo_Id
Producto_Id
Monto_Ventas
20100301
1003
10358
20100401
1003
15776
20100501
1003
43335
www.EasyBI.cl
19
20. Técnicas de Diseño de Cubos
Tipos de Tablas de Hechos.
Transaccional
Un registro por cada evento, que ocurre en una fecha
determinada. Solo se pueden hacer inserciones.
Ejemplo: Sistemas de Ventas.
NumFactura
FechaVenta
Producto_Id
Cantidad
ValorUnitario
334532
20130524
1003
3
5664
334532
20130524
1004
6
4598
452235
20130319
1003
1
5664
www.EasyBI.cl
20
21. Técnicas de Diseño de Cubos
Tipos de Tablas de Hechos.
Incremental
Un registro por cada ocurrencia, pero la fila contiene
múltiples fechas que indica el cambio de estados. A diferencia
de los anteriores, en este tipo de estructuras se puede
insertar y actualizar los registros. Ejemplo: WorkFlow, Ticket
de Soporte.
Num
Soporte
FechaH
Solicitud
FechaH
Contacto
FechaH
InicioTrabajo
FechaH
Resolucion
FechaH
Revision
FechaH
Cierre
479
20130524 10:00
20130524 12:30
20130524 12:34
480
20130524 10:05
481
20130524 10:07
20130524 11:26
Num
Soporte
FechaH
Solicitud
FechaH
Contacto
FechaH
InicioTrabajo
FechaH
Resolucion
FechaH
Revision
FechaH
Cierre
479
20130524 10:00
20130524 12:30
20130524 12:34
20130526 17:34
20130527 08:15
480
20130524 10:05
20130526 13:45
481
20130524 10:07
20130524 11:26
www.EasyBI.cl
20130525 12:42
21
22. Técnicas de Diseño de Cubos: Dimensiones
Modelo Estrella de Ejemplo
Cliente
Fechas
N° Dimensiones
óptimas
entre 5 a 15
Ciudad
Sucursal
Ventas
Sexo
Producto
Est. Civil
Categoría
Producto
www.EasyBI.cl
22
23. Técnicas de Diseño de Cubos: Dimensiones
Optimizar Rendimiento de consultas (T°)
Dimensión
Compuesta
Junta varias dimensiones en una sola, el objetivo principal es
mejorar el rendimiento de la solución. Ejemplo: Tabla de
clientes del modelo ejemplo.
Sucursal
Cliente (incluye
Ciudad, Sexo,
Est. Civil)
Cat. Producto
Cliente
Producto
Sucursal (Incluye
Ciudad)
Ciudad
Ventas
Ventas
Sexo
Est. Civil
Producto
(Incluye Cat.)
Fechas
Fechas
Ventajas
• Optimiza T° Respuesta
• Simplifica Modelo para Usuario Final
Desventajas
• Aumenta Almacenamiento (no relevante)
• Complejiza Proceso de Carga del Cubo
www.EasyBI.cl
23
24. Técnicas de Diseño de Cubos: Dimensiones
Optimizar Rendimiento de consultas (Espacio)
Factorizar
(Tabla Hechos o
Dimensión)
Cuando hay mucha información repetida en una tabla de Hechos, es
posible quitar esta información y “Factorizarla” en una tabla de
dimensión. Esto minimiza el espacio utilizado por al tabla de Hechos y
mejora el análisis sobre los datos. Los campos candidatos son aquellos
con baja cardinalidad.
Comportamiento
Tabla de Hechos “Ventas”
Num
Factura
Paga
Debito
Paga
Credito
Pide
Vuelto
1
0
1
1
0
334539
0
1
0
0
0
452235
0
1
0
0
0
657782
Sucursal
(Incluye
Ciudad)
Paga
Efectivo
334532
Cliente
(incluye
Ciudad,
Sexo, Est.
Civil)
Primera
Compra
0
1
0
0
0
Ventas
Num
Factura
334532
Fechas
1
334539
Producto
(Incluye Cat.)
Comporta
Miento
2
452235
2
657782
2 www.EasyBI.cl
Id
Primera
Compra
Paga
Efectivo
Paga
Debito
Paga
Credito
Pide
Vuelto
1
1
0
1
1
0
2
0
1
0
0
0
24
25. Técnicas de Diseño de Cubos: Dimensiones
Optimizar Rendimiento de consultas (Negocio)
Dimensión de
Roles
Cuando hay varios campos que hace referencia a la misma dimensión,
pero con conceptos diferentes.
Tabla de Hechos “Ventas”
Num
Factura
Sucursal
(Incluye
Ciudad)
Ventas
Producto
(Incluye Cat.)
Fecha
Despacho
1
20130524
20130529
334539
2
20130525
20130526
452235
2
20130319
20130401
657782
Cliente
(incluye
Ciudad,
Sexo, Est.
Civil)
Fecha
Venta
334532
Comportamiento
Comporta
Miento
2
20130407
20130424
FechaVenta
Fechas
FechaDespacho
www.EasyBI.cl
25
26. Técnicas de Diseño de Cubos: Dimensiones
Optimizar Rendimiento de consultas (Negocio)
Súper
Dimensión
Cuando es necesario juntar dos dimensiones para generar cálculos
que de otra forma sería difícil de administrar.
Tabla de Hechos “Ventas”
Num
Factura
Cliente (incluye
Ciudad, Sexo,
Est. Civil)
Sucursal
(Incluye
Ciudad)
Fecha
Despacho
Cod
Distancia
1
20130524
20130529
1
334539
2
20130525
20130526
2
452235
2
20130319
20130401
2
657782
2
20130407
20130424
3
Dimensión Ciudad Distancia
Cod
Distancia
Distancia
Venta
Fechas
Ciudad
Venta
Ciudad
Cliente
DistanciaKM
1
Ventas
Producto
(Incluye Cat.)
Fecha
Venta
334532
Comportamiento
Comp
01
01
0
2
02
01
10
3
03
05
15
www.EasyBI.cl
26
27. Técnicas de Diseño de Cubos: Dimensiones
Slow Changing Dimension: Información Histórica (Negocio)
SCD N° 1
Sobrescribir la información de la dimensión.
No existe referencia histórica de los datos en la dimensión.
Cliente (incluye
Ciudad, Sexo,
Est. Civil)
Comportamiento
Distancia
Venta
Sucursal
(Incluye
Ciudad)
Ventas
Cliente_Id
Producto
(Incluye Cat.)
EstadoCivil
Ciudad_Id
Sexo
479
Fechas
Nombre
Juan Pérez
Casado
10
Masculino
480
Miguel Donoso
Soltero
10
Masculino
481
Francisca Silva
Soltera
55
Femenino
www.EasyBI.cl
27
28. Técnicas de Diseño de Cubos: Dimensiones
Slow Changing Dimension: Información Histórica (Negocio)
SCD N°2
Comportamiento
Distancia
Venta
Sucursal
(Incluye
Ciudad)
La clave de la dimensión es compuesta, registra, por cada
cambio en la fila de la dimensión (o los campos que sean
relevantes), un nuevo registro.
Cliente (incluye
Ciudad, Sexo,
Est. Civil)
ClienteId
Ventas
Id
Interno
Nombre
EstadoCivil
Ciudad_Id
Sexo
479
Producto
(Incluye Cat.)
Juan Pérez
Casado
10
Masculino
479
4
Juan Pérez
Casado
12
Masculino
480
Fechas
1
2
Miguel Donoso
Soltero
10
Masculino
480
5
Miguel Donoso
Casado
15
Masculino
481
3
Francisca Silva
Soltera
55
Femenino
www.EasyBI.cl
28
29. Técnicas de Diseño de Cubos: Dimensiones
Slow Changing Dimension: Información Histórica (Negocio)
SCD N° 3
Agregar una columna adicional por cada columna cuyo valor
queremos mantener en la historia.
Cliente (incluye
Ciudad, Sexo,
Est. Civil)
Comportamiento
Distancia
Venta
Sucursal
(Incluye
Ciudad)
Ventas
Estado
Civil
Estado
Civil Ant
Ciudad_
Id
Ciudad_Id
Ant
Sexo
Juan Pérez
Casado
NULL
12
10
Masculin
o
480
Fechas
Nombre
479
Producto
(Incluye Cat.)
Cliente_
Id
Miguel Donoso
Casado
Soltero
15
10
Masculin
o
481
Francisca Silva
Soltera
NULL
55
NULL
Femenin
o
www.EasyBI.cl
29
30. Técnicas de Diseño de Cubos: Dimensiones
Modelos de datos complejos: “Constelaciones”
Dim 1
Dim 2
Hechos 1
Dim 3
Dim 7
Dim 5
Hechos 2
Hechos 2
Dim 6
Dim 4
www.EasyBI.cl
30
32. Conclusiones
Modelos óptimos depende de cada empresa
En función de los objetivos que persigue cada gerencia y recursos
disponibles.
Varias iteraciones, diseños dinámicos
Los diseños cambian constantemente en función de los requerimientos
del negocio y nuevas vistas solicitadas por los usuarios del DW.
www.EasyBI.cl
32