Alimentare un Datawarehouse con un buon ETL

La creazione di un sistema di analisi e reportistica per la Business Intelligence richiede la creazione di un repository di dati. Per arrivarci dobbiamo passare per i processi di ETL.

il
Sviluppatore / Ingegnere informatico / Funzionario, Collaboratore di IProgrammatori

Per lavorare nell’ambito della Business Intelligence è necessario immagazzinare una grande quantità di dati in un sistema chiamato DataWareHouse (spesso abbreviato in DWH).

Ovviamente i dati non si possono buttare dentro al DWH con la pala, altrimenti le analisi che verranno effettuate successivamente non potranno che darvi delle brutte sorprese. Gli americani hanno un acronimo per questo concetto: GIGO, ovvero Garbage In Garbage Out. Se inserite immondizia, otterrete immondizia. Cerchiamo quindi di inserire i migliori ingredienti nel nostro DWH e otterremo dei piatti prelibati. Come? L’alimentazione del DWH passa attraverso un processo chiamato ETL (Fig. 1).

Eh, già, è un acronimo anche questo (avevate dubbi?). Dal significato delle tre parole potete già intuire di cosa si tratta: sono tre fasi che servono a portare dei dati dalle fonti originarie al DWH, tra cui l’estrazione (Extract) dei dati, la loro trasformazione (Transform) e infine il caricamento (Load). Vediamo in cosa consistono queste operazioni.

Figura 1 – Le operazioni ETL

Immagine che contiene testo, diagramma, schermata

Descrizione generata automaticamente

(E) Extract

L’obiettivo di questa fase è raccogliere i dati da una o, solitamente, più fonti dati, che possono includere database relazionali (SQL Server, Oracle, MySQL...), file “piatti” (campi a lunghezza fissa o CSV separati da un carattere specifico), fogli Excel, file XML, JSON, sistemi ERP, dati sul cloud (Google Analytics, Salesforce…) e altre fonti di dati strutturati e non strutturati. Questi dati li consideriamo in “forma grezza”, dal punto di vista del datawarehouse, e quindi devono essere preparati per le fasi successive.

Alcune volte capita che certi dati sono contenuti in fogli Excel “isolati” nel PC di qualche dirigente o funzionario, o che addirittura siano solo appuntati in fogli cartacei chiusi in chissà quale cassetto. In questi casi, una approfondita analisi del sistema informativo aziendale, nel suo complesso, non può prescindere da una revisione dei processi in grado di aumentare l’efficienza e la disponibilità dei dati a più livelli aziendali. L’attività di ETL, infatti, spesso fa scoprire veri “tesori” informativi che altrimenti resterebbero nascosti, a uso e consumo di una singola persona o di un numero limitato di persone.

(T) Transform

La preparazione dei dati avviene in questa fase e ha l’obiettivo di convertire i dati grezzi in un formato utile e coerente, adatto all’utilizzo per l’analisi e il reporting. 

I dati estratti vengono adattati per soddisfare le esigenze di business, con operazioni che possono includere:

  • pulizia dei dati (rimozione di duplicati, correzione di valori errati, completamento di dati mancanti…);
  • conversione di formati di dati (da testo a numerico, date nel formato corretto come YYYY-MM-DD…);
  • unione di dati da diverse fonti;
  • aggregazione e riepilogo dei dati;
  • anonimizzazione o pseudo-anonimizzazione (per esempio nel caso di dati di particolari categorie, come quelli sanitari o giudiziari);
  • aggiunta di dati necessari, per esempio, per la storicizzazione (periodo di riferimento dei dati, codici della struttura organizzativa, codici dei centri di costo ecc.);
  • applicazione di regole di business.

Dato che l’attività di pulizia dei dati permette di individuare errori e omissioni, se questi errori e omissioni sono rilevanti non è raro che da questa fase abbia origine un feedback ai reparti “in line” per correggere i dati alla fonte.

(L) Load

L’ultima fase consiste nel caricamento dei dati trasformati in un datawarehouse, un Data Mart o in un altro sistema, dove possono essere analizzati e utilizzati per supportare decisioni di business.

Replicabilità delle elaborazioni

Il lavoro necessario per implementare i processi di ETL può essere particolarmente laborioso, perché è necessario poter accedere a svariati “contenitori”, con i relativi permessi di accesso, analizzare i dati che devono far parte del sistema di Business Intelligence, impostare operazioni ad hoc per ogni fonte dati, spesso con tecnologie e metodologie di diverso tipo.

Una volta che tutto il percorso di preparazione dell’intero processo è stato definito e implementato, si possono mettere in atto degli automatismi in grado di ripetere più volte le stesse operazioni, con la periodicità desiderata (giornaliera, settimanale, mensile, trimestrale ecc.), con il minimo sforzo.

Abbiamo i dati: cosa ce ne facciamo?

A questo punto il nostro datawarehouse è pronto, viene alimentato costantemente con dati validi e utili e non resta che passare alla fase successiva: l’utilizzo di applicazioni che ci permettono di creare dashboard (cruscotti) e la reportistica standard per la direzione strategica e il management.

Anche questa fase è piuttosto impegnativa, perché ci troviamo di fronte a un mare (talvolta un oceano!) di dati e dobbiamo selezionare quelli più significativi per i decisori. 

Il vantaggio che abbiamo è che una volta che abbiamo costruito un cruscotto, possiamo riutilizzarlo all’infinito, perché si aggiornerà automaticamente sulla base dei dati che sono stati via via raccolti. L’aspetto negativo è che le esigenze di business possono variare nel tempo e quindi capiterà abbastanza spesso di dover modificare sia i cruscotti, sia la reportistica, per rendere questi strumenti realmente efficaci e utili. Ma, ancora, c’è un lato positivo: mentre tempo addietro i sistemi di Business Intelligence erano complessi, costosi e necessitavano di persone specializzate per essere studiati e messi a regime, oggi le applicazioni di analisi e di reportistica sono molto più semplici e intuitivi, pur non rinunciando alla potenza dei numerosi strumenti messi a disposizione.

Conclusione

Come spesso si dice, l’importante non è sempre la sola destinazione, ma lo è anche il viaggio.

Un lavoro di ETL fatto bene, non ha solo lo scopo di implementare un sistema di analisi e di reportistica, ma ha anche lo scopo di aumentare la conoscenza e la consapevolezza dei dati che sono presenti in azienda e che forse non conosciamo nemmeno: dati che possono costituire la differenza tra ottenere dei risultati mediocri e ottenere risultati eccellenti.