Repositorios (data warehouses) OLAP Carlos Hurtado Larrain Profesor Asistente, Departamento de Ciencias de la Computación, Universidad de Chile
Contenido Motivación Nivel Lógico de un Repositorio OLAP Modelo Multidimensional Nivel Físico de un Repositorio OLAP Almacenamiento y Procesamiento de datos
Contenido Motivación Nivel Lógico de un Repositorio OLAP Modelo Multidimensional Nivel Físico de un Repositorio OLAP Almacenamiento y Procesamiento de datos
Principio de Independencia de los Datos 1960s: datos se manejaban con sistemas de archivos + operaciones de acceso 1970: noción de Independencia de los Datos (Ted Codd). Usuarios y aplicaciones no necesitan conocer las complejidades del almacenamiento físico de los datos Noción seminal para Bases de Datos (BD) y Sistemas Administradores de BDs.
Nivel Físico vs. Nivel Lógico Nivel Físico: Representación: bit, byte, campo, registro, archivo, bloque, cilindro, llave, dirección física, etc. Acceso: acceso secuencial, acceso directo, etc. Nivel Lógico: Representación: entidad, clase, relación, tabla, atributo, tupla, etc. Acceso: lenguaje de consulta (ej., SQL)
Nivel Lógico: Modelo de Datos Conceptos para imaginar datos Lenguaje para manipular y extraer datos Elija el de su preferencia: Jerárquico (IMS), Redes (IDS), Relacional,Orientado a Objetos (O2), Multidimensional (OLAP), Semiestructurado (XML), RDF (Web Semántica), etc, etc, etc.
Modelos de Datos: qué tienen en común? Registro: unidad atómica de información sobre el mundo. Juan Pérez 30 Nombre Edad Lo mismo que: entidad, tupla, objeto, etc.
Modelos de Datos: en qué se diferencian? Forma de agrupar registros: Conjuntos Modelo Relacional Grafo Modelo de Redes, Orientado a Objetos, XML, RDF, etc.
Conjuntos vs. Grafo
Conjuntos vs. Grafo Conjuntos: Orientado a encontrar grupos de registros Ejemplo: personas mayores que Juan Grafo: Orientado a encontrar conexiones de registros Ejemplo: árbol genealógico de Juan
Ejemplo Grafo : Modelo de Redes CODASYL (1971) Representación: registro lógico, enlace. Acceso: navegación recorriendo enlaces Variante: Modelo Jerárquico (IBM-IMS 1970)
Ejemplo Conjuntos : Modelo Relacional Ted Codd (1970) Representación: tupla, tabla. Acceso: conjuntos de tuplas a la vez (SQL) Modelo dominante en la actualidad Industria de Bases de Datos Relacionales en año 2004: $US 9000 millones (Gartner).
Ejemplo: Cadena de Supermercados Datos: Supermercados y sus descripciones Productos (SKU) y descripciones Precios de productos y promociones Transacciones de ventas en cada supermercado Proveedores y partes entregadas por ellos Inventario en bodegas y supermercado Ordenes de compra a proveedores, transacciones y facturas Programa clientes frecuentes, recursos humanos etc...
Cadena de Supermercados: Tablas Venta(SupId,ProdId,Precio,Cantidad,Fecha,CajaId) Supermercado(SupId, Area, DireccionId, AdminId,... ) Direccion(DireccionId, Calle, Numero, ComunaId,...) Comuna(ComunaId, AreaDeVentaId, RegionId, NumHabitantes,...) Region(RegionId, NumHabitantes, PaisId,...) Administrador(AdministradorId, Nombre, Sueldo, ContratoId,...) Contrato(ContratoId, Tipo, Texto,...)
Modelo Relacional: también necesitamos representar grafos Claves ajenas: Venta(SupId,ProdId,Precio,Cantidad,Fecha,CajaId) Supermercado(SupId, Area, DireccionId, AdminId,... ) Direccion(DireccionId, Calle, Numero, ComunaId,...)
Esquema de una BD Relacional
Por qué tantas tablas? BD soporta procesos ventas, compras de insumos, traspasos de bodegas, pagos, etc. BD optimizada para procesamiento transaccional en línea (OLTP) Normalizada Abundan BD productivas con cientos de tablas.
Consultas Analíticas No todo es transacciones, que sucede si queremos analizar tendencias: Ventas totales por semana, supermercado y tipo de producto. Productos más vendidos en los últimos dos meses. Clientes que compraron más el mes pasado....
Ejemplo: Ventas totales por país Select pais, SUM(Precio*Cantidad) From Venta, Supermercado, Direccion, Comuna, Region where Venta.SupId = Supermercado.SupId, Supermercado.DirId = Direccion.DirId, Direccion.ComunaId=Comuna.ComunaId, Comuna.RegionId=Region.RegionId Group By pais
Consulta Analítica en SQL Select T1.A1, T1.A2,..., Tn.Am, SUM(Tk.Ap) From T1,..., Tn where (Ti.Ai = Tj.Aj)* Group By T1.A1, T1.A2,..., Tn.An
Analista vs. Administrador BD Analista Consulta analítica Administrador BD Datos (reporte)
Ciclo Analista-Administrador BD Analista: recibe reporte y observa que ventas en semana 10/2002 son altas; quiere saber por qué. Solicita ventas por día en semana 10/2002. Administrador BD: programa nueva consulta y envia reporte Analista: analiza resultado y solicita otra consulta Administrador BD: programa consulta y entrega reporte Etc... etc... etc... etc
Ciclo Analista - Administrador BD (cont.) While (analista no enemigo de Administrador BD) do analista: analiza reporte actual y pide nuevo reporte administrador BD: programa nueva consulta y entrega reporte
Limitación del Modelo Relacional Complejidad para visualizar datos y formular consultas analíticas
Procesamiento Analítico en Línea (OLAP) (1) Consulta y visualización de datos de acuerdo al modelo de datos multidimensional
Historia de OLAP Pre-historia 80 s Bases de datos estadísticas (ej., Statistical Object Representation Model (STORM) Rafanelli y Shoshani) Agregación en SQL (SELECT-FROM-WHERE-GROUPBY) Despegue 1993. Codd et al. Providing OLAP to useranalysts: an IT mandate, Arborsoft. 1995. Gray et al. Data Cube: A relational Operator Generalizing Group-By, cross-tab and sub totals. 1996. Benchmark para OLAP (APB-1).
OLAP vs. OLTP
Repositorio (data warehouse) OLAP
Contenido Motivación Nivel Lógico de un Repositorio OLAP Modelo Multidimensional Nivel Físico de un Repositorio OLAP Almacenamiento y Procesamiento de datos Extracción Transformación y Carga
Modelo de Datos Multidimensional Datos describen un proceso, que se representa como: Dimensiones: Perspectivas que usamos para visualizar el proceso Hechos: Asignaciones de mediciones a puntos en espacios Formados por dimensiones
Ejemplo: Cadena de Supermercados Hecho: n unidades de un producto p fueron vendidas en una fecha d por x pesos en una tienda s. Dimensiones: Producto: código, descripción, marca, categoría, etc. Lugar: código, nombre, dirección, tipo, etc. Tiempo: fecha, día, semana, mes, semestre, año, etc. Medidas: Número de unidades Precio de Venta Costo
Ejemplo: Registro Meteorológico Hecho: en la latitud x, longitud y, altitud a y fecha d fue medida una temperatura t y presión p. Dimensiones: Latitud Longitud Altitud Fecha Medidas: Temperatura Presión
OLAP Relacional: Esquema Estrella
OLAP Relacional: Esquema Copo de Nieve
Conjuntos vs. Grafos en OLAP Necesitamos algo más que OLAP Relacional OLAP Multidimensional Dimensiones: Grafos: registros conectados Tablas de Hechos: Conjuntos de registros
Dimensión OLAP
Dimensión OLAP (irregular)
Importancia de Jerárquías Análisis de canasta en transacciones:
Importancia de Jerarquías (cont.)
Ejemplo: Modelo multidimensional de un Buscador Web
Consultas Analíticas sobre Modelo Multidimensional Inspeccionar las dimensiones Imponer una condición sobre las dimensiones Ejemplo: semestre = 1S97 Seleccionar atributos y categorías (granularidad) Seleccionar medidas y funciones de agregación Ejemplo: SUM(f.pesos) Observar el resultado e investigar por qué Nueva consulta...
Interfaz de Consulta OLAP
Interfaz de Consulta OLAP (cont.)
Operadores OLAP Roll-up: Cambiar una categoría en la granularidad por una categoría menos fina. Drill-down: inverso de Roll-Up. Navegación: sequencia de roll-ups y drilldowns Drill-across: cruzar más de una tabla de hechos
Operadores OLAP (cont.) Slice: imponer condiciones sobre las dimensiones Pivot: elegir atributos para la tabla de salida y cambiar la disposición de los atributos.
Gray et al. (1996) Cuboide: Cubo de Datos
Cubo de Datos (cont)
Grafo de Dependencia de un Cubo de Datos
Contenido Motivación Nivel Lógico de un Repositorio OLAP Modelo Multidimensional Nivel Físico de un Repositorio OLAP Almacenamiento y Procesamiento de datos Extracción Transformación y Carga
Procesamiento Analítico en Línea (OLAP) (1) Consulta y visualización de datos de acuerdo al Modelo Multidimensional y (2) Cálculo de respuestas en pocos segundos
Tamaño de Dimensiones y Hechos: Ejemplo Dimensión Tiempo: 2 años x 365 días = 730 días Dimensión Lugar: 100 supermercados Dimensión Producto: 30000 productos, 30000 ventas cada día en cada supermercado Tabla de hechos: 730 x 100 x 30000 = 2190 millones hechos Tamaño tabla de hechos: 2190 millones x 4 bytes x 6 = 52 GB
Cómo procesar consultas analíticas en pocos segundos? Un disco duro de 10 MB/seg vel. de transferencia tomaría 50 minutos sólo para calcular el total vendido por la cadena. Problema: el cálculo de una vista cúbica es proporcional al tamaño de la tabla de hechos que se accede.
Tamaño de un Cubo de Datos
Tamaño de un Cubo de Datos (cont.) Un cubo de datos puede tener hasta: E1 E2... En hechos, donde Ei es el número de elementos de la dimensión i. Tamaño del cubo es cercano a tamaño de tabla de hechos, si los datos son densos y la jerarquía se condensa fuertemente hacia arriba. En general puede ser MUCHO mayor Ejemplo: benchmark TPC/D, part customer supplier, la tabla de hechos tiene 6 millones de tuplas, el cubo tiene 19 millones.
Cálculo de un Cubo de Datos Algoritmo Básico (Gray et al. 1996): Leer la tabla de hechos y por cada tupla leida, actualizar las tuplas asociadas del cubo en cada cuboide Algoritmos Avanzados Algunos cuboides se pueden calcular de otros cuboides Podemos computar el cubo por niveles. Sólo sirven para cubos distributivos (ejemplo: SUM, MAX, MIN, etc)
Procesamiento de Consultas en OLAP Calcular y materializar completamente el cubo (no siempre es posible) Problema explosión del cubo. Costo de actualización Almacenar sólo la tabla de hechos base, computar los cuboides en tiempo de consulta Problema: computar un cuboide sobre dimensiones simple toma tiempo proporcional al tamaño de la tabla de hechos base Materializar sólo algunos cuboides y usar navegación de agregados (Harinaraya et al 1996)
Navegación en Agregados Derivar un cuboide requerido por el usuario a partir de otro(s) cuboide del cubo. Supongamos que queremos computar (All, Proveedor, All) en TPC-D Benchmark
Navegación en Agregados (cont.)
Navegación en Agregados y Grafo de Dependencia
Herramientas Servidor OLAP: procesamiento de consultas, almacenamiento de cubos Front-end: clientes OLAP, planillas de cálculo, visualización Back-End extracción, transformación y carga de datos (ETL) Otras: monitoreo, administración, etc.
Herramientas: Servidores OLAP Microsoft SQL Server Enterprise Edition OLAP Server IBM/DB2 OLAP Server Enterprise Edition Oracle 9i Enterprise Edition Express Server
Herramientas: Aplicaciones Medianas Cognos Brio Business Objects OLAPX Mondrian (código abierto)
Herramientas: ETL DataStage XE 6.0 Suite (Ascential Software) PowerCenter 6.0 (Informatica) Data Transformation Services 2000 (Microsoft)
Actualidad y Futuro de OLAP Extensiones del Modelo Multidimensional: Dimensiones irregulares, datos semiestructurados (XML). Diseño de Equemas Sistemas OLAP escalables
Diseño de Esquemas
Dimensiones Irregulares
Sistemas OLAP Escalables Ejemplo: Sistema T3 de Microsoft, EMC, Knosys y Unisis. Cubo de datos sobre 7600 millones de hechos (1.2 TB). Pruebas con 50 usuarios concurrentes y respuestas entre 0.02-0.08 seg..