Cos'è l'ETL?
L'ETL (Extract, Transform, Load) (estrai, trasforma, carica) è un processo di integrazione dei dati che raccoglie dati da più fonti, li standardizza e li carica in un data warehouse per l'analisi, in database per l'archiviazione o in qualche altro tipo di fonte di dati. Le organizzazioni usano l'ETL per trasformare i loro dati, sparsi in più sistemi e in lingue diverse, in formati e stili unificati, in modo da poterli analizzare più facilmente. Con l'esplosione delle informazioni, le organizzazioni hanno enormi quantità di dati a loro disposizione. Tuttavia, molte organizzazioni inciampano sulla diversità e sul volume dei dati. Molte hanno difficoltà a spostare i dati fuori dai sistemi di origine, a tradurli in un linguaggio comune e a caricarli in un altro sistema in modo da poterli analizzare nella loro interezza per averne una visione completa. L'ETL aiuta le organizzazioni a utilizzare i dati in modo efficiente estraendo, trasformando e caricandoli in vari sistemi per migliorare la propria business intelligence.
L'ETL ha numerosi casi d'uso in diversi campi. Uno di questi è ricavare valore dai dati dei clienti. I clienti interagiscono con un marchio in modi diversi. L'ETL raccoglie tutti questi dati da varie fonti, li trasforma per aderire a un formato standard e poi li carica in un data warehouse o in un'altra fonte di dati per analizzarli. Quando l'azienda può facilmente analizzare i dati che sono tutti nella stessa lingua e nella stessa posizione, ciò offre all'organizzazione una visione accurata a 360 gradi dell'interazione del cliente con il suo marchio. Permette all'organizzazione di capire le esigenze dei clienti e fornire loro un'esperienza altamente personalizzata.

