Data profiling

30
DATA PROFILING Lorenzo Dodi Tecnologia delle Basi di Dati A.A 2015/2016

Transcript of Data profiling

Page 1: Data profiling

DATA PROFILINGLorenzo Dodi

Tecnologia delle Basi di Dati A.A 2015/2016

Page 2: Data profiling

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

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

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

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

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

Informazioni per prendere decisioni

Page 8: Data profiling

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

Classificazione dei Compiti

Page 10: Data profiling

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FINEGrazie per L’attenzione