title: Extract, transform, load
text: # Extract, transform, load
  
  In informatica Extract, Transform, Load (ETL) è un'espressione in lingua inglese che si riferisce al processo di estrazione, trasformazione e caricamento dei dati in un sistema di sintesi (data warehouse, data mart, big data ecc...).
  
  ## Descrizione
  
  I dati vengono estratti da sistemi sorgenti quali database transazionali (OLTP), comuni file 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
  * Normalizzare i dati (per esempio eliminando i duplicati)
  * Tradurre dati codificati
  * Derivare nuovi dati calcolati
  * Eseguire accoppiamenti (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 struttura 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.
  
  ### Modalità di utilizzo
  
  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 per alimentare diversi sistemi di sintesi. Tali estrattori avendo piccole variazioni nei criteri di estrazione, di codifica o di ripulitura dei dati tenderebbero ad avere, nella pratica, criteri simili di estrazione ma non identici. Il risultato di tali stratificazioni è quello di avere sistemi di sintesi che presentano all'alta direzione risultati che, rappresentando gli stessi fenomeni, evidenziano invece valori diversi. Ciò contribuisce a generare diffidenza per i risultati dei sistemi di sintesi in generale.
  
  Per capire meglio cosa può succedere è sufficiente pensare di dover determinare il numero dei clienti di un'azienda a una certa data. È necessario decidere, a fronte di un nominativo presente nell'anagrafica clienti, dopo quanto tempo di inattività non considerarlo più tale. Può succedere che il significato di "numero clienti" sia diverso per reparti diversi della stessa azienda. Per il controllo di gestione un cliente può essere tale solo se ha comprato nel corso dell'anno, ma per il marketing, che deve mandare gli auguri di Natale, il bacino sarà senz'altro diverso e superiore.
  
  È necessario che sia demandato ad uno specifico sottosistema dedicato la funzione di integrazione dati tra i sistemi transazionali (OLTP) e i sistemi di sintesi OLAP, 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à generale, controllo di gestione) creando e gestendo l'univocità del dato e rendendo più semplice il controllo accentrato o la sostituzione 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 necessitano di un gruppo di lavoro specializzato in questo "linguaggio" e quindi, in caso di turn over o licenziamento, la necessità di gestire anticipatamente la presenza in azienda di opportuni back-up con i relativi costi.
  
  