Extract, transform, load

Versione del 4 feb 2007 alle 23:40 di Stefano Nesti (discussione | contributi) (approfondimento)

Extract, transform, load (ETL) è un'espressione in lingua inglese che si riferisce al processo estrazione, trasformazione e caricamento dei dati in un sistema di sintesi (data warehouse,data mart...).

I dati vengono estratti da sistemi sorgenti quali database transazionali (OLTP), comuni files di testo o da altri sistemi informatici (ad esempio, sistemi ERP o CRM).

Subiscono quindi un processo di trasformazione, che consiste ad esempio nel:

  • Selezionare solo quelli che sono di interesse per il sistema
  • Tradurre dati codificati
  • Derivare nuovi dati calcolati
  • Eseguire join tra dati recuperati da differenti tabelle
  • Raggruppare i dati

Tale trasformazione ha lo scopo di consolidare i dati (cioè rendere omogenei dati provenienti da sorgenti diverse) e di fare in modo che siano più aderenti alla logica di business del sistema di analisi per cui viene sviluppato.

Vengono infine memorizzati nelle tabelle del sistema di sintesi (load).

Occorre prestare particolare attenzione alla granularità delle informazioni da memorizzare nella stuttura a valle. Queste infatti, non solo devono essere aggregate in modo da non avere un dettaglio eccessivo (cosa che potrebbe portare ad un decadimento delle prestazioni delle interrogazioni effettuate sul sistema), ma devono anche mantenere una granularità che consenta di effettuare le necessarie analisi sui dati.

L'evoluzione

Occorre sottolineare come l'implementazione di estrattori necessiti di un'analisi di dettaglio dei sistemi di alimentazione. L'obiettivo che si deve porre un'azienda è che questo processo sia unico per tutti i sistemi di sintesi. Assolutamente da evitare è la stratificazione nel tempo di più estrattori, dallo stesso sistema, che siano dedicati per alimentare diversi sistemi di sintesi. Tali estrattori avendo piccole variazioni nei criteri di estrazione, di codifica o di ripulitura dei dati acquisiti tendono ad avere nella pratica criteri simili di estrazione ma sostanzialmente diversi, con il risultato di avere sistemi di sintesi che presentano all'alta direzione gli stessi dati con valori diversi generando diffidenza per i risultati dei sistemi di sintesi in generale. Nel determinare il numero dei clienti a una certa data, ad esempio, è necessario decidere, a fronte di un nominativo presente nell'anagrafica clienti, dopo quanto tempo di inattività non consideralo più tale.

E' necessario invece che sia demandato ad uno specifico sottosistema dedicato la funzione di integrazione dati tra i sistemi transazionali (OLTP) e i sistemi di sintesi, impedendo, di fatto che siano sviluppati più processi per estrarre lo stesso dato.

Lo sfruttamento di metadati (es. dizionario dati) potrà contribuire a generare l'integrazione non solo tecnica ma anche culturale all'interno dell'azienda.

Avere questo approccio significa rendere indipendenti, ma integrati, i vari sottosistemi aziendali (fornitori, magazzino, clienti, contabilità, controllo di gestione) creando e gestendo l'univocità del dato rendendo più semplice il controllo accentrato o la sostituzone di uno dei sistemi oggetto dell'integrazione.

Va notato come spesso per ETL si intende lo strumento con il quale è possibile sviluppare questa particolare architettura di alimentazione che di per sè potrebbe essere sviluppata anche con strumenti standard. Gli ETL tuttavia, essendo strumenti "dedicati", forniscono risultati tangibili in termini di documentazione e di velocità di sviluppo, per contro ncessitano di un gruppo di lavoro specializzato in questo "linguaggio" e quindi un turn over critico da gestire.

============================================

Alcuni ETL Software