data profiling
TRANSCRIPT
![Page 1: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/1.jpg)
DATA PROFILINGLorenzo Dodi
Tecnologia delle Basi di Dati A.A 2015/2016
![Page 2: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/2.jpg)
Cos’è• Un riassunto significativo di una grande sorgente
di dati, il quale raccoglie informazioni e statistiche
• Un ampia gamma di metodi per analizzare efficientemente un Data Set, generando metadati
• Uno passaggio di preparazione per successivi Data Menagement Task
![Page 3: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/3.jpg)
Perché Analizzare i DatiUn dato (dal latino datum che significa letteralmente fatto) è una descrizione elementare, spesso codificata, di una cosa, di una transazione, di un avvenimento o di altro. L'elaborazione dei dati può portare alla conoscenza di un'informazione. Ogni tipo di dato dipende dal codice e dal formato impiegati.
I dati possono presentarsi sotto diverse forme: numeri e lettere dell'alfabeto (testo), immagini statiche, immagini in movimento (video), suono (audio) ed altri. I dati possono essere conservati su diversi mezzi (o supporti) fisici (cartaceo, magnetico (floppy disk), ottico (CD) ed altri supporti) e/o veicolati (trasmessi) attraverso una rete di telecomunicazioni tra più utenti.
In informatica, il termine indica un valore, tipicamente numerico in bit, che può essere elaborato e/o trasformato da un automa o meglio da un elaboratore elettronico. Il dato rappresenta l'oggetto specifico su cui interviene l'esecutore dell'algoritmo. Le memorie di massa consentono di salvare i dati in modo permanente, mentre il processo di registrazione dei dati in una memoria si chiama memorizzazione o archiviazione. Singoli dati o più spesso insiemi di dati possono essere conservati in file o nei database.
![Page 4: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/4.jpg)
Un dato (dal latino datum che significa letteralmente fatto) è una descrizione elementare, spesso codificata, di una cosa, di una transazione, di un avvenimento o di altro. L'elaborazione dei dati può portare alla conoscenza di informazione Ogni tipo di dato dipende dal codice e dal formato impiegati.
I dati possono presentarsi sotto diverse forme: numeri e lettere dell'alfabeto (testo), immagini statiche, immagini in movimento (video), suono (audio) ed altri. I dati possono essere conservati su diversi mezzi (o supporti) fisici (cartaceo, magnetico (floppy disk), ottico (CD) ed altri supporti) e/o veicolati (trasmessi) attraverso una rete di telecomunicazioni tra più utenti.
In informatica, il termine indica un valore, tipicamente numerico in bit, che può essere elaborato e/o trasformato da un automa o meglio da un elaboratore elettronico. Il dato rappresenta l'oggetto specifico su cui interviene l'esecutore dell'algoritmo. Le memorie di massa consentono di salvare i dati in modo permanente, mentre il processo di registrazione dei dati in una memoria si chiama memorizzazione o archiviazione. Singoli dati o più spesso insiemi di dati possono essere conservati in file o nei database.
Perché Analizzare i Dati
![Page 5: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/5.jpg)
L’InformazioneUn informazione da la conoscenza.
Ad esempio:Permette ad un osservatore posto in una situazione, con almeno due occorrenze possibili, di superare un’incertezza, risolve un’alternativa ossia sostituisce il noto all’ignoto, il certo all’incerto.
![Page 6: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/6.jpg)
Dai Dati all’InformazioneDATI:Miglior canale?Migliore creatività?Migliore target?Migliore orario?Periodo ottimale?Keyword più performante?
Informazione:Strategia di
pianificazione
![Page 7: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/7.jpg)
Informazioni per prendere decisioni
![Page 8: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/8.jpg)
Cosa ProduceApplicando metodi di Data Profiling sui dati all’interno di un Data Base si possono ottenere:
Statistiche:Il numero di valori null e distinct in una colonnaIl tipo di dati di una colonnaIl pattern più frequente dei valori di una colonna
Metadati complessi:Dipendenze Funzionali
![Page 9: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/9.jpg)
Classificazione dei Compiti
![Page 10: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/10.jpg)
Casi d’UsoLa necessità di profilare nuovi data set deriva dalla volontà di eseguire sui dati analizzati operazioni come:
• Query OptimizationUso di statistiche per stimare la selettività degli operatori ed ultimare i costi di un piano di interrogazioni
• Data CleansingRivela inconsistenze di formattazione e valori mancanti, determina la qualità generale dei dati
• Data IntegrationPrima di integrare dei nuovi dati occorre conoscere dimensione, tipi necessari, semantica di colonne e tabelle
• Data AnalyticsAnalisi statistiche o esecuzione di data mining
La profilazione non è il FINE ma uno step intermedio.
![Page 11: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/11.jpg)
Interactive Data Profiling• Profiling su query e viste
Un utente potrebbe voler agire sui risultati della profilazione in modo puntuale senza dover intraprendere l’intero ciclo di ‘pulizia e profilazione dei dati’ ad ogni modifica.Inoltre mentre i risultati di una query vengono elaborati al lato potrebbero essere mostrati i risultati della profilazione e la tipologia dei dati analizzati.
• Online ProfilingVengono mostrati i risultati intermedi della profilazione durante la sua esecuzione, i quali non riflettono le proprietà dell’intero data set analizzato.Oltre ad avere un riscontro grafico l’utente sarà anche in grado di interrompere la profilazione senza dover attenderne il termine.
![Page 12: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/12.jpg)
Incremental Data Profilig• Sono previsti aggiornamenti periodici dei dati• Si riutilizzano risultati di profilazioni precedenti
per velocizzare la computazione sui dati modificati.
• Viene fornita la conoscenza dei ‘delta’ rispetto alle versioni precedenti al sistema di profilazione, il quale conserva ogni risultato intermedio e/o finale di profilazione sulla versione precedente.
• I metadati posso essere calcolati:• Associativamente• Tramite altri metadati• Oppure ricalcolati da capo
![Page 13: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/13.jpg)
Continuous Data Profilig• Viene previsto l’aggiornamento dei risultati di
profilazione quando i dati vengono aggiornati od inseriti
• Si utilizza per profilazioni continue come il monitoraggio del traffico internet
• Bisogna trovare un buon compromesso fra• Accuratezza• Aggiornamento dei dati• Consumo di risorse
![Page 14: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/14.jpg)
Profilare Dati EterogeneiIn molti casi è necessaria la profilazione di fonti di dati diversificate, bisogna tenere conto delle Gradazioni di Eterogeneità:
• SintatticaTrovare formattazioni inconsistenti
• StrutturaleSchemi non rispettati ed informazioni strutturalmente differenti
• SemanticaSovrapposizione semantica dei dai ed i loro domini
![Page 15: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/15.jpg)
Profilare Dati EterogeneiSi può distinguere fra• Profilazione Strutturale
Ricerca informazioni sullo schema• Profilazione Semantica
Ricerca informazioni sui datiAmbedue necessarie per l’integrazione, il cui sforzo va calcolato in termini di similitudine ma anche di mesi-uomo necessari.Per similitudine dello schema si intende• Il grado di sovrapposizione e di complementarietà dei
due schemi
![Page 16: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/16.jpg)
Come FunzionaLa ricerca dell’unicità delle combinazioni di colonne in un data base relazionale è uno degli scopi principali della Data Profiling.
Algoritmi che permettono di fare questo, sfruttano la forza bruta oppure un elevato carico di memoria, il quale però può essere applicato solo su fonti di dati ‘piccole’.
Un algoritmo ben noto per effettuare questi calcoli è il GORDIAN, ma prima di introdurlo diamo alcune definizioni di base.
![Page 17: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/17.jpg)
Unicità delle Combinazioni di ColonneL’unicità di una combinazione di colonne K appartenente ad una tabella può essere definita come:
Dato uno DB a schema relazionale R={C1,C2,…,Cm} con colonne Ci ed un istanza r C1 x … x Cm, una combinazione di colonne K è unica sse t1,t2 r : (t1 t2) => (t1[K] t2[K])
La scoperta dell’unicità è molto significata nel data modeling, anomaly detections e query optimization.
![Page 18: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/18.jpg)
Unicità Chiave
L’unicità è una condizione necessaria ad una chiave, ma solo un essere umano può promuovere un ‘unique’ a ‘key’ in quanto gli elementi unici possono apparire come coincidenza per certi stati dei dati analizzati.
Mentre le chiavi devono essere consapevolmente specificate e denotano le restrizioni dello schema
![Page 19: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/19.jpg)
Unicità MinimeSono quegli elementi unici dei quali nessun sottogruppo stretto possiede la proprietà di unicità:
Preso un K R unico, si dice minimo sse K’ K : (t1,t2 r : (t1[K’] = t2[K’]) (t1 t2))
Per definire se una combinazione di colonne K di dimensione fissata sia unica:
tutte le tuple ti devono essere scannerizzate (O(n)) per n righePer individuare duplicati serve:
un altro ordinamento (O(n log n)) oppure un algoritmo di hash (O(n))
Una combinazione di colonne K che non è unica viene definita:non-unica
![Page 20: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/20.jpg)
UnicitàA B C
a 1 xb 2 xc 2 y
Unici: {A, AB, AC, BC, ABC}Minimamente Unici: {A, BC}(Massimi) Non-Unici: {B, C}
![Page 21: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/21.jpg)
Gordian Approccio• Vieni utilizzato un algoritmo Row-based nel quale
si effettua una scansione riga per riga del database per ogni combinazione di colonne.
• Sono richieste molteplici esecuzioni su tutte le colonne poiché più e più righe sono prese in considerazione.
• Gli elementi non-unique possono essere individuati senza considerare tutte le righe di una tabella.
![Page 22: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/22.jpg)
Gordian FunzionamentoL’algoritmo si suddivide in tre parti:• Preorganizzare i dati della tabella sotto forma di prefix
tree• Trovare i Massimi Non-Unici scannerizzando il prefix
tree• Elaborare i gli elementi Minimante Unici dai massimi
non-unici
Prefix Tree:• Deve essere mantenuto in memoria principale (RAM)• Ogni livello rappresenta una colonna della tabella• Ciascun ramo rappresenta una tupla distinta
![Page 23: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/23.jpg)
Gordian FunzionamentoLa ricerca degli elementi non unici è eseguita tramite una visita dell’albero per trovare i rami ripetuti più volte che costituiscono i Massimi Non-Unici.
Da questi vengono calcolati i Minimi Unici mediante la generazione di minime combinazioni che non contengano massimi non-unici.
Questo procedimento segna un serio collo di bottiglia in caso di grandi numeri di massimi non-unici.
![Page 24: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/24.jpg)
Dipendenze FunzionaliPer definire le dipendenze fra varie colonne dobbiamo definire alcune grandezze:
• U = {v1,v2,…,vm} un set finito di variabili discrete, Attributi.• Ogni attributo vi ha un dominio finito dom(vi) che rappresenta i valori che
può assumere• Per un sottogruppo X = {vi,…,vj} di U definiamo dom(X) come il prodotto
cartesiano dei domini dei singoli attributi dim(X) = dom(vi) x … x dom(vj)• Una relazione r su U, scritta come r(U), è un gruppo finito che mappa {t1,
…,tn} da U a dom(U) con la restrizione che per ogni t r(U), t[vi] deve essere in dom(vi) con 1 i m
Dato r(U) e X,Y U. Una dipendenza funzionale (FD) è una restrizione che denota X Y. Soddisfatta in r(U) se ogni due tuple ti,tj r(U) si ha ti[X] = tj[X] ti[Y] = tj[Y]. Si ci riferisce a X come antecedente ed a Y come conseguente.
![Page 25: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/25.jpg)
Assiomi di ArmstrongDati tre set di attributi X,Y e Z si hanno tre inferenze:• Riflessività, se Y X allora X Y• Estensione, se X Y allora XZ YZ• Transitività, se X Y e Y Z allora X Z
Altre proprietà• Unione, se X Y e X Z allora X YZ• Decomposizione, se X YZ allora X Y e X Z
Dati X,Y U e F come set di FD’s. La chiusura di X è definita come {Y|X Y può essere dedotto da F usando gli assiomi di Amstrong}Esempio:Sia F = {AC,BDAC} per definizione la chiusura di A = {A,C} mentre la chiusura di BD = {A,B,C,D}
![Page 26: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/26.jpg)
Fondamenti TeoriciAttributi Equivalenti:• Dati X,Y U. se X Y e Y X allora X e Y sono equivalenti ( X
Y)Lemma 1:• Dati W,X,Y,Y’,Z U e Y Y’ Se X Y e WZ X allora Y’W Z
Lemma 2:• Dati W,X,Y,Z U. Se X Y e WZ X allora WZ Y
Lemma 3:• Dato X S U. Se X U – X allora S U – S
Teorema 1:• Dati X,Y,Z U presa la chiusura di Y X allora X – Y* Z sse X
Z
![Page 27: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/27.jpg)
Regole di ‘Potatura’In un contesto in cui tutte le FD’s sono soddisfatte dalla relazione r(U) vengono definite le seguenti regole di ‘potatura’ per i candidati X e Y, dove X e Y e X,Y U:• Se X Y è soddisfatta da r(U) allora Y può essere cancellato• Se la chiusura di Y X allora il candidato X può essere cancellato• Se vi U – X, X vi è soddisfatta da r(U) allora X può essere
cancellatoLa regola 1 giustificata dai lemmi 1 e 2 riduce la dimensione dello spazio di ricerca eliminando i candidati ridondanti.La regola 2 giustificata dal teorema 1 indica che X Z può essere dedotto da X – Y* ZLa regola numero 3 giustificata dal Lemma 3 indica che per ogni super-set S di X, si può dedurre S U – S
![Page 28: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/28.jpg)
Data Profiling Tools CommercialiTools commerciali dedicati:• IBM WebSphere Information Analyzer• Microsoft’s SQL Server Integration Services (SSIS)• Oracle Data Profiling and Oracle Data Quality come Data
Integrator
Ognuno di essi segue un approccio di questo tipo: • Un utente specifica i dati che devono essere profilati e
seleziona il tipo di metadati che devono essere generati• Successivamente il tool calcola i metadati utilizzando query
SQL e/o algoritmi specifici• I risultati vengono mostrati in grandi collezioni di tabelle o
grafici che permettono all’utente di esplorarli
28
![Page 29: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/29.jpg)
Microsoft SSISIl Data Profiling Task può computare otto data profile differenti • Cinque per analizzare le singole colonne:• Lunghezza di distribuzione• Numero di elementi Null• Statistiche e Pattern
• Tre per analizzare colonne multiple o relazioni fra colonne:• Candidate Key Profile: riporta se una colonna od un gruppo di
colonne sono una chiave o chiave approssimativa per la tabella selezionata
• Functional Dependency Profile: riporta il grado per cui i valori di una colonna dipendono dai valore di un’altra o di un set di colonne
• Value Inclusion Profile: Calcola la sovrapposizione dei valori fra due o più colonne. Questo profilo può determinare se una colonna od un gruppo di esse è adatto a servire come foreign key fra le tabelle selezionate
29
![Page 30: Data profiling](https://reader031.vdocuments.site/reader031/viewer/2022021506/5881d3351a28ab331a8b5bff/html5/thumbnails/30.jpg)
FINEGrazie per L’attenzione