Sei sulla pagina 1di 14

Corso di Sistemi Informativi

Progettazione dell’alimentazione

29 Novembre 2021

Prof. S. Castano Sistemi Informativi


1 - AA. 2021/22 1

Progettazione dell’alimentazione

• Durante la fase di progettazione dell’alimentazione


vengono definite le procedure necessarie a caricare
all’interno del DW i dati provenienti dalle sorgenti
operazionali

– Dalle sorgenti operazionali al livello riconciliato:


realizzano a livello estensionale le trasformazioni definite
nella fase di integrazione

– Dal livello riconciliato al livello del data mart: si


definiscono le procedure che permettono di conformare la
struttura dei dati del livello riconciliato agli schemi a stella
utilizzati in ambito multidimensionale

Prof. S. Castano Sistemi Informativi


2 - AA. 2021/22 2

1
Alimentazione dello schema riconciliato

ETL (Extraction – Transformation – Loading)


– Estrazione: insieme delle operazioni che permettono di
acquisire i dati dalle sorgenti
– Trasformazione: l’insieme delle operazioni che conformano i
dati sorgente allo schema riconciliato
– Caricamento: l’insieme delle operazioni necessarie a inserire i
dati trasformati nel database riconciliato aggiornando
eventualmente quelli già presenti
» A queste operazioni si affiancano le operazioni di pulizia
dei dati (data cleaning) che servono a eliminare
incongruenze/errori/omissioni

Prof. S. Castano Sistemi Informativi


3 - AA. 2021/22 3

Alimentazione dello schema riconciliato

Staging area: spazio utilizzato per


memorizzare in via transitoria le informazioni
necessarie all’esecuzione delle procedure

Pulizia: operazioni che


permettono di eliminare le Database Caricamento: operazioni
incongruenze dovute a errori e riconciliato necessarie a inserire i dati
omissioni trasformati nel database
riconciliato
Caricamento

Staging Trasformazione
Pulizia
area
Trasformazione: operazioni
Estrazione
Estrazione: operazioni che che conformano i dati delle
permettono di acquisire i dati sorgenti allo schema
dalle sorgenti Sorgente I Sorgente riconciliato
II
Prof. S. Castano Sistemi Informativi
4 - AA. 2021/22 4

2
Estrazione dei dati

• Operazioni eseguite all’atto dell’inizializzazione del livello


riconciliato e ripetute periodicamente successivamente

• Quali dati (relativi sia a fatti sia dimensioni):


– DB relazionale: quali attributi di quali tabelle
– Foglio di calcolo: quali celle da quali fogli
– File di testo: quali info da quali righe

• Granularità degli eventi di origine


– Grana transazionale: corrispondenza a uno con gli eventi di origine
– Grana temporale: necessaria una aggregazione alla fonte

• Uso di un’area di staging temporanea di lavoro contenente i


dati estratti su cui applicare le successive operazioni di
trasformazione e pulizia

Prof. S. Castano Sistemi Informativi


5 - AA. 2021/22 5

Estrazione dei dati

• L’estrazione può essere:


– Statica: scansione completa delle sorgenti (obbligatoria
per il popolamento iniziale).

– Incrementale: vengono considerati solo i dati sorgente


prodotti/modificati dal sistema operazionale
nell’intervallo di tempo intercorso dall’ultimo caricamento

Prof. S. Castano Sistemi Informativi


6 - AA. 2021/22 6

3
Estrazione dei dati
• Il risultato della fase di estrazione incrementale consiste
nell’insieme di record sorgente inseriti, modificati o cancellati
rispetto alla precedente esecuzione della procedura di
estrazione.

• I dati risiedono nella staging area

• Per facilitare le fasi successive è opportuno associare a ogni


record estratto il tipo di operazione (Inserimento, Modifica,
Cancellazione) che ne ha generato la variazione

