32
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 [email protected] www.EasyBI.cl 1

Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

Diseño eficiente de un cubo para resolver problemas en las áreas de negocio.

Presentación OpenBI Day, Octubre 2013.

Sebastián Rodríguez [email protected]

www.EasyBI.cl 1

Page 2: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 2

Conceptos Generales

Page 3: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 3

Conceptos GeneralesAlcance

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.

Page 4: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 4

Conceptos GeneralesReferencia Bibliográfica

Ralph Kimball: The DataWarehouse ToolkitBill Inmon: Building the DataWarehouseSalvador Ramos: Microsoft Business Intelligence: Vea el cubo Medio LlenoSebastián Rodríguez R.: EIAD, Estrategia para la Implementación Inteligente de DW

Page 5: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 5

Conceptos Generales

Transacciones

Fundamentos.

Registrar y Controlar (OLTP)

VentasInventarios

ContabilidadRecursos Humanos

Etc-

Velocidad de TransacciónIntegridad de Información

Evitar Redundancias“3ª Forma Normal”

On-Line Transaction Processing

Analizar y Evaluar (OLAP)

Velocidad de ConsultasApoyo Toma de Decisiones

“Desnormalizado”

On-Line Analytical Processing

Page 6: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 6

Conceptos GeneralesModelo de Dato OLTP

Factura

Cliente

Det. Factura

Producto

Ciudad

Sexo

Est. Civil

Sucursal

Page 7: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

Conceptos GeneralesComponentes del Cubo

Tabla de Hechos

Tabla de Dimensiones

Almacena los indicadores del negocio (datos numéricos), tanto básicos como elementos calculados.

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.

Page 8: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 8

Conceptos GeneralesTopología

Estrella

Copo de Nieve

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.

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.

Page 9: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 9

Conceptos GeneralesModelo de Datos OLAP – Estrella

Ventas

Sucursal

Tabla de Hechos

Tabla de Dimensiones

Fechas

Tabla de Dimensiones

Cliente

Ciudad

Sexo

Est. Civil

Tabla de Dimensiones

Tabla de Dimensiones

Tabla de Dimensiones

Tabla de Dimensiones

Producto

Tabla de Dimensiones

Categoría Producto Tabla de

Dimensiones

Page 10: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 10

Conceptos GeneralesModelo de Datos OLAP – Copo de Nieve

Ventas

Cliente

Producto

Ciudad

Sexo

Est. Civil

Sucursal Tabla de Dimensiones

Tabla de Dimensiones

Tabla de Dimensiones

Tabla de Dimensiones

Tabla de Dimensiones

Tabla de Dimensiones

Tabla de Hechos

Fechas

Tabla de Dimensiones

Categoría Producto Tabla de

Dimensiones

Page 11: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 11

Conceptos de Eficiencia

Page 12: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 12

Conceptos GeneralesCubos 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

¿Cuáles son los recursos que debemos optimizar al diseñar y poner en producción un cubo de información?

El diseño eficiente de un cubo puede variar para cada empresa.

Page 13: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 13

Conceptos GeneralesCubos Eficientes

Ejes de un cubo Eficiente

Eficiencia en T° Respuesta

Eficiencia en Administracióndel Ambiente

Eficiencia en Modelo

de Negocios

Calidad e Integridad de Información

Page 14: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 14

Cubos EficientesT° Respuesta

Como hacer que las consultas sean rápidas.

• RDBMS (Relational DataBase Management System), almacena en ROLAP

• Multidimensional (Almacena MOLAP, precálculos)• Columnar• InMemory• NoSQL

Elección del Motor de Base de Datos

• 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.

Optimización BBDD• Discos Duros• Red• Procesadores• Memoria RAM / Cache• Sistemas Distribuidos

Optimización Hardware

Page 15: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 15

Cubos EficientesAdministración del Ambiente

Muchos Origenes, Muchos Cubos… Simplificar la administración en ambientes complejos

• 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.

Técnicas para simplificar y controlar el ambiente

Page 16: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 16

Cubos EficientesAdministración del Ambiente

Muchas Fuentes, Muchos Cubos

Cubo 1 Cubo 2 Cubo 3

Dim 1 X X X

Dim 2 X X

Dim 3 X X

Bus Arquitecture

Page 17: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 17

Cubos EficientesModelo de Negocio.

Como dar respuesta a las preguntas de negocio para los niveles operativos, tácticos y estratégicos.

• 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.

Posibles Preguntas: Distintos Niveles

• Histórica: Necesito ver las ventas del año pasado por Ciudad… ¿Cuál Ciudad quiere ver?

a. Ciudad actual del clienteb. Ciudad anterior del clientec. Ciudad del cliente cuando realizó la comprad. 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.

Tipo de Información Requerida

Page 18: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 18

Técnicas de Diseño de

Cubos

Page 19: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 19

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

Técnicas de Diseño de Cubos

Page 20: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 20

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

Técnicas de Diseño de Cubos

Page 21: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 21

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.

NumSoporte

FechaHSolicitud

FechaHContacto

FechaHInicioTrabajo

FechaHResolucion

FechaHRevision

FechaHCierre

479 20130524 10:00 20130524 12:30 20130524 12:34

480 20130524 10:05

481 20130524 10:07 20130524 11:26

NumSoporte

FechaHSolicitud

FechaHContacto

FechaHInicioTrabajo

FechaHResolucion

FechaHRevision

FechaHCierre

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 20130525 12:42

Técnicas de Diseño de Cubos

Page 22: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 22

Técnicas de Diseño de Cubos: DimensionesModelo Estrella de Ejemplo

Ventas

Cliente

Producto

Ciudad

