Data Profiling with Metanome

44
Data Profiling Matteo Senardi

Transcript of Data Profiling with Metanome

Page 1: Data Profiling with Metanome

Data ProfilingMatteo Senardi

Page 2: Data Profiling with Metanome

ScopoFine dello studio è valutare le tecniche di Data Profiling nell’ambito della ricerca delle dipendenze funzionali.

I test effettuati sono basati su alcuni esperimenti di dependency discovery, riportati nell’articolo “Functional Dependency Discovery: An Experimental Evaluation of Seven Algorithms”.

Page 3: Data Profiling with Metanome

Cosa c’è dentro i nostri dati?

Page 4: Data Profiling with Metanome

Cosa c’è dentro i nostri dati?Modelli, Densità, Vincoli Riscontri attesi

Residuali, Outlier, Anomalie Riscontri disattesi

Page 5: Data Profiling with Metanome

Che uso posso farne?

Page 6: Data Profiling with Metanome

Che uso posso farne?1. Aiutare a fare una valutazione approfondità della

qualità dei dati comprendere contenuto, struttura e relazioni sul set di dati analizzato;

2. Scoprire anomalie nei dati;

3. Capire se i dati esistenti possono essere applicati ad altre aree o scopi.

Page 7: Data Profiling with Metanome

Analisi del contestoDurante il processo di database administration si possono riscontrare varie situazioni, quali:

1. Diverse inconsistenze all’interno dei dati, quali record mancanti o valori NULL;

2. Colonna scelta come chiave primaria risulta non univoca all’interno della tabella;

Page 8: Data Profiling with Metanome

Analisi del contesto3. Incoerenza tra design dello schema e esigenze

dell’utente finale;

4. Qualsiasi altro problema con i dati, non correttamente valutato.

Correggere questi problemi di data quality porta ad un grande lavoro di rielaborazione aumento dei costi in termini di tempo e spesa!

Page 9: Data Profiling with Metanome

ApproccioPiuttosto che cercare una soluzione al problema, sarebbe meglio agire inzialmente in modo da evitare che si possa creare il problema stesso....

Dopo tutto “prevenire è meglio che curare”.

Proprio qui viene in aiuto il Data Profiling.

Page 10: Data Profiling with Metanome

Definizione di Data Profiling“Processo di esaminazione e analisi statistica del contenuto di una sorgente di dati e successiva raccolta di informazioni.” Wikipedia

“Data Profiling si riferisce all’attività di creazione di un piccolo ma informativo sommario di database.” Ted Johnson

Page 11: Data Profiling with Metanome

ScopoIl processo di Data Profiling produce statistiche che possono essere utilizzate per vari scopi di analisi:

• Analizzare la qualità dei dati;

• Cercare il numero di valori NULL di un attributo;

• Controllare se valori NULL o di stringhe vuote possono generare problemi ;

Page 12: Data Profiling with Metanome

Scopo• Analisi statistica di lunghezza massima, minima e

media delle stringhe di una colonna;

• Determinare il formato dei dati appropriato;

• Trovare colonne univoche da scegliere come chiavi;

• Ricerca di dipendenze funzionali.

Page 13: Data Profiling with Metanome

Come applicare Data Profiling?Generalmente Data Profiling si conduce in due modi:

1. Scrivendo query SQL ad hoc su sample di dati;

2. Utilizzando strumenti di Data Profiling quali:• IBM WebSphere Information Analyser;• Microsoft’s SQL Server Integration Services;• SAP BusinessObjects Information Steward;• Talend Open Studio for Data Quality;• Metanome; • etc…

Page 14: Data Profiling with Metanome

MetanomeProgetto a capo di Felix Naumann presso Hasso-Plattner-Institute applicazione freeware con funzionalità di Data Profiling realizzata mediante lo sviluppo e l'integrazione di algoritmi efficienti in uno strumento comune web-based.

Page 15: Data Profiling with Metanome

ArchitetturaApplicazione sviluppata seguendo lo standard MVC: 1. Model script e file di configurazione XML;

2. View http server;

3. Cotroller java.

Page 16: Data Profiling with Metanome

Progetti di Data Profiling basati su MetanomeVengono forniti diversi algoritmi per svolgere compiti di Data Profiling utilizzando Metanome:

• Functional dependency discovery;•Unique column combination discovery;•Inclusion dependency discovery;•…..

