Tecnologie per i sistemi informativi Breve introduzione ai data warehouse (per gli allievi che non hanno seguito BD2) Letizia Tanca lucidi tratti dal libro: Atzeni, Ceri, Paraboschi, Torlone Introduzione alle Basi di dati, Mc Graw Hill Italia 1 Il problema Una promessa della tecnologia relazionale: flexible data access : Uno strumento per l utente finale in cui tutte le query siano ugualmente formulabili Ma la tecnologia relazionale non ha mantenuto questa promessa: Complessità e rigidità delle applicazioni Enfasi su OLTP Le conseguenze: - Masse di dati per la gestione operativa - Scarso utilizzo dei dati per la gestione strategica 2
Le query che vorremmo poter facilmente formulare Incassi registrati lo scorso anno per ciascuna regione e ciascuna categoria di prodotto Correlazione tra l andamento dei titoli azionari dei produttori di computer e i profitti trimestrali degli ultimi 5 anni Quali sono gli ordini che massimizzano gli incassi? Quale di due nuove terapie risulterà in una diminuzione della durata media dei ricoveri? 3 OLTP Tradizionale elaborazione di transazioni, che realizzano i processi operativi dell azienda-ente Operazioni spesso predefinite e relativamente semplici Ogni operazione coinvolge pochi dati Dati di dettaglio, aggiornati Le proprietà acide (atomicità, correttezza, isolamento, durabilità) delle transazioni sono essenziali Le dimensioni delle basi di dati sono dell ordine dei gbyte La principale metrica di prestazione e il throughput delle transazioni 4
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 Le dimensioni del warehouse raggiungono facilmente i terabyte Le prestazioni considerate sono il throughput delle interrogazioni e il loro tempo di risposta 5 OLTP vs OLAP On Line Transaction Processing vs On Line Analytical Processing È estremamente difficile far convivere i due carichi di lavoro Diversi ordini di motivi: Ragioni organizzative (disomogeneità di utenti e di requisiti) Ragioni tecniche La configurazione di sistemi dedicati a uno solo dei due compiti è un problema gestibile 6
OLTP vs OLAP, requisiti sui dati OLTP OLAP Accuratezza Sul dettaglio Sul consolidato Copertura Funzionale Integrata Ampiezza Limitata Vasta temporale (serie storiche) Aggiornamento Immediato Giorni/Settimane Granularità Dettagli Dettagli e aggregati Query ad hoc Rare Frequenti 7 Ragioni tecniche del conflitto OLTP/OLAP Conflitto di lock OLTP: tante transazioni rapide con lock esclusivi OLAP: poche transazioni lunghe con lock condivisi OLTP+OLAP o le transazioni OLTP sono molto rallentate o le query OLAP non riescono ad essere eseguite 8
Ragioni tecniche del conflitto OLTP/OLAP Uso degli indici OLTP: pochi e solo se servono OLAP: tanti per coprire ogni esigenza OLTP+OLAP o le transazioni OLTP rallentano per l aggiornamento di molti indici o le query OLAP non hanno a disposizione gli indici necessari 9 Ragioni tecniche del conflitto OLTP/OLAP Precomputazioni di query, materializzazione di viste OLTP: molto raramente, per problemi di consistenza e di carico OLAP: aspetto chiave per abbassare i tempi di risposta Differenze nel modello logico OLTP: elevata frammentazione e un gran numero di tabelle OLAP: poche tabelle denormalizzate Differenti algoritmi di join 10
Considerazioni sul conflitto OLTP/OLAP Il conflitto è intrinseco Non sparisce con l aumentare della potenza di calcolo, anzi può crescere La soluzione migliore consiste nel separare i due ambienti Ciò porta alla realizzazione dei Data Warehouse Fondamentale l asincronicità degli aggiornamenti 11 DATA WAREHOUSE (DW) Tecnica per assemblare e gestire correttamente dati provenienti da sorgenti diverse, al fine di ottenere una visione dettagliata di un sistema economico E una raccolta di dati Integrata Permanente Variabile nel tempo Orientata ad un preciso argomento A supporto di decisioni manageriali 12
Altri aspetti di un ambiente OLAP Eterogeneità dei dati di partenza Conservazione di serie storiche Pulizia dei dati Sistema transazionale Collezione di sistemi differenti Enfasi sull automazione Molti utenti Ambito limitato (diviso per funzioni) Data Warehouse Visione sintetica integrata Enfasi sulla generazione di informazione Pochi utenti Ambito globale (a livello di impresa) 13 Fattori critici di successo Replicazione dei dati che non abbia un grande impatto sul sistema transazionale Caricamento dei dati nella finestra temporale assegnata Scalabilità della soluzione Accettazione da parte degli utenti del sistema (vari tipi di presentazione) Correttezza dei dati replicati Uso di standard Congruenza del modello dei dati con la realtà 14
Obiettivi di OLAP Definire una versione dei dati aziendali consistente, pubblica, di qualità Facilitare l'accesso ai dati per uso strategico Applicazioni di OLAP Supporto alle decisioni e business planning (finanze, marketing, vendite) 15 Processi processi direzionali processi gestionali processi operativi 16
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 17... 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 18
... 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 19... 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 20
... 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 21... 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 22
Architettura per il data warehousing Monitoraggio & Amministrazione Sorgenti esterne Basi di dati operazionali Metadati Enterprise Data Warehouse Strumenti di analisi Analisi dimensionale Visualizzazione Data mining Sorgenti dei dati Data Mart 23 DW e Data Mart Una DW spesso integra diversi Data Mart Gli utenti normalmente si rivolgono a un particolare Data Mart I Data Mart condividono dati tra di loro Ciascun Data Mart è responsabile di un particolare aspetto della realtà aziendale 24
MODELLI DEI DATI PER OLAP devono supportare analisi e calcoli sofisticati su diverse dimensioni e gerarchie il modello logico dei dati piu adatto e una struttura multidimensionale - il data cube le dimensioni del cubo sono costituite dagli attributi secondo i quali si vogliono fare le ricerche (chiavi) ogni dimensione puo contenere a sua volta una gerarchia DATA {GIORNO - MESE TRIMESTRE - ANNO} PRODOTTO {NOME - TIPO - CATEGORIA} (LAND ROVER - FUORISTRADA - AUTOVEICOLI) le celle del cubo contengono i valori metrici relativi ai valori dimensionali 25 MODELLI LOGICI DEI DATI PER OLAP ESEMPIO PER UNA COMPAGNIA DI ASSICURAZIONI DIMENSIONI VALORI METRICI NUMERO DI POLIZZE, VALORE DEI PREMI 1990 1991 1992 ANNO 1993 1995 1996 1997 <20 20-30 30-40 40-50 50-60 60-70 70-80 >80 MALATTIE-VITA RC-FAMIGLIA FURTO-INCENDIO RC-AUTO TIPO ETA 26
Rappresentazione multidimensionale Concetti rilevanti: fatto un concetto sul quale centrare l analisi - modella un evento che accade nell azienda misura una proprietà atomica di un fatto da analizzare ne descrive un aspetto quantitativo dimensione descrive una prospettiva lungo la quale effettuare l analisi 27 Esempi di fatti/misure/dimensioni Catena di negozi Fatto: vendite Misure: quantità venduta, incasso Dimensioni: prodotto, tempo, zona Compagnia telefonica Fatto: telefonata Misure: costo, durata Dimensioni: chiamante, chiamato, tempo 28
Rappresentazione multidimensionale dei dati Mercati Quantità Prodotti Periodi di tempo Vendite 29 Viste su dati multidimensionali Mercati Prodotti Tempo 30
Il manager regionale esamina la vendita dei prodotti in tutti i periodi relativamente ai propri mercati Mercati Prodotti Tempo 31 Il manager di prodotto esamina la vendita di un prodotto in tutti i periodi e in tutti i mercati Mercati Prodotti Tempo 32
Il manager finanziario esamina la vendita dei prodotti in tutti i mercati relativamente al periodo corrente e quello precedente Mercati Prodotti Tempo 33 Il manager strategico si concentra su una categoria di prodotti, una area regionale e un orizzonte temporale medio Mercati Prodotti Tempo 34
Dimensioni e gerarchie di livelli Ciascuna dimensione è organizzata in una gerarchia che rappresenta i possibili livelli di aggregazione per i dati regione provincia città negozio categoria marca prodotto anno trimestre mese giorno 35 OPERAZIONI OLAP SUL WAREHOUSE roll-up (accumulare) aumenta il livello di aggregazione dei dati - volume di vendita totale dello scorso anno per categoria di prodotto e regione drill-down (perforare) aumenta il livello di dettaglio dei dati - per una particolare categoria di prodotto e regione, mostra le vendite giornaliere slice-and-dice (affettare e tagliare a cubetti) seleziona e proietta riducendo la dimensionalita dei dati pivoting (far perno) seleziona due dimensioni attorno alle quali aggregare i dati metrici (ri-orienta il cubo) ranking (attribuire una classe di merito) ordina i dati secondo criteri predefiniti operazioni tradizionali (selezione, attributi calcolati, ecc.) 36
OPERAZIONI OLAP DRILL-DOWN TIPO TIPO ETA ROLL-UP ETA ANNO MESE 37 OPERAZIONI OLAP ANNO PIVOTING ANNO ETA TIPO TIPO ETA ETA TIPO ANNO 38
OPERAZIONI OLAP ANNO SLICE AND DICE ANNO ETA TIPO ETA TIPO 39 Visualizzazione dei dati I dati vengono infine visualizzati in veste grafica, in maniera da essere facilmente comprensibili. Si fa uso di: tabelle, istogrammi, grafici, torte, superfici 3D, bolle, area in pila, ecc. 40
Tabella di partenza mese febbraio marzo aprile prodotto Somma ammontare 130.000.000 140.000.000 135.000.000 Somma quantità 45.000 50.000 51.000 41 Drill-down: aggiunta di una dimensione Drill-down sulla zona mese febbraio febbraio febbraio marzo marzo marzo aprile aprile aprile prodotto zona nord est centro nord est centro nord est centro Somma quantità 15.000 17.000 13.000 18.000 18.000 14.000 18.000 17.000 16.000 42
Roll-up: eliminazione di una dimensione Roll-up sul mese prodotto zona nord est centro Somma quantità 51.000 52.000 43.000 43 Query aggregate Esempi: Totale delle vendite per categoria di prodotto per supermercato per giorno Totale delle vendite mensili di prodotti per supermercato Totale delle vendite mensili per categoria per supermercato Media delle vendite mensili per categoria su tutti i supermercati 44
Aggregazione in SQL : data cube Esprime tutte le aggregazioni possibili delle tuple di una tabella Utilizza il nuovo valore polimorfo 45 Data cube in SQL select Modello, Anno, Colore, sum(vendite) from Vendite where Modello in {'Fiat','Ford'} and Colore = 'Rosso' and Anno between and 1995 group by Modello, Anno, Colore with cube 46
47 Fatti rilevanti modello ford colore anno 1995 vendite 50 85 80 48 Dati nel data cube modello ford ford ford ford colore anno 1995 1995 1995 1995 sum (vendite) 50 85 50 85 135 135 80 80 80 80 130 85 215 130 85 215
Visualizzazione del data cube.. rossȯ.. 1995....... ford 49 Roll up select Modello, Anno, Colore, sum(vendite) from Vendite where Modello in {'Fiat','Ford'} and Colore = 'Rosso' and Anno between and 1995 group by Modello, Anno, Colore with roll up 50
Dati nel roll up modello anno coloresum(vendite) ford ford ford 1995 1995 50 85 80 50 85 80 135 80 215 51 Tipiche dimensioni della data warehouse tempo: 730 giorni magazzini: 300 prodotti: 30.000 vendite quotidiane: 3.000 promozioni: non piu' di una per prodotto venduto vendite: 730 x 300 x 3000 x 1 = 657 milioni. dimensioni: 657 milioni x 8 attributi x 4 byte = 21gb. 52