data profiling with metanome
TRANSCRIPT
![Page 1: Data Profiling with Metanome](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/1.jpg)
Data ProfilingMatteo Senardi
![Page 2: Data Profiling with Metanome](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/3.jpg)
Cosa c’è dentro i nostri dati?
![Page 4: Data Profiling with Metanome](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/4.jpg)
Cosa c’è dentro i nostri dati?Modelli, Densità, Vincoli Riscontri attesi
Residuali, Outlier, Anomalie Riscontri disattesi
![Page 5: Data Profiling with Metanome](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/5.jpg)
Che uso posso farne?
![Page 6: Data Profiling with Metanome](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/17.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/20.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/21.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/22.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/25.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/26.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/27.jpg)
Risultati del Paper
![Page 28: Data Profiling with Metanome](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/28.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/29.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/30.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/31.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/32.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/33.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/34.jpg)
Video Metanome
![Page 35: Data Profiling with Metanome](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/35.jpg)
Schermata Time Limit
![Page 36: Data Profiling with Metanome](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/36.jpg)
Schermata #1 Memory Limit
![Page 37: Data Profiling with Metanome](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/37.jpg)
Schermata #2 Memory Limit
![Page 38: Data Profiling with Metanome](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/38.jpg)
Schermata Extended Results
![Page 39: Data Profiling with Metanome](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/39.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/40.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/41.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/42.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/43.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022021919/5881d3351a28ab331a8b5bfb/html5/thumbnails/44.jpg)
Grazie per l’attenzione