Page 17: Data Profiling with Metanome

Dependency DiscoveryData uno schema di relazione R(X), una dipendenza funzionale su R è un vincolo di integrità espresso nella forma YZ, dove Y e Z sono sottoinsiemi di X.

Il procedimento di scoperta delle FD presenta diverse problematiche:

1. Costo per tempo di ricerca accettabile;2. Dipendenze funzionali individuate devono sussistere.

Page 18: Data Profiling with Metanome

Algoritmi esistentiTra gli algoritmi di dependency discovery compatibili con cui si cerca di ottimizzare i risultati, diminuendo il tempo di ricerca:

• Tane;

• FD-Mine.

Di seguito sarà descritto funzionamento e criticità.

Page 19: Data Profiling with Metanome

TaneTane si basa su due principi:

1. Partizione degli attributi per ogni valore in attributo si creano degli insiemi che contengono il numero di righe che ne hanno un’occorrenza;

2. Ricerca bottom-up sulla struttura lattice si inizia testando XY a livello 1, poi con XXY a livello 2 ….

Page 20: Data Profiling with Metanome

TaneDue casi di potatura (pruning) sull’albero delle ricerche:

• Ogni volta che viene trovata una chiave;

• Ogni volta che viene trovata una superchiave, se XY ed X è superchiave, allora si potrà escludere XUY nella ricerca, tagliando gli archi del lattice che vanno da X al nodo successivo.

Page 21: Data Profiling with Metanome

Criticità: FD non individuateConsiderando R={A,B,C}, con A e BC chiavi:

• Livello 1, Tane trova A chiave BϵC+(B)e CϵC+(C), per cui AB e AC, e A viene eliminato dal lattice;

• Livello 2, Tane trova BC chiave ma C+(AB) e C+(AC) non sono disponibili essendo stata eliminata A;

In tale modo la FD BCA non verrebbe considerata!

Page 22: Data Profiling with Metanome

SoluzioneModifica della regola di pruning invece di eliminare A dal lattice, viene marcata come non valida. I nodi non validi non sono più testati per la scoperta delle dipendenze funzionali, ma possono essere utilizzati per generare ulteriori nodi non validi fintanto che i loro set C+ non sono vuoti.

Page 23: Data Profiling with Metanome

FD_-MineFD-Mine sfrutta le proprietà delle Dipendenze Funzionali per effettuare i tagli:

1. Simmetria: se XY e YX, allora XY: i due attributi sono equivalenti;

Page 24: Data Profiling with Metanome

FD_-Mine2. Inferenze addizionali sugli assiomi di Armstrong:

• pseudotransitività: dato XY, se vale XWZ, allora vale YWZ• dato XY, se vale ZWX, allora vale ZWY

In tale modo si eliminano attributi nella ricerca del lattice per velocizzare il processo.

Page 25: Data Profiling with Metanome

Criticità: FD non minimeSi dimostra FD-Mine possa condurre alla scoperta di dipendenze funzionali non minime:

• Assumendo: X equivalente a Y, XWZ (in rispetto dell’assioma YWZ);

• Dato un attributo A di Y dipendente da W’, subset di W;• YWZ, ma un subset di YW, chiamato YW-A, determina

già Z La dipendenza funzionale non è minima.

Page 26: Data Profiling with Metanome

Misure osservateRiporto le misure osservate nella simulazione:

• Numero di dipendenze funzionali individuate;

• Tempi di profilazione dei due algoritmi;

• Rapporto tra i tempi di simulazione dei due algoritmi.

Page 27: Data Profiling with Metanome

Risultati del Paper

Page 28: Data Profiling with Metanome

Confronto dei risultati ottenuti• Tane ha individuato 4 FD in 362 secondi contro 1.1 secondi dei risultati del Paper;

• FD-Mine 16 FD in 85 secondi;

• I dati della ricerca confermano 4 FD non minime presenti nel dataset.

Page 29: Data Profiling with Metanome

Confronto dei risultati ottenuti• Tane ha individuato 1 FD in 431 secondi;

• FD-Mine 1 FD in 150 secondi;

• I dati della ricerca confermano 1 FD non minima presente nel dataset.

Page 30: Data Profiling with Metanome

Confronto dei risultati ottenuti• Tane ha individuato 1 FD in 1964 secondi;

• FD-Mine 1 FD in 4756 secondi;

• I dati della ricerca confermano 1 FD non minima presente nel dataset.

