1. Home
  2. /
  3. Blog
  4. /
  5. ETL: significato, funzionamento e...

ETL: significato, funzionamento e vantaggi

 

In un mondo data driven, le aziende hanno bisogno di dati per comprendere cosa succede all’interno e all’esterno della loro realtà, prendere decisioni informate, migliorare la propria operatività e la propria presenza sul mercato.
I dati rappresentano il carburante necessario per il motore di un’innovazione sempre più strettamente connessa ai percorsi di digitalizzazione.
Ma avere i dati non è sufficiente.
Ciò che conta è la loro qualità e la capacità di saperli usare e di trarne valore, a maggior ragione in un contesto, qual è quello attuale, in cui i dati provengono da una disparità di fonti diversi e una grande eterogeneità di formati.
Il primo passo che una realtà data-driven deve dunque compiere è renderli effettivamente utilizzabili per tutte le attività di business intelligence.
Ed è qui che entra in gioco ETL, un processo in tre fasi (estrazione, trasformazione e caricamento) che consente di rendere i dati effettivamente disponibili per le attività di analisi ed elaborazione.

Cos’è l’ETL e a cosa serve

L’ETL, letteralmente Extract, Transform, Load, ovvero estrazione, trasformazione e caricamento, è un vero e proprio processo di integrazione dei dati, che di fatto consolida i dati provenienti da diversi sistemi di origine in un data warehouse, in un data lake o in un altro sistema di destinazione con lo scopo di migliorare l’accesso ai dati.
Una pipeline ETL raccoglie i dati da uno più sistemi o database di origine, converte i dati estratti in un unico formato o struttura e e li trasferisce nel database di destinazione o in un archivio centralizzato.

In sintesi, la pipeline ETL rende i dati pronti per gli analisti e i decisori, facendo risparmiare tempo agli sviluppatori e riducendo gli errori connessi all’elaborazione manuale dei dataset.

È un processo chiave per le aziende data-driven, che possono dunque

  • Centralizzare i dati in tutta l’organizzazione, gestendoli in una posizione unificata che abilita una migliore collaborazione interfunzionale.
  • Standardizzare i dati che provengono da più fonti in formati diversi. Un passaggio fondamentale per poter poi ottenere preziosi insight dal proprio patrimonio informativo.
  • Effettuare migrazioni massive di dati – ad esempio nel caso di migrazione a un nuovo ERP – senza perdite o diminuzione della qualità, eliminando la necessità di trasferire manualmente i dati tra sistemi o database.

Come funziona il processo ETL

Come già accennato, una pipeline ETL è composta da tre fasi:

  • Estrazione
  • Trasformazione
  • Caricamento

Vediamole in dettaglio.

Extract / Estrazione

In questa prima fase, i dati vengono raccolti da diversi database o fonti.
Gli strumenti ETL estrae o copia i dati grezzi da più fonti e li archivia in un’area di staging, vale a dire un’area di archiviazione intermedia per la conservazione temporanea dei dati.
La fase di estrazione può avvenire in modalità diverse:

  • Estrazione completa: in questo caso l’intero dato viene estratto dalla fonte e inserito nella pipeline di dati. È un approccio che viene utilizzato quando il sistema non è in grado di identificare le modifiche dei dati e richiede di conservare una copia dell’ultimo estratto per poter verificare i nuovi record e quelli modificati. Poiché questo approccio comporta elevati volumi di trasferimento dei dati, si consiglia di utilizzarlo solo per tabelle di piccole dimensioni.
  • Estrazione incrementale: in questo caso, ogni volta che viene eseguito un processo di estrazione, vengono raccolti solo i nuovi dati e quelli che sono cambiati rispetto all’ultima volta
  • Estrazione guidata dalla fonte o su notifica di aggiornamento: in questo caso, la fonde originaria notifica al sistema ETL quando i dati cambiano, attivando la pipeline ETL per estrarre i nuovi dati.

Transform / Trasformazione