Perché le organizzazioni hanno bisogno dell'ETL?
I dati sono una delle più grandi risorse di un'organizzazione. La maggior parte dei dati utili è non strutturata e sparsa in più fonti. Pertanto, le organizzazioni hanno bisogno dell'integrazione dei dati sotto forma di ETL per raccoglierli, standardizzarli e prepararli per l'analisi in un'unica posizione. L'ETL assicura un accesso facile e uniforme ai dati per tutti i team. Con dati standardizzati, i team possono prendere decisioni ben informate da cui consegue una migliore business intelligence. Nel mondo di oggi, anche un singolo dato può fare una grande differenza in termini di redditività. Le organizzazioni che vogliono sfruttare il potere dei dati dovrebbero prendere in considerazione l'adozione dell'ETL.
Quali sono le fasi coinvolte nell'ETL?
Come suggerisce il nome, l'ETL consta di tre fasi principali: estrazione, trasformazione e caricamento.
Fase 1: estrarre i dati
L'estrazione è il processo di raccolta dei dati da più fonti. Tali fonti potrebbero includere quanto segue.
- Sistemi di gestione delle relazioni con i clienti (CRM)
- Social media e altre fonti online
- Database e archiviazione legacy
- Applicazioni di vendita e marketing
- Dati delle transazioni dei clienti
- Sistemi di pianificazione delle risorse aziendali
- Dati dei sensori dall'Internet of things (IoT)
L'estrazione dei dati è spesso eseguita in tre modi diversi.
Estrazione dei dati basata sulla notifica di un cambiamento
Alcune fonti di dati forniscono una notifica al sistema ETL quando avviene un qualsiasi cambiamento di dati. Il sistema ETL deve solo estrarre i nuovi dati. L'estrazione dei dati basata sulla notifica è il metodo più semplice, ma molte fonti di dati non forniscono notifiche.
Estrazione incrementale dei dati
Alcune fonti potrebbero non essere in grado di fornire notifiche sul cambiamento dei dati. Tuttavia possono identificare e registrare quali dati sono cambiati. Un sistema ETL dovrebbe controllare periodicamente tali fonti per vedere se è avvenuto un eventuale cambiamento nei dati. Questo metodo estrae progressivamente la porzione di dati che è cambiata. L'estrazione incrementale è più complessa dell'estrazione basata sulla notifica.
Estrazione completa dei dati
Alcune fonti potrebbero non disporre di alcun meccanismo per identificare i cambiamenti nei dati. Quando si tratta di tali fonti, l'ETL deve estrarre i dati completi dalla fonte. L'ETL deve mantenere una copia dell'ultimo estratto in modo da poterlo confrontare con la nuova copia. L'estrazione completa dei dati comporta un volume maggiore di trasferimento degli stessi rispetto a qualsiasi altro metodo, perché ogni volta l'intero set di dati deve essere copiato. Aumenta anche il carico sul sistema ETL.
Dati strutturati e non strutturati
I dati dalle fonti di cui sopra potrebbero essere strutturati o non strutturati. I dati strutturati sono pronti per l'estrazione immediata. I dati non strutturati hanno bisogno di alcune preparazioni per renderli adatti all'estrazione. Ciò include la pulizia dei dati, per esempio la rimozione degli spazi bianchi o delle emoticon.
Fase 2: trasformare i dati
I dati provenienti da fonti diverse possono avere strutture e caratteristiche differenti. Le fasi di "trasformazione" applicano varie tecniche per standardizzare questi dati diversi. Le organizzazioni spesso applicano regole aziendali durante la trasformazione dei dati. I sottoprocessi coinvolti nella trasformazione dei dati sono:
Standardizzazione
Il formato dei dati estratti da varie fonti può variare notevolmente. La standardizzazione trasforma i dati in un formato comune. Per esempio, tutti gli zeri nei dati grezzi potrebbero essere convertiti in NULL.
Pulizia
I dati provenienti da fonti come i social media o le comunicazioni via e-mail potrebbero contenere informazioni non rilevanti. I dati, in generale, potrebbero avere incoerenze e valori mancanti. La pulizia aiuta a rimuovere il rumore nei dati e a ripristinare i valori mancanti e le incongruenze.
Deduplicazione
I dati grezzi di una fonte potrebbero avere ripetizioni e informazioni ridondanti. La deduplicazione rimuove tutte queste ridondanze.
Revisione del formato
Include la conversione da un formato all'altro in base agli standard dell'organizzazione. Può includere la conversione dell'unità di misura, della data e dell'ora e del set di caratteri.
Verifica
Questa fase controlla l'integrità dei dati. In questa fase, il sistema ETL identifica e segnala le anomalie dei dati.
La trasformazione include anche operazioni di database avanzate come l'aggregazione dei dati, la creazione di una relazione chiave-valore, la divisione e il filtraggio dei dati.
Fase 3: caricare i dati
Nella fase finale dell'ETL, i dati trasformati vengono caricati in un data warehouse o, come già detto, in un'altra fonte di dati. Esistono due modi principali di "caricare".
Carico completo
Nel carico completo, tutti i dati preparati nella fase di 'trasformazione' sono caricati nel data warehouse come singolo batch. Se da un lato il 'carico completo' richiede molto tempo, è meno complesso del carico incrementale. Il carico completo potrebbe comportare una crescita esponenziale del volume di dati in un magazzino, che potrebbe diventare difficile da gestire.
Carico incrementale
Cerca i cambiamenti nei dati in arrivo. Crea un nuovo record di dati solo se vengono trovati dati unici. Il carico incrementale è più gestibile rispetto al carico completo. Tuttavia, può comportare incoerenze di dati se vi è un malfunzionamento del sistema.
Un'organizzazione può scegliere una strategia di "caricamento" in base a ciò che vuole fare con i dati. I dati caricati potrebbero essere usati per esigenze diverse.
- Creare uno strato di analytics o business intelligence sopra i dati
- Utilizzare i dati come database ricercabile
- Come sessione di allenamento per un algoritmo di machine learning
- Creare un sistema di avviso basato sui dati
Anche le caratteristiche della destinazione dei dati (per esempio un data warehouse) devono essere prese in considerazione. La velocità, la capacità e le interfacce dati della destinazione possono influenzare il processo di caricamento.

