Lezione 7 Data Warehouse & OLAP
Che cos'è un Data Warehouse? Termine inventato da Bill Inmon alla fine degli anni 1980. È una base di dati contenente dati provenienti da uno o più basi di dati operative che sono stati Consolidati Integrati Aggregati Strutturati In modo da poter essere impiegati in un processo Analitico Decisionale
OLAP On-Line Analytical Processing Usa un modello dei dati multidimensionale Il concetto centrale è quello dell'ipercubo Ipercubo: Fatti numerici (misure) Categorizzati in dimensioni, che descrivono delle etichette Esempio: fatturato di un'azienda Le misure sono i numeri del fatturato Le dimensioni possono essere: il tempo: le etichette sono i trimestri, es. 2009Q1, 2009Q2, ecc. le aree geografiche: Europa, America, Asia, Africa, Oceania i settori: pannelli edilizia, pannelli nautica, tavolame nautica, ecc.
Un cubo OLAP 135 K area settore tempo 20092Q
Conceptual Modeling of Data Warehouses Modeling data warehouses: dimensions & measures Star schema: A fact table in the middle connected to a set of dimension tables Snowflake schema: A refinement of star schema where some dimensional hierarchy is normalized into a set of smaller dimension tables, forming a shape similar to snowflake Fact constellations: Multiple fact tables share dimension tables, viewed as a collection of stars, therefore called galaxy schema or fact constellation
Example of Star Schema time time_key day day_of_the_week month quarter year branch branch_key branch_name branch_type Measures Sales Fact Table time_key item_key branch_key location_key units_sold dollars_sold avg_sales item item_key item_name brand type supplier_type location location_key street city state_or_province country
Example of Snowflake Schema time time_key day day_of_the_week month quarter year Sales Fact Table time_key item_key item item_key item_name brand type supplier_key supplier supplier_key supplier_type branch branch_key branch_name branch_type Measures branch_key location_key units_sold dollars_sold avg_sales location location_key street city_key city city_key city state_or_province country
Example of Fact Constellation time time_key day day_of_the_week month quarter year branch branch_key branch_name branch_type Measures Sales Fact Table time_key item_key branch_key location_key units_sold dollars_sold avg_sales item item_key item_name brand type supplier_type location location_key street city province_or_state country Shipping Fact Table time_key item_key shipper_key from_location to_location dollars_cost units_shipped shipper shipper_key shipper_name location_key shipper_type
Aggregazioni Ottenute modificando la granularità di specifiche dimensioni Es.: anni invece di trimestri, Italia/Estero invece di singoli paesi, ecc. Ciascuna aggregazione fornisce una visione differente dei dati Problema della selezione delle viste: Quali aggregazioni devono essere precalcolate? Minimizzare il tempo medio per rispondere alle interrogazioni Complessità: NP-difficile
DW vs. DB Data Warehouse Base di dati Modello dimensionale Assenza di normalizzazione Enfasi sulla facilità di interrogazione Statico Progettato per l'analsi dei dati Modello relazionale Normalizzazione dei dati Enfasi sulla consistenza dei dati Dinamico Progettato per l'elaborazione di transazioni (inserimento, modifica, cancellazione)
Architettura di un data warehouse Other sources Operational DBs Metadata Extract Transform Load Refresh Monitor & Integrator Data Warehouse OLAP Server Serve Analysis Query Reports Data mining Data Marts Data Sources Data Storage OLAP Engine Front-End Tools
Costruzione di un Warehouse Un data warehouse deve essere un sistema distinto dai DB Per popolare un data warehouse, normalmente i dati vengono estratti da un DB operativo Spesso, fino all'80% del lavoro di costruzione risiede nel processo ETL: extract, transform, load. Extract: individuazione dei dati e scrittura di interrogazioni per estrarli dai DB operativi; Transform: scrittura di programmi o script per filtrare, ripulire, e ricondurre i dati a convenzioni di codifica comuni; Load: caricamento dei dati trasformati nel warehouse
Estrazione Il primo passo è l'individuazione dei dati che servono Alcuni dati possono risiedere su DB operativi, altri vanno desunti da altre fonti (uffici di statistica, pubblicazioni, Web) I dati vengono estratti dai DB operativi e copiati in un'area di lavoro locale A volte si ha accesso diretto al DB Spesso, però, si ricevono solo degli archivi estratti per noi da qualcun altro Problema di interfacciarsi alle fonti dei dati
Trasformazione Dati provenienti da fonti diverse devono essere convertiti in un formato comune È necessario conoscere il significato dei dati nei DB operativi Lo stesso dato può avere nomi distinti in fonti diverse Date, codici, ecc., possono essere codificati in modi diversi Lo stesso attributo di una tabella può avere nomi distinti in sistemi diversi (es.: genere/sesso) e essere rappresentato in modo diverso (es.: {0, 1} piuttosto che {M, F}) Dati numerici possono essere dati usando unità di misure diverse (es.: kjoule/kcal) La stessa misura può essere stata ottenuta con metodi diversi
Data Mart Un data warehouse costruito a livello di una singola unità di azienda o ente (area, divisione, dipartimento, centro, ecc.) Solitamente meno impegnativo di un data warehouse Poche fonti dei dati, spesso un solo DB operativo Specifici per un particolare tema o un particolare studio Ambito più ristretto di un data warehouse Indipendente = dati provengono dai DB operativi Dipendente = dati sono estratti da un data warehouse
Rappresentare un ipercubo in una tabella Dato un ipercubo con D dimensioni... Si ricava una tabella con D + 1 colonne: Ogni misura contenuta nell'ipercubo diventa una riga La i-esima colonna conterrà l'etichetta della i-esima dimensione L'ultima colonna, la (D + 1)-esima, conterrà la misura.... e viceversa.
Rappresentazione di serie storiche Analisi delle tendenze Idea principale: mappare i dati nello spazio delle fasi Spazio delle fasi (Fisica): Spazio di tutti i possibili stati di un sistema Ciascun parametro o grado di libertà corrisponde a un asse Spazio delle fasi ricostruito per una serie storica univariata: Si considera un insieme finito di ritardi, per esempio 0, 1, 2,... Si associa a ciascuna dimensione un ritardo Etichette: dato con ritardo; Misura: dato senza ritardo Spazio delle fasi generalizzato: Usare statistiche della serie (p.es.: medie mobili) al posto dei ritardi
Esempio Serie: 7.92, 9.27, 15.02, 14.80, 9.33, 11.78, 9.60, 4.64, 5.34, 6.96 Ricostruiamo lo spazio delle fasi con due ritardi: 1 e 2 Ipercubo con dimensioni X(t 2) e X(t 1) e misura X(t) Otteniamo: X(t 2) = 7.92, X(t 1) = 9.27, X(t) = 15.02 X(t 2) = 9.27, X(t 1) = 15.02, X(t) = 14.80 X(t 2) = 15.02, X(t 1) = 14.80, X(t) = 9.33 X(t 2) = 14.80, X(t 1) = 9.33, X(t) = 11.78 ecc.
Data Warehouse Usage Three kinds of data warehouse applications Information processing supports querying, basic statistical analysis, and reporting using crosstabs, tables, charts and graphs Analytical processing multidimensional analysis of data warehouse data supports basic OLAP operations, slice-dice, drilling, pivoting Data mining knowledge discovery from hidden patterns supports associations, constructing analytical models, performing classification and prediction, and presenting the mining results using visualization tools