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

5,419 views

Published on

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.

0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,419
On SlideShare
0
From Embeds
0
Number of Embeds
136
Actions
Shares
0
Downloads
262
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

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

  1. 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
  2. 2. Conceptos Generales www.EasyBI.cl 2
  3. 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. 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
  5. 5. Conceptos Generales Fundamentos. Transacciones Ventas Inventarios Contabilidad Recursos Humanos Etc- Registrar y Controlar (OLTP) Analizar y Evaluar (OLAP) Velocidad de Transacción Integridad de Información Evitar Redundancias “3ª Forma Normal” Velocidad de Consultas Apoyo Toma de Decisiones “Desnormalizado” On-Line Transaction Processing On-Line Analytical Processing www.EasyBI.cl 5
  6. 6. Conceptos Generales Modelo de Dato OLTP Sucursal Cliente Ciudad Factura Sexo Producto Est. Civil Det. Factura www.EasyBI.cl 6
  7. 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. 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. 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. 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
  11. 11. Conceptos de Eficiencia www.EasyBI.cl 11
  12. 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. 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. 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. 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. 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. 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
  18. 18. Técnicas de Diseño de Cubos www.EasyBI.cl 18
  19. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  31. 31. Conclusiones www.EasyBI.cl 31
  32. 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

×