• Non ci sono risultati.

CAPITOLO 4 INDIVIDUAZIONE DATA MART

4.3 Tabelle delle dimensioni

4.3.1 Dimensione Customer

Tesi di Laurea Magistrale 2015/2016

48

relativa ai clienti dell’azienda Dream che hanno stipulato un contratto. Come

derivazione del modello logico, la struttura verrà creata dello script riportato in Figura4.17(1-2). La tabella è partizionata secondo i clienti che risultano attivi al giorno corrente e quelli che non usufruiscono più del servizio; vi è, inoltre, un indice definito sul COD_CUSTOMER e uno creato sulla chiave primaria.

Tesi di Laurea Magistrale 2015/2016

49 Figura4.17-1: Script creazione DM_CUSTOMER

Tesi di Laurea Magistrale 2015/2016

50 Figura4.17-2: Script creazione DM_CUSTOMER

Tesi di Laurea Magistrale 2015/2016

51

4.3.1.1 Flusso di caricamento

Il flusso di caricamento descriverà i passaggi che hanno portato alla costituzione della DM_CUSTOMER contenente tutte le informazioni descritte nel modello logico. Anche in questo caso vi saranno dei campi tecnici che in una prima fase non sono stati presi in considerazione, ma nel corso dello sviluppo si sono resi necessari affinchè la logica di calcolo potesse essere applicata.

Si procede con una schematizzazione delle strutture coinvolte e la sequenza di sviluppo:

Figura4.18: Diagramma Strutture DM_CUSTOMER

a) Staging Area

Così come anticipato, all’interno della Staging Area si trovano tutti i dati che riguardano i clienti della Dream; essi vengono inseriti da una fonte alimentante esterna. Un primo filtro circa la correttezza dei dati, a livello di Type, ad esempio, viene effettuata in questo Schema dall’altro fornitore. Considerata l’importanza

Tesi di Laurea Magistrale 2015/2016

52

della dimensione Customer, l’azienda Dream assicura che i dati contenuti nella ST sono quelli su cui si deve procedere ad effettuare le analisi. Si riporta lo script di creazione della struttura presente su questo Schema:

Figura4.19: Script ST_CUSTOMER

b) ODS

Dall’ODS entrano in scena i vari costrutti che determinano il caricamento dei dati.

Come già accennato, si utilizzano i mapping per poter mappare dalle viste che svolgono elaborazioni più o meno complesse, i dati all’interno delle tabelle.

La prima vista presente sull’ODS è la VS_H_CUSTOMER, essa gestisce la storicizzazione dei dati presenti nella ST_CUSTOMER gestendo dei dati a delta, cioè riguardanti un lasso temporale ristretto, in questo caso giornaliero. Si riporta lo

Tesi di Laurea Magistrale 2015/2016

53

script della vista nominata in modo da descrivere i passi che vengono eseguiti.

Figura4.20: Script creazioneVS_H_CUSTOMER

La vista definisce nella WITH un delta che, esegue il confronto campo-campo degli elementi presenti nella tabella ST_CUSTOMER e seleziona quelli che al giorno

Tesi di Laurea Magistrale 2015/2016

54

dell’elaborazione sono ancora validi, hanno cioè la DAT_END valorizzata al

31/12/9999 (foto aperta) e non sono presenti nella tabella WT_DELTA_DW_HIST_CUSTOMER. Le funzioni FN_FILLER evidenziate, si occupano di inserire tappi nel caso in cui il valore sia null; la funzione è la medesima degli NVL ( …) in cui si prevede un valore di default nel caso in cui il

dato assuma un valore NULL.

La tabella seguente riassume i valori tappo previsti per i vari TYPE assunti dai dati in questo caso:

TYPE VALUE

DATE To_date(‘31/12/9999’, ‘dd/mm/yyyy’)

DESC ‘Undefined’

FLAG ‘X’

NUMBER 0

Tabella4.1: Valori tappo previsti nella funzione del sistema

Selezionato il delta, si gestisce la vera e propria storicizzazione mediante due passi di union:

 Nel primo si marcano con ‘I’ nel FLG_UPDATE i record che non sono mai stati presenti sulla WT_DELTA_DW_HIST_CUSTOMER. Vengono inseriti mantenendo la foto aperta e associando ad essi come DAT_START la data dell’elaborazione. L’unicità dell’ID è garantita dalla sequence

SQ_DW_HIST_CUSTOMER definita in modo incrementale in base alle insert effettuate ;