Poiché i dati vengono raccolti da più fonti, possono essere in vari formati, compresi dati semi-strutturati e non strutturati. In questa fase, i dati estratti vengono convertiti o strutturati nella forma corretta desiderata. Questa fase è fondamentale per inserire i dati raccolti nel database di destinazione.
Questa fase prevede una serie di azioni sui set di dati.

  • Si parte con la pulizia di base, vale a dire con la conversione dei dati in un formato adatto. In questo caso è possibile rimuovere possibili errori, mappare i dati di origine nel formato di destinazione, effettuare azioni di revisione del formato dei dati, convertendo set di caratteri, unità di misura e valori di data e ora in un formato coerente.
  • È possibile anche unire o fondere tabelle RDBMS o SQL o, laddove si voglia riassumere tutte le righe all’interno di un gruppo definito da una o più colonne, applicare funzioni di aggregazione come media, minimo, massimo, mediana, percentile e somma.
  • Analogamente, laddove serva solo un sottoinsieme di dati, è possibile filtrare i dati rilevanti, scartando gli altri.
  • In questa fase si può effettuare una verifica sui dati duplicati per capire se gli stessi record sono duplicati per errore o se sono legittimi e nel caso provvedere alla loro deduplica, così come è possibile effettuare un controllo sui possibili errori intercorsi nell’inserimento manuale dei dati. Casi tipici possono essere errori di battitura che modificano l’età di una persona o il suo luogo di residenza. In quest’ultimo caso, in presenza, cioè, di errori negli indirizzi, è possibile utilizzare API di geolocalizzazione per estrarre i dati di localizzazione ben formattati e risolvere il problema.
  • È poi possibile eseguire attività cosiddette di “derivazione”. In questo caso si applicano le regole aziendali ai dati per calcolare nuovi valori da quelli esistenti. Ad esempio, è possibile convertire le entrate in profitti sottraendo le spese.
  • Sempre in questa fase, è possibile proteggere i dati sensibili per rispettare le leggi sui dati o la privacy aggiungendo la crittografia prima che i dati vengano trasmessi al database di destinazione.

Load / Caricamento

In questa fase, i dati ora strutturati vengono spostati dall’area di staging e caricati nel database di destinazione o nel data warehouse. Si tratta di un processo ben definito che può essere tuttavia svolto secondo modalità differenti.

  • Caricamento completo: in questo caso, tutti i dati della fonte originaria vengono trasferiti nel data warehouse di destinazione, una volta completata la fase di trasformazione. Si tratta di una azione che viene scelta in genere la prima volta che si caricano i dati da un sistema sorgente al data warehouse.
  • Carico incrementale: esattamente come avviene nella fase di estrazione, anche in questo caso lo strumento ETL memorizza la data dell’ultima estrazione, in modo da caricare solo i record aggiunti dopo tale data, calcolando la differenza tra il sistema di destinazione e quello di origine. Nel caso di piccoli volumi di dati, questo può avvenire in una modalità streaming, vale a dire in continuo. È una modalità utile laddove sia importante monitorare ed elaborare i flussi di dati per prendere decisioni più tempestive. Nel caso di grandi volumi di dati. Si stabilisce un intervallo di tempo e le modifiche vengono raccolte e trasferite in batch.

 

Vantaggi dell’ETL

Come abbiamo già accennato, la pipeline ETL standardizza e automatizza l’intero processo di raccolta dei dati grezzi da più fonti di dati, come CRM, ERP, piattaforme di social media e così via, in diversi formati, tra cui CSV, JSON, XML e file di testo.
Ma vediamo in dettaglio quali sono le finalità per le quali questo processo è importante.

  • Convertire i dati in un formato comune.
    È questo il primo e più evidente beneficio dell’implementazione di una pipeline ETL in uno scenario nel quale serve un data warehouse con dati provenienti da più fonti e in formati differenti. Una pipeline ETL riduce i tempi, gli errori e di conseguenza i costi associati alla gestione dei dati.
  • Vista unificata sui dati.
    È possibile utilizzare l’ETL e consentire la combinazione e l’analisi dei dati provenienti da diverse fonti per ottenere una visione più completa di quanto accade in azienda.
  • Automazione
    L’ETL ottimizza le attività ripetitive di migrazione, spostamento, elaborazione dei dati introducendo maggiore efficienza nell’intero processo.

  • ETL porta a un livello diverso i concetti di utilità, disponibilità, coerenza, integrità e sicurezza dei dati. Creando un livello di astrazione tra il sistema di origine e quello di destinazione, l’ETL può contribuire alla governance dei dati preservandone la sicurezza e la qualità.
    Di fatto, ETL promuove la democrazia dei dati, aumentandone l’accessibilità e la disponibilità a tutti gli stakeholder, senza rinunciare ai necessari livelli di sicurezza.
  • Scalabilità
    Con l’aumento del volume e della complessità dei dati, l’importanza dell’ETL diventa più evidente.
    È possibile scalare le pipeline ETL per garantire che l’azienda possa continuare a estrarre, trasformare e caricare grandi volumi di dati.
  • Accesso ai dati
    Nelle strategie di Business Intelligence l’accesso tempestivo ai dati integrati è fondamentale a supporto di processi decisionali informati. Con le pipeline ETL, i dati sono già in formato utilizzabile e dunque consentono la realizzazione di report in tempi decisamente più rapidi.
  • Coerenza
    ETL può aiutare a identificare e correggere errori, incongruenze e altri problemi attraverso processi di pulizia e trasformazione dei dati. Migliorando la qualità, l’affidabilità, la precisione e l’attendibilità dei dati, migliora di conseguenza anche il processo decisionale
  • Riduzione degli errori
    La gestione manuale dei dati porta con sé non pochi rischi di errore che possono incidere anche significativamente nella loro lettura e analisi. ETL automatizza molte fasi della gestione del ciclo di vita del dato, riducendo gli errori e consentendo alle organizzazioni IT di lavorare su dati di qualità.

