(basado en slides de loreto bravo y mónica ... - piazza
TRANSCRIPT
DATA WAREHOUSES
(basado en slides de Loreto Bravo y Mónica Caniupán)
Bases de Datos II
2014
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 Applications GUI, Spreadsheets
DB1
DB2
DB3
Data Warehouse
OLTP OLAP
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
Asiste
Fuentes Externas Data Warehouse
Servidores OLAP
Herramientas para extracción, limpieza, carga, integración, etc.
Data Marts
BD Operacionales
Fuentes de Información
Herramientas OLAP para Consultas/
Reportes
Análisis
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
Date
Day of Week
Type of Day
Fiscal Week
Calendar Month
Calendar Week Holiday
Fiscal Month
Fiscal Quarter
Fiscal Year
Calendar month
Calendar Year
All
Attribute Name Attribute Description Sample ValuesDay The specific day that an activity took
place.06/04/1998; 06/05/1998
Day of Week The specific name of the day. Monday; TuesdayHoliday Identifies that this day is a holiday. Easter; ThanksgivingType of Day Indicates whether or not this day is
a weekday or a weekend day.Weekend; Weekday
WE 06/06/1998;WE 06/13/1998
Calendar Month The calendar month. January,1998; February, 1998
Calendar Quarter The calendar quarter. 1998Q1; 1998Q4Calendar Year The calendar year. 1998
F Week 1 1998;F Week 46 1998 F January, 1998;F February, 1998
Fiscal Quarter The grouping of 3 fiscal months. F 1998Q1; F1998Q2Fiscal Year The grouping of 52 fiscal weeks / 12
fiscal months that comprise the financial year.
F 1998; F 1999
Fiscal Month The fiscal period comprised of 4 or 5 weeks. Note that the F in the data
Calendar Week The week ending date, always a Saturday. Note that WE denotes
Fiscal Week The week that represents the corporate calendar. Note that the F
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
! !* es la clausura transitiva y reflexiva de !
Categoría superior (siempre presente) Categoría inferior o base
C = {All, Area, Subject, ISSN, Journal, Article}
! = {(Article, Journal), (Journal, Subject), (Journal, ISSN), (Subject, Area), (ISSN, Area), (Area, All)}
!* = ! ∪ {(Article, Article), (Article, Area), ...}
ESQUEMA DE DIMENSIÓN
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
! <* es la clausura transitiva y reflexiva de <
M={All(all), Area(CS), Area(Bio), ISSN(0362), …}
< = {(CS,all), (DB,CS), (TODS,0362), …}
<* = < ∪ {(A1,A1), (A1,CS),
(TODS, CS), ...}
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
! Respuesta: <CS,8> <Bio,7>
Roll-up entre categoría Article y Area
USANDO RESPUESTAS PRE-COMPUTADAS
! ¿Qué pasaría si tuvieramos computadas respuestas para Subject o ISSN?
! Podríamos mejorar la eficiencia!!!
D
USANDO RESPUESTAS PRE-COMPUTADAS
! Si usamos DownloadsSubject:
! Respuesta: <CS,8> <Bio,7> ! Si usamos resultados para ISSN obtenemos las mismas respuestas
D
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
Asiste
Fuentes Externas Data Warehouse
Servidores OLAP
Herramientas para extracción, limpieza, carga, integración, etc.
Data Marts
BD Operacionales
Fuentes de Información
Herramientas OLAP para Consultas/
Reportes
Análisis
Subsets of the DWs that focus on specific topics
! 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
SERVIDORES OLAP
TABLAS VS CUBO (EJEMPLO SIMPLE)
Product Region Sales $
Donut East 1
Donut West 2
Milk East 3
Milk West 4
Tabla relacional Transformado en un Cubo Datos organizados como filas 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 Tabla de Ventas
! 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
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 Pr
oduc
t
Time M T W Th F S S
Juice Milk Coke Cream Soap Bread
NY SF
LA 10 34 56 32 12 56
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
roll-up to week
roll-up to brand
roll-up to region
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
Multi-dimensional
access Multidimensional Viewer
Relational Viewer
Client MDBMS Server
Multi- dimensional
data
SQL-Read
RDBMS Server
Meta data
Derived data
SQL-Reach Through
SQL-Read
FLUJO DE DATOS EN HOLAP
¿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