Page 31: Data Profiling with Metanome

Confronto dei risultati ottenuti• Tane ha individuato 46 FD in 2441 secondi;

• FD-Mine 6508 FD in 3117 secondi;

• I dati della ricerca confermano 46 FD non minime presenti nel dataset.

Page 32: Data Profiling with Metanome

Confronto dei risultati ottenuti• Tane ha individuato 1 FD in 4631 secondi;

• FD-Mine 1 FD in 8444 secondi contro 7.1 secondi dei risultati del Paper;

• I dati della ricerca confermano 1 FD non minima presente nel dataset.

Page 33: Data Profiling with Metanome

Confronto dei risultati ottenuti• Tane ha individuato un numero di DF inferiore rispetto al risultato della ricerca 527 contro 538.

• FD-Mine invece ha superato la soglia di 4 ore di osservazione time limit

Page 34: Data Profiling with Metanome

Video Metanome

Page 35: Data Profiling with Metanome

Schermata Time Limit

Page 36: Data Profiling with Metanome

Schermata #1 Memory Limit

Page 37: Data Profiling with Metanome

Schermata #2 Memory Limit

Page 38: Data Profiling with Metanome

Schermata Extended Results

Page 39: Data Profiling with Metanome

Osservazioni• Tane implementa esclusivamente regole di potatura

affidabili algoritmo tipicamente più lento;

• FD-Mine individua diverse FD non-minime dimensione dei risultati può sovrastare velocemente la capacità di memoria;

• ricerca di FD non-minime può essere richiedente in tempo, annullando il vantaggio cronometrico di FD-Mine.

Page 40: Data Profiling with Metanome

Osservazioni• Dai grafici si può notare un proggressivo

avvicinamento nelle proporzioni dei risultati, all’aumentare della dimensione del dataset tempo media le prestazioni

• La differenza mostrata nel diverso numero di DF per il dataset echocardiogram.csv è dovuta ad un errore di formattazione, risolto dopo la pubblicazione del Paper risultato ottenuto è da considerarsi attendibile.

Page 41: Data Profiling with Metanome

ConclusioniA causa del limite prestazionale della macchine utilizzata, non è stato possibile raggiungere le performance originarie.

I risultati mostrano che nella maggior parte delle simulazioni le misure analizzate corrispondono ai dati presenti nella ricerca.

Page 42: Data Profiling with Metanome

ConclusioniSi deve inoltre tenere conto dell’utilizzo di una versione dell’applicazione ancora in via di sviluppo e non esente da bug. Nuove ottimizzazioni e aggiornamenti degli algoritmi potrebbero favorire l’espansione dello strumento, che ricordo al momento è freeware.

Segnalo per ultimo la realizzazione di una pagina GitHub con funzione di guida per l’installazione di Metanome: https://github.com/pualien/Metanome-Installation-Guide

Page 43: Data Profiling with Metanome

Bibliografia• Naumann Felix (2013). “Data Profiling Revisited”, Hasso Plattner Institut.

http://hpi.de/fileadmin/user_upload/fachgebiete/naumann/publications/2013/profiling_vision.pdf.

• Thorsten Papenbrock, T. Bergmann, M. Finke, J. Zwiener, F. Naumann (2015). “Data Profiling with Metanome”, Algorithms”, Hasso Plattner Institut. http://www.vldb.org/pvldb/vol8/p1860-papenbrock.pdf.

• Thorsten Papenbrock, J. Ehrlich, J. Marten, T. Neubert, J.P. Rudolph, M. Schonberg, J. Zwiener, F. Naumann (2015). ”Functional Dependency Discovery: An Experimental Evaluation of Seven Algorithms”, Hasso Plattner Institut. https://hpi.de/fileadmin/user_upload/fachgebiete/naumann/publications/2015/p1897-papenbrock.pdf

• Ykä Huhtala, Juha Kärkkäinen, Pasi Porkka, Hannu Toivonen (1999). “Tane: An Efficient Algorithm for Discovering Functional and Approximate Dependencies”, University of Helsinki. http://www.cs.helsinki.fi/u/htoivone/pubs/tane_99.pdf.

• Hong Yao, Howard J. Hamilton (2007). “Mining functional dependencies from data”, University of Regina. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.563.2429&rep=rep1&type=pdf.

Page 44: Data Profiling with Metanome

Grazie per l’attenzione