Evoluzione dell’ETL

Va detto che le pratiche ETL, nate in un momento diverso della storia dell’informatica aziendale, hanno subito cambiamenti significativi nel corso degli anni e a maggior ragione con la crescita dell’adozione del cloud.
Se l’ETL tradizionale partiva da processi manuali, sostituiti nel tempo da una sempre maggiore automazione, l’avvento del cloud computing ha avuto un impatto significativo sulle pratiche di ETL, consentendo alle organizzazioni di eseguire la pipeline in modo più scalabile ed economico.
L’ETL in cloud consente alle organizzazioni di archiviare ed elaborare grandi volumi di dati in cloud, senza la necessità di hardware o software on-premise, aumentando o diminuendo rapidamente le risorse in base alle proprie esigenze e mantenendo quei livelli di sicurezza e conformità necessarie per soddisfare i requisiti normativi.

E con la crescente diffusione del cloud, si tende a pensare alla virtualizzazione e all’ETL come se fossero la stessa cosa.
Entrambe consentono di accedere, integrare e distribuire i dati, ma si applicano a scenari d’uso differenti. ETL è utile per progetti di consolidamento dei dati fisici che comportano la duplicazione dei dati dalle fonti di dati originali in un data warehouse o in un nuovo database. È consigliata per applicazioni che eseguono data mining o analisi storiche a supporto della pianificazione strategica a lungo termine, ma lo è meno per applicazioni a supporto delle decisioni operative, che richiedono maggiore tempestività.
La virtualizzazione dei dati, invece, astrae, federa e pubblica un’ampia varietà di fonti di dati. L’applicazione interroga i dati pertinenti, esegue i join e le trasformazioni necessarie e fornisce i risultati agli utenti, senza che questi ultimi siano a conoscenza della reale ubicazione dei dati o dei meccanismi necessari per accedervi e unirli.

Differenze tra ETL ed ELT

In questo processo di trasformazione dell’ETL, sempre guidato dalla diffusione dei data warehouse cloud di nuova generazione, si comincia a parlare di una nuova declinazione dell’ETL: ELT, Extract, Load, Transform).

Cosa è ELT

Come si intuisce dall’acronimo, con ELT si definisce un processo di integrazione dei dati che parte dal trasferimento dei dati grezzi da un server di origine a un data warehouse o un data lake verso un server di destinazione e di preparare successivamente le informazioni per il loro utilizzo.
In questo caso, la pipeline parte dall’estrazione dei dati da uno o più sistemi sorgenti.
Nella seconda fase i dati estratti vengono caricati nel database di destinazione.
Infine, i dati vengono trasformati, ovvero convertiti dal formato di origine al formato richiesto per l’analisi.

Non è semplice dire quale dei due approcci sia preferibile.
Sostanzialmente, con ETL i dati grezzi non sono disponibili nel data warehouse perché vengono trasformati prima di essere caricati, mentre con ELT, i dati grezzi vengono caricati nel data warehouse e le trasformazioni avvengono sui dati memorizzati.
Generalmente, si considera ELT è più utile per l’elaborazione di grandi insiemi di dati necessari per la business intelligence (BI) e l’analisi dei big data.
ETL viene considerato un approccio preferibile all’ELT quando è necessaria un’ampia pulizia dei dati prima di caricarli sul sistema di destinazione, quando sono necessari numerosi calcoli complessi su dati numerici e quando tutti i dati di origine provengono da sistemi relazionali.

Cosa cercare in uno strumento ETL

In fase di valutazione dell’ETL che meglio si adatta alla propria organizzazione, ci sono una serie di fattori da prendere in considerazione.
Si parte naturalmente dalle funzionalità e caratteristiche, con un occhio di riguardo alla possibilità di connettere dati da fonti diverse, al supporto di vari formati di dati e le capacità di trasformazione dei dati stessi. Serve capite quali caratteristiche la soluzione offre in termini di profilazione e convalida dei dati e di capacità di gestire flussi di lavoro complessi.
La scalabilità è un altro elemento discriminante: lo strumento deve supportare grandi insiemi di dati e deve poter gestire volumi di dati crescenti, fornire soluzioni di elaborazione parallela e di ottimizzazione del caricamento dei dati.
Analogamente, la facilità d’uso non è da trascurare, così come è necessario assicurarsi che lo strumento si integri con l’infrastruttura, i database, le piattaforme cloud e gli strumenti di analisi esistenti. La compatibilità con un’ampia gamma di fonti di dati è essenziale per un consolidamento completo dei dati.
Da ultimo arrivano le considerazioni su costi e licenze, così come sulla capacità del partner che assiste l’azienda nella valutazione e implementazione di offrire supporto e assistenza in tutto il processo.