Tesi di Laurea Magistrale 2015/2016

55

aggiornamento, a guidare l’update sarà la colonna ID_CUSTOMER univoca per ogni record. Si nota come in questo passo si esegue una modifica nel campo DAT_END, chiudendo il record e marcandolo con la data al giorno dell’elaborazione -1.

La tabella WT_DELTA_DW_HIST_CUSTOMER che offre il confronto con la ST_CUSTOMER viene caricata attraverso una procedura e rappresenta l’elaborazione a delta, per quel giorno di caricamento, dalla tabella

ST_CUSTOMER. Si riporta lo script della procedura e quello della creazione della tabella.

Tesi di Laurea Magistrale 2015/2016

56

Figura4.21: Script creazione WT_DELTA_DW_HIST_CUSTOMER

La tabella assume la stessa struttura di quella presente sullo Schema ST, ma è partizionata per record “aperti”, aventi DAT_END a foto aperta e record “chiusi”,

Tesi di Laurea Magistrale 2015/2016

57

Tesi di Laurea Magistrale 2015/2016

58 Figura4.22-2: PRC_WT_DELTA_DW_HIST_CUSTOMER

Tesi di Laurea Magistrale 2015/2016

59

La procedura sarà inserita come pre-mapping, per questo motivo nello script mostrato vengono effettuati molti check sulla correttezza dell’esecuzione e sono

previsti log sulla tabella predisposta nel sistema WT_LOG_PREPOST_MAPS. Nelle righe 45-67 vengono inseriti nella tabella sull’ODS i dati elaborati in quel giorno letti dalla ST_CUSTOMER.

I dati elaborati a delta vengono inseriti mediante il mapping MP_WT_H_CUSTOMER in TRUNCATE/INSERT all’interno della tabella WT_H_CUSTOMER che assumerà la stessa struttura delle precedenti. Si riporta lo script di creazione della tabella.

Tesi di Laurea Magistrale 2015/2016

60 Figura4.23: Script creazione WT_H_CUSTOMER

Infine, nell’ultimo passo presente nell’ODS, si provvede alla vera storicizzazione

attraverso il mapping MP_DW_HIST_CUSTOMER che scrive in INSERT/UPDATE nella tabella DW_HIST_CUSTOMER leggendo dalla WT_H_CUSTOMER. Attraverso la definizione della chiave primaria sulla tabella, e all’utilizzo del campo FLG_UPDATE, l’algoritmo del mapping inserisce i record non presenti sulla tabella ed esegue l’update di quelli con ID_CUSTOMER già

Tesi di Laurea Magistrale 2015/2016

61 Figura4.24-1: Script creazione DW_HIST_CUSTOMER

Tesi di Laurea Magistrale 2015/2016

62 Figura4.24-2: Script creazione DW_HIST_CUSTOMER

Anche in questo caso la tabella risulta partizionata secondo i record aperti e quelli chiusi. Così come evidenziato in precedenza l’ID_CUSTOMER rappresenta la chiave primaria della tabella; su esso viene costruito l’ indice

XPKDW_HIST_CUSTOMER.

Tesi di Laurea Magistrale 2015/2016

63

La vista VS_DM_CUSTOMER_DELTA permette il calcolo dei campi presenti nel modello logico che non erano ancora stati calcolati. Si parla, ad esempio del NUM_AGE, per il calcolo del quale si è intervenuti con funzioni matematiche. Altri esempi, invece, sono forniti dai descrittivi DES_STATUS_CUSTOMER, DES_TYPE_CUSTOMER, DES_OCCUPATION, DES_QUALIFICATION, DES_MARITAL_STATUS che vengono elaborati leggendo da altre tabelle presenti sul DWH. Ad esse, si accede per taglio temporale valido e per il COD della tabella rispettiva da cui si legge. I codici delle tabelle “esterne” sono stati riportati dal livello ST fino a questo step per poter permettere la join. Da questo momento, non verranno riportati più i codici, ma direttamente i descrittivi di interesse che si sono potuti ottenere dalla subselect.

Tesi di Laurea Magistrale 2015/2016

64 Figura4.25: VS_DM_CUSTOMER_DELTA

Tesi di Laurea Magistrale 2015/2016

65

d) DM

Infine, si è pensato di mostrare uno screen relativo alla creazione della tabella sul tool Toad, utilizzato sul progetto.

Figura4.26: DM_CUSTOMER dal tool Toad

Documenti correlati