Basi di Dati - Complementi Introduzione al Data Warehousing
Riferimenti A. Raffaeta’, Data Warehousing & OLAP, Introduzione. Lucidi delle lezioni, Universita’ di Venezia, 2002 Basi di Dati (Atzeni, Paraboschi, Torlone, ) D. Barbara’, Lucidi del corso di Data Warehousing,, George Mason University, VA, USA, 1999 Jim Gray, Adam Bosworth, Andrew Layman, Microsoft e Hamid Pirahesh, IBM, CUBE: A Relational Aggregate Operator Generalizing Group By, Presentazione
Processi, dati e decisioni processi operativi dati dipartimentali e dettagliati decisioni strutturate, con regole precise processi gestionali dati settoriali, parzialmente aggregati decisioni semistrutturate: regole più intervento creativo/responsabile processi direzionali dati integrati e fortemente aggregati decisioni non strutturate processi direzionali processi gestionali processi operativi
Sistemi informatici: una classificazione Transaction processing systems: per i processi operativi Management information systems: settoriali, per i processi gestionali Decision support systems: fortemente integrati, di supporto ai processi direzionali
Sistemi di supporto alle decisioni Richiedono operazioni non previste a priori Coinvolgono spesso grandi quantità di dati, anche storici e aggregati Coinvolgono dati provenienti da varie fonti operative, anche esterne
Il processo di scoperta: dai dati alla conoscenza
A quali domande vogliamo rispondere? What are Personnel Services costs across all departments for all funding sources? What are the effects of outsourcing specific services? What is the correlation between expenditures and collection of delinquent taxes? What is the impact on revenues and expenditures of changing the operating hours of the Dept. of Motor Vehicles? What is the economic impact of the small business initiative in our district?
OLAP Elaborazione di operazioni per il supporto alle decisioni Operazioni complesse e casuali Ogni operazione può coinvolgere molti dati Dati aggregati, storici, anche non attualissimi Le proprietà “acide” non sono rilevanti, perché le operazioni sono di sola lettura OLAP e OLTP I requisiti sono contrastanti Le applicazioni dei due tipi possono danneggiarsi a vicenda
Integrazione via warehousing Client Client Query & Analysis Warehouse Metadata Integration Source Source Source
Approcci alternativi: Multi-database e Warehousing client Gestore DW DBMS BD Mediatore DW Integratore MultiDBMS DBMS BD Mediatore client Integratore
Data warehouse Una base di dati utilizzata principalmente per il supporto alle decisioni direzionali integrata — aziendale e non dipartimentale orientata ai dati — non alle applicazioni storici — con un ampio orizzonte temporale, e indicazione (di solito) di elementi di tempo non volatile — i dati sono caricati e acceduti fuori linea mantenuta separatamente dalle basi di dati operazionali
... integrata ... I dati di interesse provengono da tutte le sorgenti informative — ciascun dato proviene da una o più di esse Il data warehouse rappresenta i dati in modo univoco — riconciliando le eterogeneità dalle diverse rappresentazioni nomi codifica rappresentazione multipla
... orientata ai dati ... Le basi di dati operazionali sono costruite a supporto dei singoli processi operativi o applicazioni produzione vendita Il data warehouse è costruito attorno alle principali entità del patrimonio informativo aziendale prodotto cliente
... dati storici ... Le basi di dati operazionali mantengono il valore corrente delle informazioni L’orizzonte temporale di interesse è dell’ordine dei pochi mesi Nel data warehouse è di interesse l’evoluzione storica delle informazioni L’orizzonte temporale di interesse è dell’ordine degli anni
... non volatile ... In una base di dati operazionale, i dati vengono acceduti, inseriti, modificati, cancellati pochi record alla volta Nel data warehouse, abbiamo operazioni di accesso e interrogazione — “diurne” operazioni di caricamento e aggiornamento dei dati — “notturne” che riguardano milioni di record
Dati aggregati Nell’attività di analisi dei dati per il supporto alle decisioni: non interessa “chi” ma “quanti” non interessa un singolo dato ma la somma, la media, il minimo, il massimo di un insieme di dati Le operazioni di aggregazioni sono fondamentali nel warehousing e nella costruzione/mantenimento di un data warehouse.
... una base di dati separata ... Per tanti motivi non esiste un’unica base di dati operazionale che contiene tutti i dati di interesse la base di dati deve essere integrata non è tecnicamente possibile fare l’integrazione in linea i dati di interesse sarebbero comunque diversi devono essere mantenuti dati storici devono essere mantenuti dati aggregati l’analisi dei dati richiede per i dati organizzazioni speciali e metodi di accesso specifici degrado generale delle prestazioni senza la separazione
Attività per popolare un data warehouse Processo ETL: Extraction Transformation Loading Estrazione dei dati dalle sorgenti informative operazionali Opzioni: tutti i dati / solo dati modificati (incrementale) Pulizia, trasformazione di formato e correlazione con oggetti provenienti da altre sorgenti. Caricamento con aggiunta di informazioni temporali e generazione di dati aggregati.
ETL Data Flow Sources Flat Files Warehouse Flat Files Transformation Metadata Warehouse Transformation Flat Files Bulk Load
Trasformazione tramite metadati Metadata Source Structures Target Structures Field Mappings and Comments Sequence Numbers Grouped by Subject Area Legacy & Other Sources Warehouse Data
Architettura base per il data warehousing Monitoraggio & Amministrazione Metadati Strumenti di analisi Analisi dimensionale Data mining Visualizzazione Sorgenti dei dati Sorgenti esterne Basi di dati operazionali Data Warehouse Data Mart
Modelli per Data Warehouse “Entity relation data models are a disaster for querying because they cannot be understood by users and they cannot be navigated usefully by DBMS software. Entity relation models cannot be used as the basis for enterprise data warehouses.” Ralph Kimball, The Data Warehouse Toolkit, 1996, John Wiley & Sons, Inc., ISBN 0-471-15337-0
Analisi multidimensionale L’analisi richiede normalmente dimensioni multiple: “quanti items ho venduto per regione per mese per tipo di cliente?” Dimensioni normalmente utilizzate per l’analisi: Tempo Prodotto Cliente Area geografica Dipartimento/settore
Il modello Multidimensionale Un data warehouse si basa su un modello dei dati multidimensionale che rappresenta i dati sotto forma di data cube. Un data cube permette di modellare e creare viste dei dati rispetto a molteplici dimensioni Modello dati multidimensionale Detto “Star Schema” Implementabile su un DB relazionale Consente volumi di dati molto grandi volumi dell’ordine di 100 gbytes forniscono tempi di risposta sotto i 10 sec
Rappresentazione multidimensionale dei dati prodotto magazzino vino acqua coca cola tempo mag apr feb set C B A 15 12 1 42 10 9 25 2 7 11 23 3
All, All, All Data Cubes Product Store Time sum Milk Bread … ... Jan 96 Feb 96 Product Store Time Orange Pisa Roma Firenze All, All, All All Products January 96, Pisa. Ogni dimensione contiene una gerarchia di valori una cella del cubo contiene valori aggregati (count, sum, max, etc.)
Concetti usati per definire un data cube Fatto, un tema di interesse per l’organizzazione (vendite, spedizioni, acquisti). Misura, una proprietà di un fatto da analizzare (num. di unità vendute, prezzo unitario). Dimensione, descrive una prospettiva lungo la quale un’organizzazione vuole mantenere i dati (prodotto, negozio, data).
Modello dei dati multidimensionale Ogni dimensione può avere una tabella ad essa associata. Es. item (item_name, brand, type), or time(day, week, month, quarter, year) La Fact table contiene le misure (come dollars_sold) e chiavi esterne per ogni dimension table.
Organizzazione “star’’ Tempo Codice orario Ora Giorno Settimana Mese Trimestre Anno Prodotto Codice prodotto Descrizione Colore Modello Codice categoria Categoria Vendite Codice orario Codice luogo Codice prodotto Codice cliente Unità Incasso Luogo Codice luogo Negozio Indirizzo Codice Città Città Codice Regione Regione Codice Stato Stato Cliente Codice cliente Nome Cognome Indirizzo Età Codice professione Professione
Esempio di star schema
Dimensioni Sono le entità rilevanti per l’analisi Tipicamente sono caratterizzate da attributi testuali o discreti. La dimensione temporale esiste sempre. Esempio: vendite in una catena di supermercati Dimensioni: tempo, prodotti, magazzino Iscrizioni universitarie Dimensioni: tempo, facoltà, tipologia studenti
Dimensioni e gerarchie di livelli Ciascuna dimensione è organizzata in una gerarchia che rappresenta i possibili livelli di aggregazione per i dati. Negozio, città, provincia, marca Giorno, mese, trimestre, anno
Dimensioni e gerarchie di livelli Ciascuna dimensione è organizzata in una gerarchia che rappresenta i possibili livelli di aggregazione per i dati regione anno trimestre provincia categoria marca mese città prodotto giorno negozio
Gerarchia di concetti: Dimensione (luogo) all region office country city all Europe North_America Mexico Canada Spain Germany Vancouver M. Wind L. Chan ... Toronto Frankfurt
Esempio di DW con gerarchie sType store city region
Misure Le misure sono tipicamente numeriche Es. Consideriamo le vendite in una catena di supermercati. Le misure possono essere N. prodotti venduti Incassi Costi …..
Esempi di fatti/misure/dimensioni Catena di negozi vendita quantità venduta, incasso prodotto, tempo, zona Compagnia telefonica telefonata costo, durata chiamante, chiamato, tempo
OLAP: On-Line Analytical Processing Una visione multidimensionale, logica, dei dati Analisi interattiva dei dati Modellazione analitica: derivazione delle proporzioni, delle varianze, etc Aggregazioni per ogni sottoinsieme delle dimensioni. Previsione, trend analysis, e statistical analysis. Calcola e visualizza i dati in 2D o 3D crosstabs, charts, e grafi, con semplici operazioni di rotazione degli assi 9
OLAP su data cubes Mercati Quantità Prodotti Vendite Periodi di tempo
Analisi per segmento di mercato Il manager regionale esamina la vendita dei prodotti in tutti i periodi relativamente ai propri mercati
Analisi per prodotto Il manager di prodotto esamina la vendita di un prodotto in tutti i periodi e in tutti i mercati
Analisi per periodo di tempo Il manager finanziario esamina la vendita dei prodotti in tutti i mercati relativamente al periodo corrente e quello precedente
Analisi multidimensionale Il manager strategico si concentra su una categoria di prodotti, una area regionale e un orizzonte temporale medio
Generalizzazione: Organizzazione “snowflake” Vendite Codice orario Codice luogo Codice prodotto Codice cliente Unità Incasso Tempo Ora Giorno Settimana Mese Trimestre Anno Luogo Negozio Indirizzo Codice Città Città CodiceRegione Codice Stato Prodotto Descrizione Colore Modello Codice categoria Cliente Nome Cognome Età Codice professione Professione Categoria Codice categoria CodiceRegione Regione Codice Stato Stato
Operazioni tipiche su data cubes Roll up: riassumi i dati, salendo nella gerarchia dei concetti per una dimensione o attraverso una riduzione di una dimensione il volume totale di vendite per categoria di prodotto e per regione si rimuove per esempio la dimensione tempo. Roll down or drill down: passa da un livello di dettaglio basso ad un livello di dettaglio alto, scendendo nella gerarchia o introducendo una nuova dimensione. per un particolare prodotto, trova le vendite dettagliate per ogni venditore e per ogni data
Operazioni tipiche (cont.) Slice and dice: select & project. L’operazione di Slice esegue una selezione su una dimensione del cubo. L’operazione di Dice definisce un sottocubo eseguendo una selezione su due o più dimensioni. Vendite delle bevande nel West negli ultimi 6 mesi Pivot (rotate): riorienta il cubo.
Operazioni tipiche: Roll-Up Product Store Month Year Roll-up Drill-Down Region
Operazioni tipiche: Slice and Dice Product Store Month Slice
Primitive di linguaggio per la definizione e il calcolo di data cubes Cube Definition (Fact Table) define cube <cube_name> [<dimension_list>]: <measure_list> Dimension Definition ( Dimension Table ) define dimension <dimension_name> as (<attribute_or_subdimension_list>) Special Case (Shared Dimension Tables) First time as “cube definition” define dimension <dimension_name> as <dimension_name_first_time> in cube <cube_name_first_time>
Definizione di uno Star Schema define cube sales_star [time, item, branch, location]: dollars_sold = sum(sales_in_dollars), avg_sales = avg(sales_in_dollars), units_sold = count(*) define dimension time as (time_key, day, day_of_week, month, quarter, year) define dimension item as (item_key, item_name, brand, type, supplier_type) define dimension branch as (branch_key, branch_name, branch_type) define dimension location as (location_key, street, city, province_or_state, country)
Operatori per il calcolo di Data Cubes Una nuova sintassi (DMQL) Define cube sales[item, city, year]: sum(sales_in_dollars) compute cube sales Transformazione in un linguaggio SQL-like (con un nuovo operatore cube by, introdotto da Gray et al.’96) SELECT item, city, year, SUM (amount) FROM SALES CUBE BY item, city, year Presentazione di Jim Gray su DataCubes
Calcolo di Data Cubes Richiede di calcolare i seguenti Group-Bys (date, product, customer), (date,product),(date, customer), (product, customer), (date), (product), (customer) () (product) (date) () (customer) (date, product) (date, customer) (product, customer) (date, product, customer)
Cubi e Cuboidi Il data cube può essere visto come un reticolo di cuboidi Livello più basso: cuboide di base Livello più alto: cuboide apex, che contiene una sola cella. Quanti cuboidi ci sono in un cubo n-dimensionale con L livelli?
Cuboidi all 0-D(apex) cuboid country date 1-D cuboids 2-D cuboids product date 1-D cuboids product,date product,country date, country 2-D cuboids 3-D(base) cuboid product, date, country
Materializzazioni del data cube Per il calcolo efficiente dei data cubes, sono possibili diverse strategie: Materializza ogni cuboide (materializzazione completa) nessun cuboide (materializzazione nulla) o qualche cuboide (materializzazione parziale) Selezione dei cuboidi da materializzare Basata sulla dimensione, sharing, frequenza di accesso, ecc.
Elaborazione Efficiente delle Query OLAP Determina quali operazioni dovrebbero essere effettuate sui cuboidi disponibili: transforma drill, roll, ecc. in corrispondenti operazioni SQL e/o OLAP, ad es., dice = selection + projection Determina a quali cuboide(i) materializzato dovrebbero essere applicate le operazioni rilevanti. Utilizza eventuali indici
Architettura per il data warehousing Monitoraggio & Amministrazione Metadati Strumenti di analisi Analisi dimensionale Data mining Visualizzazione Sorgenti dei dati Sorgenti esterne Basi di dati operazionali Data Warehouse Data Mart
Relational OLAP (ROLAP) Utilizza DBMS relazionale o esteso per memorizzare e gestire i dati di un warehouse e middleware OLAP per ottenere i pezzi mancanti fornisce ulteriori servizi OLAP tools di disegno per schemi DSS permette di utilizzare performance analysis tools SQL strumento principale elevata scalabilità
Multidimensional OLAP (MOLAP) I dati sono fisicamente rappresentati sotto forma di cubo multidimensionale. Indicizzazione veloce a dati riassuntivi pre-calcolati Queries multidimensionali si mappano sul server in modo immediato Ma: Dati sparsi difficili da gestire Memoria sottoutilizzata … no interfaccia SQL (API) … necessità sistema relazionale per dati dettaglio … file molto grandi … limitazioni a circa 10GB (problemi scalabilità)
Altre architetture Hybrid OLAP (HOLAP) SQL server specializzati Combina ROLAP e MOLAP User flexibility, ad es., basso livello: relazionale, alto livello: array multidimensionale. Scalabilità + Computazione veloce SQL server specializzati Query language avanzati e supporto specializzato per query SQL su schemi star/snowflake in un contesto di sola lettura.
ROLAP & MOLAP Performance Analisi: MOLAP Dimensione DW: ROLAP Query: MOLAP Caricamento: ROLAP Analisi: MOLAP Dimensione DW: ROLAP MOLAP: problema sparsità Flessibilità nello schema: ROLAP MOLAP: minor numero di dimensioni ammesse
Confronto MOLAP - ROLAP Multidimensional OLAP Dati memorizzati in multi-dimensional cube Richiede trasformazioni dei dati Dati disponibili per l’analisi direttamente dai cube analytical processing piu’ veloce Limitazioni sulle dimensioni dei cubes ROLAP Relational OLAP Dati memorizzati in relational database come cubes virtuali Non richiede trasformazioni dei dati Dati recuperati tramite SQL per l’analisi analytical processing piu’ lento Nessuna limitazione sulle dimensioni dei cubes
OLAP Tools Cognos PowerPlay Business Analyzer Holos BrioAnalyzer Microstrategy Oracle Express SAS Arbor Essbase
Utilizzo del Data Warehouse Tre applicazioni del data warehouse: Information processing supporta interrogazioni, analisi statistiche elementari, con risposte in forma di crosstabs, tabelle, digrammi e grafici Analytical processing analisi multidimensionale dei dati del data warehouse supporta operazioni OLAP di base, slice-dice, drilling, pivoting Data mining estrazione di informazione da schemi nascosti supporta associazioni, costruzione di modelli analitici, classificazioni e predizioni, e la presentazione dei risultati del mining tramite tool visuali.
Dall' On-Line Analytical Processing all’On Line Analytical Mining (OLAM) Perché il mining analitico online? Alta qualità dei dati conenuti nei data warehouse DW contengono dati integrati, consistenti e “puliti” Sono disponibili numerosi strumenti per l’alaborazione di data warehouse ODBC, OLEDB, Web accessing, service facilities, reporting e tool OLAP OLAP-based exploratory data analysis mining with drilling, dicing, pivoting, etc. Selezione on-line delle funzioni di data mining integrazione e swapping di funzioni di mining, algoritmi etask multipli. Architettura OLAM
Un’architettura OLAM Mining query Mining result OLAM Engine OLAP Layer4 User Interface User GUI API OLAM Engine OLAP Engine Layer3 OLAP/OLAM Data Cube API Layer2 MDDB MDDB Meta Data Filtering&Integration Database API Filtering Layer1 Data Repository Data cleaning Data Warehouse Databases Data integration
Data Mining & Forecasting Mining sul Warehouse Scelta della popolazione di dati Scelta della tecnica di mining Segmentazione dei dati in gruppi Scoperta di patterns nei dati Dati di previsione Selezione dei dati di trend Scelta del modello di previsione (forecast) Esecuzione del forecast Display dei risultati
Data Mining Record delle vendite: transaction id customer id products bought Record delle vendite: Trend: I prodotti p5, p8 vengono comprati spesso insieme Trend: Al cliente 12 piace il prodotto p9h
Mining and Forecasting Tools Scenario 4Thought Business Miner Clementine Darwin Holos SAS