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 OLAP (On-Line Analytical Processing) BDO 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: 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: Aplicaciones para vehículos, salud, vida, etc. DW: orientado a materias del negocio Para la misma aseguradora los temas son: Clientes, políticas, polizas, etc.
BD OPERACIONALES VS DATA WAREHOUSES BD Operacionales 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 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 Fuentes de Información Fuentes Externas Data Warehouse Servidores OLAP Análisis BD Operacionales Herramientas para extracción, limpieza, carga, integración, etc. Asiste Herramientas OLAP para Consultas/Reportes 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 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 : 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 Bank of America: 1.5 petabytes. Una compañia de servicios financieros: 1.4 petabytes. Dell: 1 petabyte 2012: el club ya tiene más de 25 miembros incluyendo (además de los anteriores) a: 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: Maneja, para una empresa de telecomunicaciones, un DWs de >200 TB en un DWs DATAllegro En total maneja alrededor de 450 TB de DATAllegro databases Vertica DWs (2009) Cliente de telecomunicaciones con 3 DWs de telco 200 TB, 40 TB y 12 TB. 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. 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 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 Localización Tiempo Industria País Año Categoría Región Semestre Producto Ciudad 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 (c) Tabla de hechos
EXAMPLE OF COMPLEX DATE DIMENSION All Fiscal Year Fiscal Quarter Calendar Year Fiscal Month Calendar month Day of Week Type of Day Fiscal Week Calendar Month Calendar Week Holiday Date
Attribute Name Attribute Description Sample Values Day The specific day that an activity took 06/04/1998; 06/05/1998 place. Day of Week The specific name of the day. Monday; Tuesday Holiday Identifies that this day is a holiday. Easter; Thanksgiving Type of Day Indicates whether or not this day is a weekday or a weekend day. Weekend; Weekday Calendar Week The week ending date, always a Saturday. Note that WE denotes WE 06/06/1998; WE 06/13/1998 Calendar Month The calendar month. January,1998; February, 1998 Calendar Quarter The calendar quarter. 1998Q1; 1998Q4 Calendar Year The calendar year. 1998 Fiscal Week The week that represents the corporate calendar. Note that the F F Week 1 1998; F Week 46 1998 Fiscal Month The fiscal period comprised of 4 or 5 F January, 1998; weeks. Note that the F in the data F February, 1998 Fiscal Quarter The grouping of 3 fiscal months. F 1998Q1; F1998Q2 Fiscal Year 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 : relación hijo/padre entre las categorías Categoría superior (siempre presente) Categoría inferior o base * 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 <: relación hijo/padre entre elementos categorías M={All(all), Area(CS), Area(Bio), ISSN(0362), } < = {(CS,all), (DB,CS), (TODS,0362), } <* = < {(A1,A1), (A1,CS), (TODS, CS),...} <* 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) De otra forma, la instancia de dimensión es heterogenea
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 Es homogénea Es estricta
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> <CS,15> 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 Permite usar respuestas pre-computadas Esta propiedad debiera ser verificada: Cuando se cargan datos Cada vez que la instancia de dimensión se actualiza
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. MaxL (Multidimensional Access Language) de Hyperion s Essbase MDSQL (Multidimensional Query Language)
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 Data Warehouse Servidores OLAP Análisis BD Operacionales Herramientas para extracción, limpieza, carga, integración, etc. Asiste Herramientas OLAP para Consultas/Reportes Data Marts Subsets of the DWs that focus on specific topics
SERVIDORES OLAP OLAP relacional (ROLAP) 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. OLAP multidimensional (MOLAP): Servidor especialmente desarrollado para almacenar y consultar datos multidimensionales Utiliza estructuras de datos basadas en arreglos OLAP hibrido (HOLAP) Los datos detallados se almacenan en una BD relacional Almacena datos agregados en forma multidimensional Se accede a los datos a través de herramientas MOLAP
TABLAS VS CUBO (EJEMPLO SIMPLE) Tabla relacional Datos organizados como filas Tabla de Ventas Product Region Sales $ Donut East 1 Donut West 2 Milk East 3 Milk West 4 Transformado en un Cubo Datos organizados en intersecciones East West Total Donut 1 2 3 Milk 3 4 7 Total 4 6 10 Dim. Producto Dimensión de Region
ROLAP Datos en tablas relacionales Uso de esquemas relacionales especiales: Esquema estrella (star) Esquema copo de nieve (snowflakes) Cubos 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 Una tabla de hechos (para los datos numéricos) No es posible representar las jerarquías de las dimensiones
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 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: Es necesario usar SQL para hacer cálculos multidimensionales
PRODUCTOS ROLAP Productos comerciales: Microsoft Analysis Services, MicroStrategy Oracle BI (the former Siebel Analytics) 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 Product NY SF LA Juice 10 Milk 34 Coke 56 Cream 32 Soap 12 Bread 56 M T W Th F S S roll-up to region roll-up to brand roll-up to week Dimensions: Time, Product, Geography Attributes: Product (upc, price, ) Geography Hierarchies: Product Brand Day Week Quarter City Region Country Time 56 units of bread sold in LA on M
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 MOLAP DWs son excelentes para los data marts (<50GB)
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 Los MOLAP están más orientados hacia consolidaciones batch. 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 = 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 Client Meta data Derived data SQL-Read SQL-Reach Through Multidimensional data Multidimensional access Multidimensional Viewer Relational Viewer SQL-Read
CÓMO ELEGIR CUAL USAR? Todos los tipos de implementación tienen ventajas y desventajas Algunas guías generales son: 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 Si se quieren datos agregados y detallados es mejor HOLAP Sin embargo es necesario analizar cada caso en particular y considerar otras variables como: Tipos de acceso autorizados (lectura/escritura de datos) Tipo disponible para implementación Tipos de usuarios