DATA WAREHOUSES Loreto Bravo (basado en slides de Mónica Caniupán) Bases de Datos II 2011 ORIGEN Inicios de los 90s por observaciones de W. Inmon y E.F. Codd | Los DW surgen para resolver consultas que no pueden ser manejadas por Bases de Datos Operacionales (BDO) | DW y BDO y OLAP (On-Line Analytical Processing) OLTP (On-Line Transaction Processing) TIPO DE CONSULTAS ¿Cuáles fueron los ingresos totales para Chile en el tercer trimestre del 2008? | ¿Cuáles fueron las tres áreas más populares de cada ciudad para el arriendo de inmuebles el 2008? | ¿Cúal es el ingreso mensual por venta de inmuebles en cada sucursal, comparado con el promedio de los 12 meses anteriores? | Consultas hipotéticas “Que sucederia si...” | Analísis de escenarios alternativos, exploratorios, etc. | ARCHITECTURE OLTP OLAP OLTP Applications GUI, Spreadsheets DB1 DB2 Data Warehouse DB3 DATA WAREHOUSE | Un data warehouse es un repositorio de datos: y y y y y | Orientado a temas (no aplicaciones) Integrado No volátil Variante en el tiempo Apoya la toma de decisiones de una organización (Inmon, “Building the Data Warehouse”, 1992 ) DATA WAREHOUSE BDO: orientadas a las aplicaciones | Eg. Para una empresa aseguradora: | y Aplicaciones para vehículos, salud, vida, etc. DW: orientado a materias del negocio | Para la misma aseguradora los temas son: | y Clientes, políticas, polizas, etc. BD OPERACIONALES VS DATA WAREHOUSES | BD Operacionales y y y y y y y Orientadas a tareas básicas y repetitivas de operación Transacciones aisladas, pequeñas Datos detallados Datos actuales Soporta muchos updates MB o GB de datos Muchos usuarios | Data Warehouses y y y y y y y Orientadas a la toma de decisiones Transacciones complejas con grandes cantidades de datos Datos resumidos, consolidados Datos históricos Los updates no son usuales GB o TB de datos Cientos de usuarios (analistas, expertos, etc.) ARQUITECTURA Servidores OLAP Fuentes de Información Fuentes Externas Análisis Data Warehouse Herramientas para extracción, limpieza, carga, integración, etc. Asiste Herramientas OLAP para Consultas/Reportes BD Operacionales Data Marts Subsets of the DWs that focus on specific topics CARGA DEL DW ETL: Extract, transform and Load | Existen herramientas para limpiar datos i.e., detectar anomalias en las fuentes de datos y corregirlas | y | violación de restricciones de integridad, descripciones inconsistentes, asignaciones de valores inconsistentes, pérdida de datos, etc. Las herramientas de carga del DW deben realizar un preprocesamiento de los datos antes de realizar la carga del DW PRODUCTOS PRODUCTOS | Dic 2012: Amazon anuncia servicio de DWs en la nube DATOS MANEJADOS POR | DWS TERADATA 2008: Teradata creó el Club de “Petabyte Power Players”: y eBay: 5 petabytes. | El 2010 ya había aumentado a 10 petabytes y se proyectaba que el 2011 aumentaría a 20 petabytes Walmart: 2.5 petabytes y Bank of America: 1.5 petabytes. y Una compañia de servicios financieros: 1.4 petabytes. y Dell: 1 petabyte y | 2012: el club ya tiene más de 25 miembros incluyendo (además de los anteriores) a: y AT&T, Verizon y Apple. DATOS MANEJADOS POR | | DWS TEOCO, una empresa que da servicios de analysis de datos para empresas de telecomunicaciones informó el 2008: y Maneja, para una empresa de telecomunicaciones, un DWs de >200 TB en un DWs DATAllegro y En total maneja alrededor de 450 TB de DATAllegro databases Vertica DWs (2009) y Cliente de telecomunicaciones con 3 DWs de telco 200 TB, 40 TB y 12 TB. y Cliente de inversiones con >200 petabytes CUANTO ES UN PETABYTE? MODELO DE DATOS MULTIDIMENSIONAL DISEÑO DEL DW | Un DW esta compuesto de dimensiones y hechos Hechos: cantidades numéricas, objetos de análisis, e.g. total de ventas, etc. y Dimensiones : otorgan contexto a las cantidades numéricas, e.g. las dimensiones asociadas con una venta pueden ser el producto, lugar geográfico y el tiempo y | Los DW se modelan usando un modelo de datos multidimensional MODELO DE DATOS MULTIDIMENSIONAL Las dimensiones tiene atributos que están organizados en jerarquías | Esta jerarquía ofrece una forma de navegación | Producto Industria Localización País Categoría Región Producto Ciudad Tiempo Año Semestre Mes Semana Día MODELO DE DATOS MULTIDIMENSIONAL | Los hechos puden verse como puntos en un espacio multidimensional determinado por las dimensiones MODELO DE DATOS MULTIDIMENSIONAL | Ejemplo Article DW: | | (a) Dimensión Article (b) Instancia de hechos (c) Tabla EXAMPLE OF COMPLEX DATE DIMENSION All Fiscal Year Day of Week Type of Day Fiscal Quarter Calendar Year Fiscal Month Calendar month Fiscal Week Calendar Month Date Calendar Week Holiday Attribute Name Attribute Description Day The specific day that an activity took place. Day of Week The specific name of the day. Holiday Identifies that this day is a holiday. Type of Day Indicates whether or not this day is a weekday or a weekend day. Calendar Week The week ending date, always a Saturday. Note that WE denotes Calendar Month The calendar month. Calendar Quarter Calendar Year Fiscal Week Fiscal Month Fiscal Quarter Fiscal Year Sample Values 06/04/1998; 06/05/1998 Monday; Tuesday Easter; Thanksgiving Weekend; Weekday WE 06/06/1998; WE 06/13/1998 January,1998; February, 1998 The calendar quarter. 1998Q1; 1998Q4 The calendar year. 1998 The week that represents the F Week 1 1998; corporate calendar. Note that the F F Week 46 1998 The fiscal period comprised of 4 or 5 F January, 1998; weeks. Note that the F in the data F February, 1998 The grouping of 3 fiscal months. F 1998Q1; F1998Q2 The grouping of 52 fiscal weeks / 12 F 1998; F 1999 fiscal months that comprise the financial year. ESQUEMA DE DIMENSIÓN | Un esquema de dimensión S=(C,) : C : un conjunto de categorías y : relación hijo/padre entre las categorías y Categoría superior (siempre presente) Categoría inferior o base y * es la clausura transitiva y reflexiva de ESQUEMA DE DIMENSIÓN C = {All, Area, Subject, ISSN, Journal, Article} = {(Article, Journal), (Journal, Subject), (Journal, ISSN), (Subject, Area), (ISSN, Area), (Area, All)} * = ∪ {(Article, Article), (Article, Area), ...} INSTANCIA DE DIMENSIÓN | Un instancia de dimensión D=(M,<) : M : contiene los elementos de las categorías y <: relación hijo/padre entre elementos categorías y M={All(all), Area(CS), Area(Bio), ISSN(0362), …} < = {(CS,all), (DB,CS), (TODS,0362), …} <* = < ∪ {(A1,A1), (A1,CS), (TODS, CS), ...} y <* es la clausura transitiva y reflexiva de < TIPOS DE DIMENSIONES | Una instancia de dimensión es homogenea si todo elemento tiene un ancestro en su categoria padre (definido por el esquema) 3 | 3 De otra forma, la instancia de dimensión es heterogenea 2 PROCESAMIENTO DE CONSULTAS | Q: encontrar el número total de downloads por área Roll-up entre categoría Article y Area | Respuesta: <CS,8> <Bio,7> USANDO RESPUESTAS PRE-COMPUTADAS | ¿Qué pasaría si tuvieramos computadas respuestas para Subject o ISSN? D | Podríamos mejorar la eficiencia!!! USANDO RESPUESTAS PRE-COMPUTADAS | Si usamos DownloadsSubject: D Respuesta: <CS,8> <Bio,7> | Si usamos resultados para ISSN obtenemos las mismas respuestas | SUMARIZABILIDAD Una instancia de dimensión es sumarizable si respuestas pre-computadas pueden ser usadas para responder consultas de manera correcta | Una instancia es sumarizable si: | Las consultas usan funciones de agregación distributivas tales como: MAX, MIN, SUM y COUNT y Es homogénea y Es estricta y DIMENSIONES ESTRICTAS | Cada elemento debe tener un único ancestro en cada categoría D’ D CONSEQUENCIAS DE DIMENSION NO ESTRICTAS | Q: encontrar el número total de downloads por área D’ CONSEQUENCIAS DE DIMENSION NO ESTRICTAS | | Si usamos DownloadsSubject: Respuestas: <CS,8> <Bio,7> y <CS,15> y | Ambas respuestas son incorrectas D’ DIMENSIONES ESTRICTAS Esta propiedad asegura que las relaciones roll-up sean funcionales | También es crucial para la eficiencia de los DW | y | Permite usar respuestas pre-computadas Esta propiedad debiera ser verificada: Cuando se cargan datos y Cada vez que la instancia de dimensión se actualiza y OPERACIONES/CONSULTAS EN DATA WAREHOUSES OPERACIONES OLAP Roll-up: generalización y agregación | Drill-down: desagregación y especialización | OPERACIONES OLAP Roll-up: generalización y agregación | Drill-down: desagregación y especialización | roll up roll up drilling down OPERACIONES OLAP: SLICING Y DICING | También podemos hacer cortes en los cubos y formar nuevos cubos a partir de ellos slicing dicing Slicing con Year=2006 LENGUAJES DE CONSULTA | No hay standard: MDX (Multidimensional Expression Language) de Microsoft’s OLE DB for OLAP API and OLAP Services. y MaxL (Multidimensional Access Language) de Hyperion’s Essbase y MDSQL (Multidimensional Query Language) y LENGUAJES DE CONSULTA | Ejemplo de MDX: SELECT { [Measures].[Sales Amount], [Measures].[Tax Amount] } ON 0, { [Date].[Fiscal].[Fiscal Year].&[2002], [Date].[Fiscal].[Fiscal Year].&[2003] } ON 1 FROM [Adventure Works] WHERE ( [Sales Territory].[Southwest] ) EJEMPLO EN LÍNEA DE LA UDEC | Ver DWs de la Dirección de Estudios Estratégicos de la UdeC para generación de indicadores y apoyo en proceso de acreditación IMPLEMENTACIÓN DE DATA WAREHOUSES ARQUITECTURA DEL SISTEMA DE APOYO PARA TOMA DE DECISIONES Fuentes de Información Fuentes Externas Servidores OLAP Análisis Data Warehouse Herramientas para extracción, limpieza, carga, integración, etc. Asiste Herramientas OLAP para Consultas/Reportes BD Operacionales Data Marts Subsets of the DWs that focus on specific topics SERVIDORES OLAP | OLAP relacional (ROLAP) y y | OLAP multidimensional (MOLAP): y y | Base de datos relacional especializada para almacenar y manejar los datos almacenados Extendidad de tal forma de mapear operaciones sobre datos multidimensionales a operaciones relacionales estandar. Servidor especialmente desarrollado para almacenar y consultar datos multidimensionales Utiliza estructuras de datos basadas en arreglos OLAP hibrido (HOLAP) y Los datos detallados se almacenan en una BD relacional y Almacena datos agregados en forma multidimensional y Se accede a los datos a través de herramientas MOLAP TABLAS VS CUBO (EJEMPLO SIMPLE) Tabla relacional Transformado en un Cubo Datos organizados como filas Datos organizados en intersecciones Tabla de Ventas Product Region Donut Dimensión de Region East Sales $ 1 Donut Donut West 2 Milk Milk East 3 Total Milk West 4 East Dim. Producto 1 3 4 West Total 2 4 6 3 7 10 ROLAP | Datos en tablas relacionales | Uso de esquemas relacionales especiales: y y Esquema estrella (star) Esquema copo de nieve (snowflakes) | Cubos y virtuales Las operaciones sobre cubos son transformadas a operaciones relacionales (SQL!) | Es el enfoque más común en la práctica ROLAP: ESQUEMA ESTRELLA ROLAP: ESQUEMA ESTRELLA | Es un esquema relacional para representar DW donde: Existe una única tabla por cada dimensión y Una tabla de hechos (para los datos numéricos) y No es posible representar las jerarquías de las dimensiones y ROLAP: ESQUEMA ESTRELLA ROLAP: ESQUEMA ESTRELLA ROLAP: ESQUEMA ESTRELLA | | El esquema no esta normalizado! Para volumenes de datos pequeños o medianos, estos esquemas tienen un buen comportamiento ya que solo es necesario hacer joins entre la tabla de hecho y las dimensiones ROLAP: ESQUEMA COPO DE NIEVE (SNOWFLAKE) ROLAP: ESQUEMA COPO DE NIEVE (SNOWFLAKE) También es un esquema relacional para representar DW | En este esquema las dimensiones se representan por un conjunto de tablas normalizadas por nivel de la jerarquía | y Incluso ya pueden contener datos agregados ROLAP: ESQUEMA COPO DE NIEVE ROLAP: ESQUEMA COPO DE NIEVE (SNOWFLAKE) | La dimensión normalizada para Mes y Año con la tabla de hechos Sales ROLAP | Implementa el complejo modelo multi-dimensional con un modelo relacional simple | Permite que el DWs evolucione con relativamente poca mantención | Puede contenter tanto datos detallados como resumidos | ROLAP se basa en tecnologías conocidas y que ya han sido demostradas de ser útiles en la industria | PERO: y Es necesario usar SQL para hacer cálculos multidimensionales… PRODUCTOS ROLAP | Productos comerciales: Microsoft Analysis Services, y MicroStrategy y Oracle BI (the former Siebel Analytics) y | También hay un servidor ROLAP open source: Mondrian. MOLAP Trabaja directamente con cubos multidimensionales | Desafío: nuevas operaciones, estructuras de almacenamiento, métodos de acceso, índices multidimensionales, etc. | Implementación basada en estructuras de datos basadas en arreglos | Enfoque con más investigación | CUBO DE DATOS roll-up to region NY SF roll-up to brand Product LA Juice Milk Coke Cream Soap Bread 10 34 56 32 12 56 roll-up to week M T W Th F S S Time 56 units of bread sold in LA on M Dimensions: Time, Product, Geography Attributes: Product (upc, price, …) Geography … … Hierarchies: Product → Brand → … Day → Week → Quarter City → Region → Country INSTANCIA MULTIDIMENSIONAL | Corte para un valor específico de la dimensión Tiempo DATOS DERIVADOS Los datos derivados forman parte de los cubos de datos y son obtenidos aplicando funciones de agregación: SUM, MAX, MIN, AVG, COUNT | Estos datos se materializan | Permiten eficiencia en el procesamiento de consultas | MOLAP Almacenamiento de datos precalculados permite mejorar la velocidad de respuesta | El diseño solo requirere definir las dimensiones y los hechos a almacenar. No es necesario diseñar un esquema de BD (como star o snowflake) | PERO: | MOLAP DWs aumentan el costo en tiempo de procesado y en el tamaño de lo almacenado. Una entrada de 200MB puede expandirse a 5GB en el DWs y MOLAP DWs son excelentes para los data marts (<50GB) y PRODUCTOS MOLAP Oracle OLAP, Microsoft Analysis Services, Essbase, Infor OLAP y TM1|Applix TM1, Pilot, Arbor Essbase, Gentia | También existe un servidor MOLAP de código abierto llamado PALO. | También se utiliza en Microsoft SQL server en la mayoría de sus versiones. | ROLAP VS MOLAP | Los sistemas con altos cambios a los datos, requieren una arquitectura que pueda actualizarse eficientemente. Los sistemas ROLAP soportan bien esta consolidación dinámica y Los MOLAP están más orientados hacia consolidaciones batch. y | | | Los ROLAP pueden crecer hasta un gran número de dimensiones, mientras que los MOLAP generalmente son adecuados para diez o menos dimensiones. Los ROLAP soportan análisis OLAP contra grandes volúmenes de datos elementales, mientras que los MOLAP se comportan razonablemente en volúmenes más reducidos Por ello, y resumiendo, el ROLAP es una arquitectura flexible y general, que crece para dar soporte a amplios requerimientos OLAP. El MOLAP es una solución particular, adecuada para soluciones departamentales con unos volúmenes de información y número de dimensiones más modestos pero que dan respuestas mucho más rápidas en estos casos HYBRID OLAP (HOLAP) | HOLAP y y y = Hybrid OLAP: Toma lo mejor de los dos mundos Alamacena datos detallados en una base de datos relacional Almacena datos agregados en un servidor MOLAP FLUJO DE DATOS EN HOLAP RDBMS Server MDBMS Server Multidimensional access SQL-Read Meta data Client Multidimensional Viewer Multidimensional data Derived data SQL-Reach Through Relational Viewer SQL-Read ¿CÓMO ELEGIR CUAL USAR? | | Todos los tipos de implementación tienen ventajas y desventajas Algunas guías generales son: y En general para DWs pequeños (o data marts) es mejor MOLAP por sus rápidas respuestas. | Lo que significa “pequeño” va a variar a lo largo del tiempo! Para DWs grandes con datos detallados o con largas consultas es mejor utilizar ROLAP y Si se quieren datos agregados y detallados es mejor HOLAP y | Sin embargo es necesario analizar cada caso en particular y considerar otras variables como: y Tipos de acceso autorizados (lectura/escritura de datos) y Tipo disponible para implementación y Tipos de usuarios