Sexo

Est. Civil

Sucursal

Fechas

N° Dimensiones óptimas

entre 5 a 15

Categoría Producto

Page 23: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 23

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.

Técnicas de Diseño de Cubos: Dimensiones

Ventas

ProductoCiudad

Sexo

Est. Civil

Sucursal

Cliente

Ventas

Producto (Incluye Cat.)

Sucursal (Incluye Ciudad)

Cliente (incluye Ciudad, Sexo,

Est. Civil)

Ventajas• Optimiza T° Respuesta• Simplifica Modelo para Usuario Final

Desventajas• Aumenta Almacenamiento (no relevante)• Complejiza Proceso de Carga del Cubo

Fechas

Fechas

Cat. Producto

Page 24: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 24

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.

Técnicas de Diseño de Cubos: Dimensiones

Ventas

Producto (Incluye Cat.)

Sucursal (Incluye Ciudad)

Cliente (incluye Ciudad,

Sexo, Est. Civil)

Fechas

NumFactura

PrimeraCompra

PagaEfectivo

PagaDebito

PagaCredito

PideVuelto

334532 1 0 1 1 0

334539 0 1 0 0 0

452235 0 1 0 0 0

657782 0 1 0 0 0

NumFactura

ComportaMiento

334532 1

334539 2

452235 2

657782 2

Id PrimeraCompra

PagaEfectivo

PagaDebito

PagaCredito

PideVuelto

1 1 0 1 1 0

2 0 1 0 0 0

ComportamientoTabla de Hechos “Ventas”

Page 25: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 25

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.

Técnicas de Diseño de Cubos: Dimensiones

Ventas

Producto (Incluye Cat.)

Sucursal (Incluye Ciudad)

Cliente (incluye Ciudad,

Sexo, Est. Civil)

Fechas

NumFactura

ComportaMiento

Fecha Venta

Fecha Despacho

334532 1 20130524 20130529

334539 2 20130525 20130526

452235 2 20130319 20130401

657782 2 20130407 20130424

Comportamiento

Tabla de Hechos “Ventas”

FechaVenta

FechaDespacho

Page 26: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 26

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.

Técnicas de Diseño de Cubos: Dimensiones

Ventas

Producto (Incluye Cat.)

Sucursal (Incluye Ciudad)

Cliente (incluye Ciudad, Sexo,

Est. Civil)

Fechas

NumFactura

Comp Fecha Venta

Fecha Despacho

Cod Distancia

334532 1 20130524 20130529 1

334539 2 20130525 20130526 2

452235 2 20130319 20130401 2

657782 2 20130407 20130424 3

Comportamiento

Tabla de Hechos “Ventas”

Cod Distancia

CiudadVenta

CiudadCliente

DistanciaKM

1 01 01 0

2 02 01 10

3 03 05 15

Dimensión Ciudad Distancia

Distancia Venta

Page 27: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 27

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_Id Nombre EstadoCivil Ciudad_Id Sexo

479 Juan Pérez Casado 10 Masculino

480 Miguel Donoso Soltero 10 Masculino

481 Francisca Silva Soltera 55 Femenino

Técnicas de Diseño de Cubos: Dimensiones

Ventas

Producto (Incluye Cat.)

Sucursal (Incluye Ciudad)

Cliente (incluye Ciudad, Sexo,

Est. Civil)

Fechas

Comportamiento

Distancia Venta

Page 28: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 28

SCD N°2 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.

ClienteId IdInterno

Nombre EstadoCivil Ciudad_Id Sexo

479 1 Juan Pérez Casado 10 Masculino

479 4 Juan Pérez Casado 12 Masculino

480 2 Miguel Donoso Soltero 10 Masculino

480 5 Miguel Donoso Casado 15 Masculino

481 3 Francisca Silva Soltera 55 Femenino

Técnicas de Diseño de Cubos: DimensionesSlow Changing Dimension: Información Histórica (Negocio)

Ventas

Producto (Incluye Cat.)

Sucursal (Incluye Ciudad)

Cliente (incluye Ciudad, Sexo,

Est. Civil)

Fechas

Comportamiento

Distancia Venta

Page 29: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 29

SCD N° 3 Agregar una columna adicional por cada columna cuyo valor queremos mantener en la historia.

Cliente_Id

Nombre EstadoCivil

Estado Civil Ant

Ciudad_Id

Ciudad_IdAnt

Sexo

479 Juan Pérez Casado NULL 12 10 Masculino

480 Miguel Donoso Casado Soltero 15 10 Masculino

481 Francisca Silva Soltera NULL 55 NULL Femenino

Técnicas de Diseño de Cubos: DimensionesSlow Changing Dimension: Información Histórica (Negocio)

Ventas

Producto (Incluye Cat.)

Sucursal (Incluye Ciudad)

Cliente (incluye Ciudad, Sexo,

Est. Civil)

Fechas

Comportamiento

Distancia Venta

Page 30: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 30

Modelos de datos complejos: “Constelaciones”

Hechos 1

Dim 2

Dim 3

Dim 1

Hechos 2

Dim 5

Dim 4

Hechos 2

Dim 7

Dim 6

Técnicas de Diseño de Cubos: Dimensiones

Page 31: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 31

Conclusiones

Page 32: Diseño eficiente de un cubo para resolver problemas en las áreas de negocio

www.EasyBI.cl 32

Conclusiones

Modelos óptimos depende de cada empresaEn función de los objetivos que persigue cada gerencia y recursos disponibles.

Varias iteraciones, diseños dinámicosLos diseños cambian constantemente en función de los requerimientos del negocio y nuevas vistas solicitadas por los usuarios del DW.