• Procedura di estrazione
– Immediata, e.g., mediante funzioni dell’applicazione e/o trigger, che riportano
nella staging area i record inseriti/modificati contestualmente alla loro
registrazione nel sistema operazionale.
– Ritardata, e.g., attraverso timestamp indicanti la modifica, che posticipa il
prelevamento dei dati inseriti/modificati rispetto all’ultimo caricamento.

Prof. S. Castano Sistemi Informativi


7 - AA. 2021/22 7

Il risultato dell’estrazione

Situazione al 4/4/2002 Situazione al 6/4/2002


cod prodotto cliente qtà cod prodotto cliente qtà
1 Greco di tufo Malavasi 50 1 Greco di tufo Malavasi 50
2 Barolo Maio 150 2 Barolo Maio 150
3 Barbera Lumini 75 4 Sangiovese Cappelli 145
4 Sangiovese Cappelli 45 5 Vermentino Maltoni 25
6 Trebbiano Maltoni 150

Differenza incrementale
cod prodotto cliente qtà oper
3 Barbera Lumini 75 C
4 Sangiovese Cappelli 145 M
5 Vermentino Maltoni 25 I
6 Trebbiano Maltoni 150 I

Prof. S. Castano Sistemi Informativi


8 - AA. 2021/22 8

4
Trasformazione dei dati
• Operazioni sui dati sorgente per conformare la loro struttura e
formato allo schema integrato globale:
– Conversione/standardizzazione formati: applicata a singoli campi di
schemi sorgente che hanno un formato diverso rispetto al corrispondente
campo dello schema riconciliato (e.g., da maiuscolo a minuscolo, da intero a
decimale, formato standard date “gg/mm/aaaa”)
– Standardizzazione codici classificazione: convenzioni diverse in sorgenti
diverse che vanno riportate alla codifica standard scelta per lo schema
globale. Es., sesso delle persone M/F, 0/1, Maschio/Femmina. Uso di tabelle
di conversione.
– Concatenamento: combinare il contenuto di campi diversi che sono stati
unificati in un unico campo a livello di schema globale. Es. Nome, Cognome
à Nominativo (“Mario” “Rossi” à “Mario Rossi”)
– Separazione: separare il contenuto di un campo sorgente rappresentato
mediante campi diversi nello schema globale. Es: Ragione sociale à Società,
Struttura societaria, (“Deterge S.p.A” à “Deterge”, “S.p.A”)
– Trasformazione dati continui in parametrizzazioni discrete: i dati
dimensionali devono avere un dominio discreto e finito, non sempre è così
nelle sorgenti operazionali. Es.: peso di una spedizione può avere un range
di valori infinito à trasformazione in classi e.g., fino a 10 kg, da 10,01 a 100
kg, etc.
Prof. S. Castano Sistemi Informativi
9 - AA. 2021/22 9

Trasformazione dei dati


• L’operazione di concatenamento è l’operazione più complessa
perchè può richiedere di estrarre i dati da molteplici sorgenti
ricombinandoli in base allo schema riconciliato.
• Ciò implica l’utilizzo di tabelle temporanee che possono avere
dimensioni anche ragguardevoli. Occorre quindi premunirsi di
riservare sufficienti risorse nella staging area

Prof. S. Castano Sistemi Informativi


10 - AA. 2021/22 10

5
Caricamento dei dati
• I dati estratti e trasformati sono caricati dalla staging
area al database riconciliato
– Con estrazione statica, i dati nel livello riconciliato sono
cancellati e sostituiti completamente con quelli nuovi
– Con estrazione incrementale, si inseriscono i nuovi record e
occorre individuare i record che hanno subito modifiche

Prof. S. Castano Sistemi Informativi


11 - AA. 2021/22 11

Pulizia dei dati


