UNIVERSITA’ POLITECNICA DELLE MARCHE Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica PROGETTO DI UN DATA WAREHOUSE PER IL SUPPORTO AL MONITORAGGIO DI PREZZI E TARIFFE SUL WEB http://pollosky.it Anno Accademico 2007/2008
Ambito Problematiche Obiettivi Osservatori prezzi TRASPARENZA E CONOSCENZA SUI LIVELLI E SULLE DINAMICHE CHE CARATTERIZZANO L’ ANDAMENTO DEI PREZZI Problematiche RACCOLTA DATI (COSTI, COMPLESSITÀ) POTENZIALITA’ DI ANALISI Obiettivi RACCOLTA ED INTEGRAZIONE DEI DATI SUL WEB GESTIONE DEI DATI SISTEMA DI SUPPORTO ALLE ANALISI Come già detto il progetto nasce da uno studio degli osservatori prezzi Caratteristiche servizi Si sono individuate delle problematiche Ciò ha condotto alla definizione di un insieme di obiettivi orientati verso la raccolta e la gestione dei dati Che hanno poi portato all’implementazione di una soluzione per il supporto all’attività di monitoraggio di prezzi e tariffe
Si possono notare linguaggi e strumenti di riferimento Area indirizzata all’analista Estrarre informazioni dalle sorgenti web coordinare le chiamate al wrapper tool Interpretare i dati estratti applicare una logica per il riconoscimento delle informazioni Supervisionare le operazioni di caricamento monitorare le fasi di caricamento, prevedere dei file di log Supportare analisi di alto livello implementare strumenti analitici flessibili ed efficaci
Attività progettuale Progettazione della base dati Completa Generalizzata Soluzione problematiche Gestione delle eterogeneità (aggregazioni) Base dati capace di agevolare le operazioni analitiche Diversi tipi Parallelamente si sono gestite tutta una serie di problematiche legate alla progettazione della base dati La maggiore criticità si è incontrata nella gestione delle aggregazioni tra i dati
Sistema di supporto alle analisi Analisi flessibili ed interattive OLAP Modello multidimensionale Dimensione Funzione di aggregazione Lo scopo è di riuscire a realizzare un sistema che permetta di gestire analisi flessibili ed interattive Generare query dinamicamente Nei data warehouse l’analisi avviene rappresentando i dati in forma multidimensionale Modello logico di riferimento è il datacube… Fatto: concetto sul quale centrare l’analisi Misura: proprietà atomica di un fatto Dimensione: prospettiva lungo la quale effettuare l’analisi Misura
Metodologia di progettazione [Cabibbo, 1998]: Data warehouse Metodologia di progettazione [Cabibbo, 1998]: Studio della natura delle sorgenti Formato di rappresentazione dei dati Proprietà associate ai fatti Identificazione delle misure e delle prospettive di analisi Identificazione di fatti e dimensioni Schema Entità-Relazione Grafo Dimensionale Modello MD Identificazione di fatti e misure analisi dei requisiti (valutazione degli osservatori prezzi)
Progettato per immagazzinare voci di prezzo per differenti tipologie di prodotti: carburanti, alimenti, servizi
Gestione delle eterogeneità informazioni sul web diversi livelli di granularità Consideriamo ad esempio il sito prezzibenzina.it Ogni fonte presenta diversi livelli di granularità COMUNALE PROVINCIALE REGIONALE NAZIONALE
Misure aggregate Provincia 1,524 1,522 Comune 1 1,517 Comune 2 Roll up Misura aggregata AVG 1,522 Comune 1 1,517 Comune 2 Roll up 1,521 Comune 3 Data warehouse -> permette di visualizzare la misura a diversi livelli di dettaglio Drill down: aumenta il livello di dettaglio Roll up: aggrega secondo una funzione di aggregazione In una situazione di questo tipo idealmente avendo a disposizione tutti i rilevamenti comunali sarebbe possibile derivare le aggregazioni ai livelli superiori. Ma se il sito mette già a disposizione delle misure pre-aggregate allora il sistema deve riuscire a gestire la disponibilità di tali dati evitando di dover necessariamente avere a disposizione tutti i dati comunali per ricavare il valore nazionale. 1,536 Comune 4
Misure aggregate 1,520 Provincia 1,524 Provincia 1,522 Comune 1 GIA’ DISPONIBILE 1,524 Provincia AVG 1,522 Comune 1 1,517 Comune 2 1,521 Comune 3 L’aggregazione tramite roll up chiaramente dipende dai dati registrati nel data base, se ad esempio supponiamo che manchi il rilevamento in riferimento al comune 4 Gestire contemporaneamente dati aggregati tramite operazioni di rollup e dati preaggregati estratti dalla sorgenti (se la sorgente li mette a disposizione) NON PRESENTE NEL DATA WAREHOUSE - Comune 4
Possibili soluzioni Prevedere un modulo che pre-calcoli ogni livello di aggregazione navigabile Personalizzare il server OLAP Viste materializzate Intervenire a livello logico (query MDX) Intervenire a livello logico approccio più elegante Salvare gli aggregati direttamente nel database per poi evitare di dover gestire le aggregazioni durante la navigazione della tabella olap soluzione potenzialmente efficace ma di difficile sviluppo (investimenti in termini di tempo e collaudo) Il software va a pescare direttamente il dato senza andarlo a ricavare da aggregazioni online così però si disabilita il fattore di aggregazione anche per dimensioni per cui l’aggregatore è fondamentale. Viste materializzate in cui visualizzare esclusivamente le informazioni di interesse (soluzioni rigida) Query MDX Parla della ricompilazione di mondrian: aggregazione nulla, in questo modo però si limita il fattore di aggregazione anche per dimensioni per le quali l’aggregazione è valida
Campo per esplicitare il livello di aggregazione in riferimento agli indici che identificano una misura prezzo aggregato
Soluzione DIMENSIONE AUSILIARIA FILTRAGGIO NUOVA MISURA IF Level IS [Nazionale] THEN IF Level IS [Regionale] THEN IF Level IS [Provinciale] THEN IF Level IS [Comunale] THEN Query MDX Aggiungere una dimensione ausiliaria per esplicitare il livello di aggregazione associato ai dati Applicare delle operazioni di filtraggio per raggruppare i dati secondo i livelli di aggregazione di riferimento Generare una nuova misura per imporre al sistema il caricamento dei giusti valori in riferimento al livello di aggregazione corrente Ciò naturalmente non toglie la possibilità di visualizzare anche i dati che si otterrebbero dalle operazioni di roll up
Implementazione Motore OLAP Mondrian-JPivot Query espresse in MDX CONFIGURAZIONE Query espresse in MDX Legge i dati da un RDBMS Presenta i risultati in forma multidimensionale Architettura orientata verso prodotti open-source Il mondrian XML schema ha consentito di applicare la soluzione esposta precedentemente per risolvere la problematica dei dati pre-aggregati Cube Table Dimension Hierarchy Level CalculatedMember Measures Collezione di misure e dimensioni Relazioni con le tabella del database fisico Gerarchie legate ad una dimensione Mondrian XML Schema
Sperimentazione Significatività Analisi sui dati disponibili Generare query di interesse Elaborare rappresentazioni grafiche Confrontare le misure visualizzate Stimare i tempi di calcolo Performance Significatività Significatività delle informazioni proposte
Analisi OLAP Come è possibile diramare la tabella OLAP per esaminare le misure a diversi livelli di dettaglio
Analisi OLAP AGIP Scostamento anomalo pochi dati che producono una media alterata Tecnica di analisi della qualità 16 Luglio 2008
Conclusioni PROTOTIPO Riuso delle informazioni acquisite dal web Adattabilità a diverse tipologie di prodotti (Alimenti, Carburanti, Servizi, etc.) Analisi ad alto valore aggiunto PROTOTIPO Flessibile Adattabilità delle sorgenti Elasticità di analisi Robusto Nessun malfunzionamento rilevato Efficiente Rapidità Puntualità Il prototipo realizzato
Sviluppi Futuri Nuovi flussi informativi Supporto agli utenti nella costruzioni di analisi Nuovi servizi di analisi avanzata Data quality Data mining