Datawarehouse Architetture, strumenti ETL, modelli dei dati Giovanni Laboccetta Contenuti Introduzione al data warehousing Architetture per il data warehousing Strumenti ETL Modello multidimensionale Meta-dati 2 Introduzione al data warehousing Inportanza dell’informazione Dati = Informazione (?) Data warehouse cerca di utilizzare al meglio i dati per creare informazione Senza DW Query complesse scritte da specialisti su db aziendale Lunghi tempi di esecuzione, appesantimento db aziendale Risultati sotto forma di fogli elettronici Scarsa flessibilità 3 Introduzione al data warehousing Idea del DW: Separare operazioni “analitiche” da “transazionali” OLAP, On Line Analytical Processing OLTP, On Line Transactional Processing Raccoglitore che integri dati elementari da sorgenti di varia natura Organizzazione dei dati adatta ad analisi e valutazioni finalizzate al processo decisionale 4 Campi di applicazione del DW Commercio Analisi vendite e reclami Controllo spedizioni e inventari Customer care Turismo Controllo flussi turistici Supporto strutture ricettive Servizi finanziari Analisi del rischio e delle carte di credito Rivelazione frodi Telecomunicazioni Analisi flusso chiamate e profili clienti Sanità Analisi ricoveri e dimissioni Contabilità per centri di costo 5 Sistemi di supporto alle decisioni Insieme di tecniche e strumenti informatici per estrarre informazioni da dati memorizzati su supporti elettronici Ruolo dei sistemi di supporto alle decisioni Nel passato Nel futuro Descrivere il passato Anticipare il futuro Descrivere i problemi Suggerire i cambiamenti Ridurre i costi Aumentare i profitti 6 Sistemi di supporto alle decisioni Problematiche da affrontare Gestione di grandi moli di dati Accesso a diverse fonti su piattaforme eterogenee Gestione dell’accesso di più utenti per interrogazioni, analisi in tempo reale e simulazioni Gestione di versioni storiche dei dati 7 Il processo di data warehousing Complesso di attività che consente di trasformare i dati operazionali in conoscenza a supporto delle decisioni Al centro del processo vi è un repository dei dati che garantisce i seguenti requisiti: 8 Il processo di data warehousing Requisiti del processo Accessibilità a utenti con conoscenze limitate di informatica e strutture dati Integrazione dei dati sulla base di un modello standard dell’impresa Flessibilità di interrogazione per trarre il massimo vantaggio dal patrimonio informativo esistente Sintesi per permettere analisi mirate ed efficaci Rappresentazione multidimensionale per offrire all’utente una visione intuititva ed efficacemente manipolabile delle informazioni Correttezza e completezza dei dati integrati 9 Architetture per il data warehousing Caratteristiche architetturali irrinunciabili Separazione: elaborazione analitica e transazionale separate Scalabilità: architettura HW e SW facilmente ridimensionabile a fronte della crescita di dati e/o utenti Estendibilità: accogliere nuove applicazioni o tecnologie senza riprogettare il sistema Sicurezza: controllo degli accessi Amministrabilità: complessità di amministrazione non eccessiva 10 Architettura a un livello Minimizzazione dei dati memorizzati DW virtuale, ossia implementato come vista multidimensionale dei dati operazionali da un apposito middleware Contro No separazione OLAP/OLTP Storicizzazione limitata a livello di quella delle sorgenti Adatto in casi in cui si hanno esigenze di analisi limitate o volumi di dati molto ampi 11 Architettura a un livello 12 Architettura a due livelli Chiamata così per evidenziare separazione fra livello delle sorgenti e livello del DW In realtà si hanno quattro livelli corrispondenti a stadi diversi del flusso di dati 13 Architettura a due livelli 14 Livello delle sorgenti Fonti di dati eterogenee Database aziendali relazionali o legacy Sistemi informativi esterni all’azienda 15 Livello dell’alimentazione I dati delle sorgenti devono essere estratti, ripuliti, completati e integrati secondo uno schema comune Strumenti ETL (Extraction, Transformation, Loading) Problematiche tipiche di sistemi informativi distribuiti (gestione dati inconsistenti e strutture dati incompatibili) 16 Livello del warehouse Informazioni raccolte in un singolo contenitore centralizzato: il DW DW consultabile direttamente o usato per costruire data mart (parziale replica orientata verso specifiche aree dell’azienda) Il contenitore di meta-dati contiene informazioni su: sorgenti, meccanismi di accesso, procedure pulitura e alimentazione, utenti, schemi data mart, etc… 17 Livello di analisi Consultazione efficiente e flessibile dei dati integrati Reportistica, analisi, simulazioni, etc… Utilizzate tecniche per: ottimizzazione interrogazioni complesse, indicizzazioni avanzate, interfacce visuali amichevoli. 18 Data mart “dipendenti” DW primario o aziendale è il “contenitore” centrale DM sono DW “locali” che replicano, ed eventualmente sintetizzano ulteriormente, la porzione di DW primario di interesse per una particolare area applicativa Anche se non strettamente necessari i DM sono molto utili in realtà medio-grandi: Come blocchi costruttivi durante la realizzazione incrementale del DW Perché delineano i contorni delle informazioni necessarie a un particolare tipo di utenti Perché permettono di raggiungere prestazioni migliori essendo di dimensioni inferiori al DW primario 19 Data mart “indipendenti” 20 Architettura a due livelli: motivazioni A livello del warehouse è sempre disponibile informazione di buona qualità, indipendentemente dalla disponibilità delle sorgenti L’interrogazione effettuata sul DW non interferisce con la gestione delle transazioni a livello operazionale L’organizzazione logica del DW è basata su modello multidimensionale mentre le sorgenti offrono in genere modelli relazionali Differenza temporale e di granularità fra OLTP (dati correnti e al massimo livello di dettaglio) e OLAP (dati storici e di sintesi) A livello di DW si possono usare tecniche specifiche per ottimizzare analisi e reportistica 21 Architettura a tre livelli Introduce il livello dei dati riconciliati che contiene dati integrati, consistenti, corretti, volatili, correnti e dettagliati Il DW viene alimentato non dalle sorgenti ma dai dati riconciliati Vantaggi: Crea un modello dei dati comune e di riferimento per l’intera azienda Separazione fra estrazione, integrazione e pulitura e alimentazione del DW Svantaggi Introduzione di ulteriore ridondanza Note: esistono anche architetture ibride oltre quella a uno e due/tre livelli in cui alcune interrogazioni vengono fatte nel DW e altre ricondotte alle sorgenti operazionali 22 Architetture a tre livelli 23 Strumenti ETL Alimentano il DW o il livello dei dati riconciliati. Le operazioni svolte vengono chiamate riconciliazione La riconciliazione è fra le fasi più impegnative del processo di warehousing La riconciliazione avviene quando il DW viene popolato per la prima volta e, periodicamente, quando viene aggiornato La riconciliazione è composta da quattro processi: Estrazione (extraction, capture) Pulitura (cleaning, cleansing, scrubbing) Trasformazione (transformation) Caricamento (loading) 24 Strumenti ETL 25 Estrazione Dati rilevanti estratti dalle sorgenti Estrazione statica: fatta solo la prima volta, cattura tutti dati operazionali Estrazione incrementale: usata per l’aggiornamento periodico, cattura solo le variazioni rispetto all’ultima estrazione (può usare il log del DBMS operazionale) L’estrazione può essere guidata dalle sorgenti (se le applicazioni notificano variazioni ai dati) o da trigger del DB operazionale La scelta dei dati da estrarre avviene in base alla loro qualità che dipende da vincoli, formato dei dati, chiarezza degli schemi, … 26 Pulitura Migliorare la qualità dei dati eliminando la sporcizia: Dati duplicati Inconsistenza fra valori logicamente associati Dati mancanti Uso non previsto di un campo Valori impossibili o errati Valori inconsistenti per la stessa entità dovuti a diverse convenzioni o abbreviazioni Valori inconsistenti per la stessa entità dovuti ad errori di battitura Correzione ed omogeneizzazione basata su dizionari per correggere errori e riconoscere sinonimi Pulitura basata su regole che applica regole proprie del dominio applicativo 27 Trasformazione Converte i dati dal formato operazionale sorgente a quello del DW Situazioni critiche da correggere: Testi liberi che nascondono informazioni importanti Uso di formati differenti per lo stesso tipo di dato Fasi della trasformazione Conversione, normalizzazione e matching Denormalizzazione e aggregazione Pulitura e trasformazione sono spesso allacciate e sovrapposte 28 Esempio pulitura/trasformazione 29 Un modello concettuale per i DW Per i DBMS relazionali viene usato il modello Entity/Relatioship (E/R) Non utilizzabile per i DW perché: 1. I DW utilizzano una visione multidimensionale dei dati, mentre l'E/R propone una visione piatta degli stessi 2. Non risulta semplice formulare le interrogazioni sullo schema E/R 3. Il modello E/R è difficilmente comprensibile dai non addetti ai lavori, quindi non rende semplice il dialogo tra progettista ed utente 4. L'E/R produce una documentazione non sempre priva di ambiguità e non sempre sufficientemente espressiva Dimensional Fact Model (DFM) Modello Multidimensionale Fatto Dimensione Gerarchie Misure Processo di business da modellare Rappresentazione della granularità dei fatti Aggregazione delle istanze dei fatti Attributo numerico di un fatto Esempio di uno schema DFM Modello multidimensionale Modello di rappresentazione dei dati molto diffuso nei DW Semplice e intuitivo anche per non esperti di informatica Si presta a interrogazioni orientate al processo decisionale 33 Modello multidimensionale Idea base: dati come punti di uno spazio le cui dimensioni corrispondono alle dimensioni d’analisi Un punto rappresenta un evento e viene descritto tramite un insieme di misure di interesse per il processo decisionale 34 Modello multidimensionale Gli oggetti che influenzano le decisioni sono fatti del mondo aziendale (vendite, spedizioni, ricoveri, interventi chirurgici, etc…) Le occorrenze di un fatto sono eventi accaduti (le singole vendite o spedizioni, etc…) Per ciascun fatto interessano i valori di un insieme di misure che descrivono gli eventi (l’incasso di una vendita, la quantità spedita, la durata di un intervento chirurgico, etc…) 35 Modello multidimensionale Per analizzare i numerosissimi eventi che accadono si immagina di collocarli in uno spazio n-dimensionale i cui assi, le cosiddette dimensioni di analisi, definiscono diverse prospettive. Esempi: Le vendite di una catena di negozi possono essere collocate in uno spazio 3-d con dimensioni prodotto, negozio, data I ricoveri sono nello spazio reparto, data, paziente Le spedizioni possono essere nello spazio con dimensioni prodotto, data, ordine, destinazione, 36 modalità La metafora del cubo Gli eventi corrispondono a celle di un cubo (o ipercubo) i cui spigoli rappresentano le dimensioni di analisi Ogni cella del cubo contiene un valore per ciascuna misura Il cubo è sparso dato che molti eventi possibili non si verificano (ad esempio la vendita di un certo prodotto un certo giorno in un certo negozio non è detto che si verifichi) 37 Analisi multidimensionale I dati raccolti vengono visti come un ipercubo in cui ogni dimensione rappresenta una classe di dati Vendite di una catena di negozi 39 Rappresentazione di cubi nel modello relazionale Si può pensare di rappresentare un cubo con una relazione avente per attributi tutte le dimensioni e le misure e per tuple gli eventi Le dimensioni costituiscono la chiave primaria C’è una dipendenza funzionale fra le dimensioni e le misure Esempio: VENDITE(negozio, prodotto, data, quantità, incasso) negozio, prodotto, data -> quantità, incasso 40 Eventi del modello ed eventi del dominio applicativo L’insieme delle dimensioni scelte per rappresentare i fatti identifica eventi del modello multidimensionale ma non necessariamente del dominio applicativo Ad esempio nel dominio applicativo un evento di vendita corrisponde all’acquisto di prodotti da parte di un cliente (vendita ≈ scontrino) Nel modello multidimensionale l’evento corrisponde al venduto giornaliero di un certo prodotto in un certo negozio in una certa data L’evento del modello multidimensionale contiene quindi informazioni aggregate rispetto ai dati operazionali 41 Gerarchie delle dimensioni e livelli di aggregazione Ciascuna dimensione è associata a una gerarchia di livelli di aggregazione (gerarchia di roll-up) I livelli che compongono la gerarchia si dicono attributi dimensionali In cima a ciascuna gerarchia c’è un livello fittizio che raggruppa tutti i valori di una dimensione Una gerarchia è esprimibile nel modello relazionale con un insieme di dipendenze funzionali fra attributi dimensionali 42 Esempio Prodotto -> Tipo -> Categoria Negozio -> Citta -> Regione 43 Cubo multidimensionale Un cubo multidimensionale è incentrato su un fatto di interesse per il processo decisionale. Esso rappresenta un insieme di eventi, descritti quantitativamente da misure numeriche. Ogni asse del cubo rappresenta una possibile dimensione di analisi; ciascuna dimensione può essere vista a più livelli di dettaglio individuati da attributi strutturati in gerarchie. 44 Terminologia alternativa Fatto e cubo sono usati intercambiabilmente Alcuni chiamano dimensioni le intere gerarchie Le misure sono anche chiamate variabili, metriche, proprietà, attributi, indicatori Gli attributi dimensionali sono anche chiamati livelli o parametri A seconda del contesto comunque non dovrebbero esserci ambiguità 45 Accesso ai cubi Le informazioni nel cubo sono una sintesi dei dati operazionali ma ancora poco fruibili perché troppo numerosi Esempio: 3 anni di transazioni (1000 giorni) per 50 negozi e 1000 prodotti 5 x 107 eventi possibili! Anche supponendo che i negozi vendano giornalmente solo 100 prodotti diversi restano sempre 5 x 106 eventi da analizzare Si riduce la quantità di dati (e si ottengono quindi informazioni utili) utilizzando due tecniche: Restrizione Aggregazione 46 Restrizione Restringere i dati significa ritagliare la porzione di cubo di interesse Concettualmente simile a selezioni e proiezioni dell’algebra relazionale Caso più comune è lo slicing in cui si riduce la dimensionalità fissando un valore per una o più dimensioni 47 Restrizione 48 Restrizione La selezione è una generalizzazione dello slicing in cui si esprimono condizioni sugli attributi dimensionali Esempio: la selezione delle vendite del detersivo Brillo nei negozi di Bologna nei giorni di Gennaio produce una matrice bidimensionale facilmente analizzabile La proiezione è la scelta di mantenere per ciascun evento solo alcune misure Esempio: l’incasso ma non la quantità 49 Aggregazione Meccanismo che permette di raggruppare in base a qualche criterio le celle del cubo Esempio: analisi delle vendite non a livello giornaliero ma mensile. Bisogna raggruppare tutte le celle di ciscun mese in un’unica macro-cella. Cambia la granularità della dimensione su cui si è raggruppato L’evento alla nuova granularità contiene la sintesi degli eventi che aggrega Si può aggregare ulteriormente sul tempo o su altre dimensioni o combinare aggregazione e selezione Esempio: analisi delle vendite per città nei soli mesi estivi 50 Aggregazione 51 Aggregazione 52 Meta-dati Dati utilizzati per descrivere altri dati Meta-dati interni: di interesse per l’amministratore Sorgenti, trasformazioni, politiche, schemi logici e fisici, vincoli, profili utenti, etc… Meta-dati esterni: di interesse per gli utenti Sorgenti, valore, uso e funzioni dei dati del DW, processi di trasformazione a cui sono sottoposti, etc… Definizioni dei dati, qualità, unità di misura, aggregazioni significative, etc… Fondamentali per interoperabilità di diversi sistemi di DW Formati standard per i meta-dati basati su XML 53 Caso di studio: monitoraggio flussi turistici Progettazione di un DM per monitorare i flussi turistici del piemonte Disponibilità di dati in file csv nel periodo 2006-2010 I dati sono per provincia, per mese e per settore (alberghiero, extra albeghiero) Sono distinti per arrivi e presenze di italiani e stranieri Caso di studio: monitoraggio flussi turistici Porzione del contenuto di un file dati (CSV) Anno Provincia Mesi Italiani Arrivi Italiani Presenze Totale arrivi presenze 2009 Alessandria 01-gen 11791 22300 2897 5794 14688 28094 2009 Alessandria 02-feb 13139 24508 2821 6280 15960 30788 2009 Alessandria 03-mar 13145 26277 3689 8539 16834 34816 2009 Alessandria 04-apr 13167 27413 5036 11420 18203 38833 2009 Alessandria 05-mag 15989 38141 7736 17806 23725 55947 2009 Alessandria 06-giu 14970 37859 7571 16202 22541 54061 2009 Alessandria 07-lug 13974 41530 9850 20902 23824 62432 2009 Alessandria 08-ago 13791 46432 10400 23378 24191 69810 2009 Alessandria 09-set 15975 45384 8570 19415 24545 64799 2009 Alessandria 10-ott 15976 40325 7497 16716 23473 57041 2009 Alessandria 11-nov 15169 31007 3843 8784 19012 39791 2009 Alessandria 12-dic 13031 22979 2716 5651 15747 28630 01-gen 02-feb 170117 2610 3147 404155 6721 7914 72626 784 991 160887 1867 2096 242743 3394 4138 565042 8588 10010 2009 Alessandria 2009 Asti 2009 Asti Totale Stranieri Arrivi Stranieri Presenze Dimensional Fact Model Flussi Turistici Star schema Definizione in Access Definizione in Access Definizione in Access Definizione in Access Definizione in Access Definizione in Access Definizione in Access Definizione in MYSQL Analisi delle sorgenti • Analisi delle sorgenti • Progettazione delle regole di popolamento • Individuazione delle trasformazioni e delle attività di cleaning sui dati • Sviluppo del processo di ETL tramite PDI ETL con Pentaho Data Integration • formato in input: file CSV • Storico_flussi per territorio_2006-2008_dettaglio mesi con settore.csv • FLUSSI TURISTICI PER TERRITORIO - 2009 Dettaglio MESI - Generale con settore.csv • flussi_turistici_mensile_2010.csv Analisi delle sorgenti Storico_flussi per territorio_2006-2008_dettaglio mesi con settore.csv ANN O PROVINCIA Settore 2006ALESSANDRIA Alberghiero 2006ALESSANDRIA Alberghiero 2006ALESSANDRIA VERBANO2006 CUIO-OSSOLA VERBANO2006 CUIO-OSSOLA VERBANO2006 CUIO-OSSOLA …. …. …. …. 2008VERCELLI 2008VERCELLI 2008VERCELLI Alberghiero Arrivi - Presenze Arrivi PresenzeArrivi - Presenze Mesi italiani italiani stranieri stranieri totale totale 01-gen 351 1257 99 321 450 1578 02-feb 466 1308 277 1080 743 2388 03mar 643 1294 143 480 786 1774 Alberghiero 01-gen 711 4065 71 365 782 4430 Alberghiero 02-feb 03mar …. …. 838 2441 159 625 997 3066 855 2906 413 1180 1268 …. …. 4086 Alberghiero …. …. ExtraAlberghiero ExtraAlberghiero ExtraAlberghiero …. …. …. …. …. …. …. …. …. …. 08-ago 1203 8180 560 1229 1763 9409 09-set 403 2131 110 533 513 2664 10-ott 288 1920 26 398 314 2318 Analisi delle sorgenti FLUSSI TURISTICI PER TERRITORIO - 2009 Dettaglio MESI - Generale con settore.csv Anno Provincia settore Mesi Italiani Arrivi Italiani Presenze Stranieri Arrivi Stranieri Presenze Totale arrivi Totale presenze 2009Alessandria Alberghiero 01-gen 8253,7 15610 2027,9 4055,8 10281,6 19665,8 2009Alessandria Alberghiero 02-feb 9197,3 17155,6 1974,7 4396 11172 21551,6 2009Alessandria Alberghiero 03-mar 9201,5 18393,9 2582,3 5977,3 11783,8 24371,2 2009Alessandria Alberghiero 04-apr 9216,9 19189,1 3525,2 7994 12742,1 27183,1 Analisi delle sorgenti flussi_turistici_mensile_2010.csv Anno Provincia Mesi Settore Arrivi italiani Presenze italiani Arrivi stranieri Presenze stranieri Arrivi totale Presenze totale 2010ALESSANDRIA 01-genAlberghiero 10581 19153 2882 6202 13463 25355 2010ALESSANDRIA 02-febAlberghiero 11579 20909 2814 6014 14393 26923 2010ALESSANDRIA 03-marAlberghiero 13397 23941 3534 7451 16931 31392 2010ALESSANDRIA 04-aprAlberghiero 13861 28320 6782 13557 20643 41877 2010ALESSANDRIA 05-magAlberghiero 15620 35046 9264 17728 24884 52774 ETL con Pentaho Data Integration Insert manuale dim_nazionalita ID NAZIONALITA 1 Italiana 2 Straniera ETL con Pentaho Data Integration Insert manuale dim_settore ID NOME_SETTORE 1 Alberghiero 2 Extra-Alberghiero ETL con Pentaho Data Integration dim_periodo ETL con Pentaho Data Integration dim_territorio ETL con Pentaho Data Integration Fact_flussi_turistici (2006-2008) ETL con Pentaho Data Integration Fact_flussi_turistici (2009) ETL con Pentaho Data Integration Fact_flussi_turistici (2010) Definizione del modello multidimensionale Definizione del modello multidimensionale (mondrian) Navigazione cubo