Quali sono i tipi di strumenti ETL?
In base ai requisiti, le organizzazioni utilizzano diversi tipi di strumenti ETL. Un'organizzazione potrebbe scegliere una categoria ETL in base a ciò che deve fare con i dati.
Codifica manuale
Alcune organizzazioni scelgono di non usare alcuno strumento ETL specifico. Optano invece per il metodo di codifica manuale. Con questo metodo, sono creati degli script personalizzati che eseguono il flusso di lavoro ETL. Gestire e standardizzare il metodo di codifica manuale è impegnativo.
Strumenti di elaborazione in batch
Questi strumenti elaborano i dati in batch, spesso durante l'orario di lavoro per non interferire con le operazioni quotidiane. Le organizzazioni che non hanno bisogno di funzionalità ETL in tempo reale possono contare su strumenti di elaborazione in batch.
Strumenti open-source
Diversi strumenti ETL open-source sono disponibili online. Si tratta di un'alternativa a basso costo agli strumenti ETL commerciali. Le organizzazioni che scelgono di usare una versione open-source devono essere pronte a far funzionare e mantenere lo strumento ETL. Il supporto può essere esiguo o assente.
Strumenti basati sul cloud
Se un'organizzazione non può permettersi l'infrastruttura ETL, può cercare una piattaforma ETL come servizio. Molte aziende offrono servizi ETL sul cloud che assicurano supporto completo, facile integrazione e scalabilità.
Strumenti in tempo reale
La maggior parte degli strumenti discussi sopra lavora in tempo non reale. I sistemi ETL in tempo reale utilizzano l'elaborazione continua dei dati per estrarre i dati da più fonti e memorizzarli nel magazzino. Questi tipi di strumenti ETL sono utili nell'elaborazione dei dati di flusso o dei dati dei sensori nel caso dell'Internet of things.
Quali sono i vantaggi dell'ETL?
Dati consolidati
Spesso le organizzazioni riscontrano problemi con i dati provenienti da più fonti. I dati di fonti diverse possono differire nel volume, formato e nella complessità. L'ETL li standardizza e fornisce un unico punto di vista sui dati. L'ETL consente alle organizzazioni di recuperare e analizzare rapidamente i dati. Aiuta a prendere decisioni migliori e più veloci.
Contesto storico
Molte organizzazioni hanno dati storici memorizzati in sistemi di archiviazione dati legacy. L'ETL è in grado di estrarre i dati dai sistemi legacy e unificarli con quelli attuali. Ciò fornisce un contesto storico attraverso il quale le organizzazioni possono riconoscere le tendenze a lungo termine. Il contesto storico aiuta le aziende a ricavare informazioni utili e a migliorare la business intelligence.
Efficienza e produttività
L'ETL aumenta l'efficienza dei team fornendo loro un facile accesso ai dati. Toglie l'onere di scrivere script personalizzati per la migrazione dei dati, aumentando così la produttività. Quando i dati sono immediatamente disponibili, i dipendenti possono prendere decisioni ben informate e dedicare più tempo all'analisi e meno tempo a compiti di minor valore.
Quali sono le sfide dell'implementazione di un flusso di lavoro ETL?
Enormi volumi di dati
Il sistema ETL è spesso progettato per gestire uno specifico volume di dati in entrata. Oggi i dati aziendali crescono rapidamente. Il sistema ETL potrebbe non essere in grado di gestire l'aumentato volume di dati.
Soluzione: durante l'implementazione di un flusso di lavoro o di uno strumento ETL, le organizzazioni devono pensare alla scalabilità. Insieme alla scelta di una soluzione scalabile, dovrebbero evitare carichi di dati completi. Le organizzazioni dovrebbero identificare i dati cruciali ed evitare tutti i dati non essenziali. Dovrebbero anche cercare l'elaborazione dei dati parallela.
Cambiare i formati dei dati
Le organizzazioni dovrebbero prendere in considerazione la natura dinamica dei formati dei dati. I dati provenienti da una fonte esterna potrebbero non essere nello stesso formato o non avere la stessa frequenza. Il sistema ETL dovrebbe essere in grado di gestire questa diversità.
Soluzione: la pulizia dei dati anche prima della fase di "trasformazione" è fondamentale per gestire i cambiamenti di formato. Il sistema ETL dovrebbe essere in grado di identificare e segnalare allo strumento di trasformazione il nuovo formato. Inoltre, il processo di trasformazione in ETL dovrebbe essere flessibile e non basato su regole a codifica fissa.
Pipeline ETL strettamente accoppiata
L'ETL è un sistema complesso con molti componenti e sottosistemi. Ognuno di questi componenti dovrebbe essere scalabile, funzionale e flessibile. Spesso le organizzazioni tendono a usare tecnologie e sistemi simili per ciascuno di questi componenti. Quando un'organizzazione implementa il flusso di lavoro ETL, tende ad applicare soluzioni simili per tutte le parti. Ne consegue un sistema strettamente accoppiato e meno flessibile.
Soluzione: ogni componente del sistema ETL dovrebbe essere considerato un componente indipendente. L'organizzazione dovrebbe scegliere gli strumenti giusti per ognuna di queste fasi. Ognuno di questi componenti potrebbe richiedere soluzioni altamente specializzate. Disaccoppiare i componenti ETL aiuta le organizzazioni a correggere o cambiare qualsiasi parte senza dover ricostruire l'intero sistema da zero.