• Con questo termine si intende l’insieme delle operazioni atte a
garantire la correttezza e la consistenza dei dati presenti nel
livello riconciliato. Principali cause di inconsistenza:
ü Dati errati: dati contenenti errori di battitura, dati numerici frutto di
calcoli errati
ü Differenza di formato dei dati nello stesso campo
• Assenza di un formato rigido imposto, es. codifica diversa (‘I’, ‘IT’,
‘Italia’ oppure ‘Coca-Cola’, ‘Coca Cola’, ‘Coca-Cola co.’)
ü Inconsistenza tra valori e descrizione dei campi
• Evoluzione del modo di operare dell’azienda, oppure evoluzioni della
società che richiedono la memorizzazione di nuove informazioni non
previste (es., il nr cellulare insieme al fisso oppure nel campo note)
ü Inconsistenza tra valori di campi correlati
• I valori sono singolarmente corretti ma tra loro inconsistenti (es.,
Città='Bologna' Regione='Lazio’)

Prof. S. Castano Sistemi Informativi


12 - AA. 2021/22 12

6
Pulizia dei dati
ü Informazioni mancanti
• Alcuni campi non contengono un valore (es., la data di nascita di un
cliente può non essere ritenuta importante in fase di attivazione di un
contratto e viene tralasciata dal’operatore ma può essere importante
per il marketing)
ü Informazioni duplicate
• Due sorgenti forniscono la stessa informazione ma i record utilizzano
chiavi diverse, occorre quindi identificare corrispondenze tra i record in
fase di fusione

La maggior parte delle inconsistenze può essere prevenuta


rendendo più rigorose le regole di inserimento dei dati nelle
applicazioni del sistema operazionale

Ogni tipologia di problema richiede una tecnica specifica per la


soluzione e molti sistemi commerciali propongono moduli
specifici per la pulizia dei dati.

Prof. S. Castano Sistemi Informativi


13 - AA. 2021/22 13

Pulizia dei dati

n Tecniche basate su dizionari: verifica della correttezza dei valori di un


campo utilizzando tabelle di riferimento (look-up table T) e dizionari D
per la ricerca di di sinonimi/abbreviazioni
ü Utilizzabili solo quando il dominio dell’attributo è conosciuto e
limitato (es., nomi di farmaci, nomi geografici)
ü Scansione dei valori che il campo presenta verificando se
appartengono al dominio oppure se sono sinonimi /abbreviazioni di
un valore del dominio
ü Utili per errori di battitura e discrepanze di formato

If valore V è presente in T then OK


else if V è presente in D ha una corrispondenza con un valore V’ del
dominio
then sostituisci V’ a V
else scarta V

Prof. S. Castano Sistemi Informativi


14 - AA. 2021/22 14

7
Pulizia dei dati
n Tecniche ad hoc
Ogni dominio applicativo ha regole di business proprie, troppo
specifiche per essere verificate tramite strumenti standard.
Il progettista dovrà definire interrogazioni o piccoli programmi in grado
di verificare che i dati rispettino le regole di business del dominio.
ü E.g., profitto = guadagno – spese

ü Possibili errori nei dati possono essere identificati ricercando


valori fuori norma (outlier)
ü e.g., variazione di prezzo di oltre il 20%

ü Controllo molto comune che può essere eseguito nella staging


area riguarda il rispetto delle dipendenze funzionali nelle DT.
ü Per verificare un’associazione molti-a-uno tra due attributi A e B si
ordinano i record in base ad A e poi si verifica che ad ognuno dei suoi
valori corrisponda un solo valore di B.

Prof. S. Castano Sistemi Informativi


15 - AA. 2021/22 15

Pulizia dei dati


Dati incompleti: alcuni dati sorgente potrebbero non essere
forniti, ad esempio, perchè la loro compilazione non è
obbligatoria nei sistemi transazionali. Le procedure di pulizia:

– Inserimento automatico di un codice convenzionale che rappresenta


informazione mancante (utilizzata in genere per attributi dimensionali)
– Uso di regole/funzioni di interpolazione su altri valori per ricostruire
l’informazione mancante (usato per lo più su misure)
– Richiesta all’operatore

Prof. S. Castano Sistemi Informativi


16 - AA. 2021/22 16

8
Pulizia dei dati

n Tecniche di fusione approssimata


Permettono di identificare record che si corrispondono in sorgenti
diverse senza una chiave comune; tipiche situazioni

ü Join approssimati: nell’integrazione di schemi viene scoperta una


relationship tra due entità in sorgenti diverse, quindi le istanze di
schemi diversi devono essere messe in associazione in assenza di
una chiave comune

ü Purge/merge: istanze diverse di uno stesso schema devono


essere fuse assieme

Prof. S. Castano Sistemi Informativi


17 - AA. 2021/22 17

Join approssimato

DB Marketing DB Amministrazione

codice
CF ordine data quantità

CLIENTE ORDINE

nome indirizzo cognome codice indirizzo cognome


cliente cliente cliente cliente cliente cliente

codice
CF ordine data quantità

CLIENTE fa ORDINE
(0,n) (1,1)

nome indirizzo cognome Data


cliente cliente cliente

• Occorre individuare quale cliente ha inoltrato un certo ordine


• Il join deve essere eseguito sulla base dei campi comuni (indirizzo e
cognome) che non rappresentano un identificatore per il cliente
Prof. S. Castano Sistemi Informativi
18 - AA. 2021/22 18

9
Purge/Merge problem
DB Marketing sede di DB Marketing sede di
Roma Milano

C C

CLIENTI SEDE CLIENTI SEDE


ROMA MILANO

nome indirizzo cognome nome indirizzo cognome


cliente cliente cliente cliente cliente cliente

CLIENTI

nome indirizzo cognome


cliente cliente cliente

• Le due istanze non sono disgiunte; i record che denotano lo stesso


cliente nei due DB devono essere identificati e fusi insieme

Prof. S. Castano Sistemi Informativi


19 - AA. 2021/22 19

La similarità tra i record


• Un problema principale nei problemi di fusione approssimata è
quello di definire una misura di similarità tra record basata sui
campi, in particolare campi alfanumerici à misure di affinità ,
uso di regole

• L’idea è calcolare la similarità tra coppie di record ; le coppie il


cui valore di similarità supera una certa soglia sono fuse in un
unico record.

Prof. S. Castano Sistemi Informativi


20 - AA. 2021/22 20

10
La similarità tra i record
• Similarità basata su affinità terminologica

ü Affinità tra coppie A, B di stringhe composte


ü Affinità fra coppie di parole Ai, Bj (e.g., edit distance, presenza di
abbreviazioni )
Ø Un’abbreviazione può essere un prefisso di una sottostringa, per esempio
“Univ.” è un prefisso per “Università”.
Ø Un’abbreviazione può combinare un prefisso e un suffisso di una
sottostringa, un esempio è “Dott.ssa” che abbrevia “Dottoressa”.
Ø Un’abbreviazione può essere un acronimo di una stringa, per esempio DI è
un acronimo per “Dipartimento di Informatica”.
Ø Un’abbreviazione può essere la concatenazione di più prefissi contenuti
nella stringa, un esempio “UNIMI” che abbrevia “Università di Milano”.

2 • (Nr. parole Ai, Bj con affinità)


Affinità(A,B) = ----------------------------------------------------
|A| + |B|
Prof. S. Castano Sistemi Informativi
21 - AA. 2021/22 21

La similarità tra i record


Similarità basata su regole e su uso di soglie
Esempio di algoritmo di pulizia di dati anagrafici di persone
basato su regole

// Input: due record P1, P2 formati dai campi (codice,nome,indirizzo,città,CAP,stato)


// Output: VERO = P1 e P2 sono lo stesso record, FALSO = P1 e P2 non sono lo stesso record,
codiciSimili = comparaCodici(P1,P2);
nomiSimili = comparaNomi(P1,P2);
indirizziSimili = comparaIndirizzi(P1,P2);
cittàSimili = comparaCittà(P1,P2);
CAPSimili = comparaCAP(P1,P2);
statiSimili = comparaStati(P1,P2);
se (codiciSimili e nomiSimili) allora
restituisci VERO;
indirizziMoltoSimili = (indirizziSimili e cittàSimili e (CAPsimili o statiSimili));
se ((codiciSimili o nomiSimili) e indirizziMoltoSimili) allora
restituisci VERO;
……….

Prof. S. Castano Sistemi Informativi


22 - AA. 2021/22 22

11
Alimentazione del DM

• Le dimension table sono le prime tabelle da alimentare


nel datamart

• Questo obbligo deriva dalla struttura dello schema a


stella che presuppone un vincolo di integrità referenziale
fra chiave primaria di ogni DT e la corrispondente chiave
esterna della FT.

Prof. S. Castano Sistemi Informativi - AA. 2021/22 23

Alimentazione di dimension table


• Identificazione dei dati da caricare (corrispondenza
fra attributi dello schema riconciliato e attributi della
DT definita durante la progettazione dello schema a
stella)
• Sostituzione degli identificatori del livello riconciliato
con chiavi surrogate utilizzate negli schemi a stella
– Nuovi record (es., inserimento di un nuovo prodotto) à
scelta di un valore di chiave non ancora utilizzato nella DT
– Record modificati (es., modifica responsabile del negozio) à
implementata diversamente a seconda delle caratteristiche
di dinamicità supportate
– uso di tabelle di look-up (memorizzate permanentemente
nella staging area) che memorizzano le corrispondenze
valore di chiave della relazione dello schema riconciliato da
cui ha origine la DT – valore di chiave surrogata della DT

Prof. S. Castano Sistemi Informativi - AA. 2021/22 24

12
Alimentazione di dimension table
• gerarchie dinamiche di tipo 1: sovrascrivere il nuovo
valore al vecchio valore senza tenere traccia del
vecchio valore; uso della tabella di look-up per
ritrovare l’ID della tupla da sovrascrivere
• gerarchie dinamiche di tipo 2: mantenimento vecchia
tupla e nuova tupla; inserimento di una nuova tupla
con i dati aggiornati e aggiornamento della look-up
table.
• gerarchie dinamiche di tipo 3: completa storicità,
inserimento del timestamp di fine validità nella
vecchia tupla, uso della tabella di look-up per
ritrovare l’ID della vecchia tupla; inserimento di una
nuova tupla con i dati aggiornati e aggiornamento
della look-up table.

Prof. S. Castano Sistemi Informativi - AA. 2021/22 25

Alimentazione di fact table

• Identificazione dei dati da caricare


• Sostituzione degli identificatori con chiavi surrogate
• A parte la sua prima esecuzione di inizializzazione
degli schemi a stella, essa ha sempre carattere
incrementale
• L’aggiornamento della fact table segue sempre
l’aggiornamento delle dimension table correlate al
fine di rispettare i vincoli di integrità referenziale tra
le chiavi di queste ultime e le chiavi esterne della
fact table.

Prof. S. Castano Sistemi Informativi - AA. 2021/22 26

13
Alimentazione di viste materializzate

• Gli aggiornamenti alla fact table primaria devono


essere propagati anche alle relative viste
materializzate
• In teoria una vista materializzata può essere
aggiornata tramite una query di raggruppamento
eseguita sulla fact table primaria
• A volte l’esecuzione della query di raggruppamento
che coinvolge l’intera fact table ha costi troppo
elevati à uso di tecniche di aggiornamento
incrementale anche per le viste
• Analisi delle informazioni codificate nelle gerarchie
per individuare quali record di una vista verranno
modificati in conseguenza del verificarsi di un evento
primario
Prof. S. Castano Sistemi Informativi - AA. 2021/22 27

Alimentazione di viste materializzate

• Ad esempio, considerando la fact table delle vendite


alimentata giornalmente, vendite la vista secondaria
con pattern {tipo, regione, mese} dovrà essere
aggiornata in media 30 volte ogni mese. Possibili
approcci:
– Predisporre un processo mensile che effettui
l’aggiornamento della vista e non includere i dati del mese
corrente nella vista
– Includere una tupla contenente i dati del mese corrente
nella vista e predisporre un processo giornaliero che
aggiorni i dati relativi al periodo in corso.

Prof. S. Castano Sistemi Informativi - AA. 2021/22 28

14

Potrebbero piacerti anche