Cos'è l'ETL (Extract, Transform, Load)?

Definizione di ETL

L'ETL (estrazione, trasformazione, caricamento) è un processo di integrazione dei dati che combina, pulisce e organizza dati provenienti da diverse fonti. Successivamente, carica questi dati trasformati in un data warehouse, un database o un'altre destinazione.

Le pipeline di dati ETL forniscono le basi per l'analytics dei dati e i workflow di machine learning. Attraverso una serie di Business Rules, l'ETL pulisce e organizza i dati per rispondere a specifiche esigenze di business intelligence, come la reportistica mensile. Se utilizzato in combinazione con la tecnologia di data streaming, è noto come ETL di streaming e può consentire il trattamento dei dati in tempo reale e insight immediati.

Le pipeline di dati ETL forniscono le basi per l'analytics dei dati e i flussi di lavoro di machine learning. Attraverso una serie di Business Rules, l'ETL pulisce e organizza i dati per rispondere a specifiche esigenze di business intelligence, come la reportistica mensile. Se utilizzato insieme alla tecnologia data streaming, l'ETL può essere applicato anche a event streams in arrivo continuo, un approccio noto come streaming ETL.

Sebbene oggi siano disponibili nuove opzioni di integrazione dei dati per le aziende, l'ETL rimane una scelta diffusa perché è compatibile con i sistemi legacy, può migliorare la qualità dei dati e può consentire il mascheramento dei dati sensibili mentre sono ancora in transito.  

Gli strumenti ETL sono disponibili sia tramite soluzioni open source che commerciali. Sono inoltre spesso integrati in database e piattaforme cloud. Le funzionalità chiave delle soluzioni ETL includono automazione completa, interfacce visive e la flessibilità di passare tra ETL e altri modelli di integrazione dati.

Perché è importante l'ETL?

L'ETL aiuta le aziende a raccogliere informazioni da fonti eterogenee e a trasformarle in dati affidabili che possono essere utilizzati per l'analytics e l'intelligenza artificiale in diversi ambienti, dai server on-premise alle piattaforme cloud.

Nonostante la sua rilevanza per il landscape tecnologico odierno, l'ETL è in realtà precedente ai moderni workload AI e al cloud computing. È stato introdotto negli anni '70 come processo per integrare e caricare dati ai fini di calcolo e analisi.

L'ETL è diventato infine il metodo principale per elaborare i dati nei progetti di data warehousing. Negli anni '90 e 2000, con l'arrivo dell'era dei big data, le organizzazioni stavano implementando l'ETL per integrare grandi volumi di dati estratti da nuove fonti, come social media, dispositivi e sensori Internet of Things (IoT).

Quando l'infrastruttura cloud è diventata un punto fermo del business negli anni 2000, i moderni software e strumenti ETL hanno abilitato la migrazione e l'integrazione dei dati nelle piattaforme e nei warehouse cloud tra cui Amazon Web Services (AWS), Microsoft Azure e Snowflake. Inoltre, tali piattaforme hanno consentito alle soluzioni ETL di fornire insight in modo rapido e su larga scala, generando vantaggi competitivi per le aziende che le hanno adottate.

L'ultima evoluzione nell'ETL è la sua implementazione per l'integrazione dei dati in streaming, che fornisce insight aggiornati al secondo derivati da feed di dati continui.

AI Academy

È la gestione dei dati il segreto dell’AI generativa?

Scopri perché i dati di alta qualità sono fondamentali per un uso efficace dell'AI generativa.

ETL ed ELT a confronto

Le discussioni sull'ETL spesso includono la menzione di un processo di integrazione dei dati con un nome simile: ELT, ovvero estrarre, caricare, trasformare.

A parte le sovrapposizioni terminologiche, i due processi sono notevolmente diversi. Una distinzione evidente risiede nell'ordine delle operazioni. Nell'ELT, la trasformazione dei dati avviene alla fine del processo di integrazione dei dati, non a metà. Le differenze più significative tra i due processi includono:

Differenze tra ETL ed ELT

 

etl

ELT

Ordine e posizione delle fasi

Dopo l'estrazione, la trasformazione dei dati avviene durante il transito, all'interno di un'area di staging, prima che i dati vengano caricati in un sistema di destinazione.

Dopo l'estrazione, i dati non elaborati vengono caricati in un sistema target e trasformati all'interno di quel sistema.

Tipo di dati

Ideale per dati strutturati che possono essere trasformati per adattarsi a uno schema predefinito.

Progettato per gestire dati strutturati, semi-strutturati e non strutturati con un approccio schema-on-read applicato alla destinazione.

Volume di dati

Migliore per set di dati più piccoli.

Progettato per i big data.

Velocità

Il movimento dei dati è rallentato dalla trasformazione durante il transito, ma è pronto per l'analisi all'arrivo al sistema di destinazione.

I dati raggiungono il sistema di destinazione più velocemente, ma i dati non strutturati possono richiedere tempo per essere formattati all'interno del sistema di destinazione prima di poter essere utilizzati.

Costo

Costi iniziali più elevati relativi all'infrastruttura e all'ingegneria dei dati, essenziali per la trasformazione.

Costi iniziali inferiori grazie a stack di dati relativamente semplici, ma volumi di dati imprevedibili possono portare a costi imprevisti in un secondo momento

Manutenzione

Maggiori esigenze di manutenzione, poiché le pipeline richiedono una reingegnerizzazione per adattarsi alle modifiche all'origine dei dati e ai requisiti dei dati a valle

Minori esigenze di manutenzione grazie a stack di dati più semplici.

Privacy e sicurezza dei dati

I dati sensibili, come le informazioni di identificazione personale (PII), possono essere mascherati durante la trasformazione in transito, prima di essere caricati nella destinazione finale.

I programmi di governance e le misure di sicurezza possono ridurre il rischio di violazioni basate su cloud che espongono dati non elaborati sensibili.

Come funziona l'ETL

Il modo più semplice per comprendere come funziona l'ETL è capire cosa accade in ciascuna delle tre fasi del processo: estrazione, trasformazione e caricamento.

Estrazione

Il processo ETL inizia con l'identificazione di data point specifici che sono gli obiettivi dell'estrazione insieme a eventuali potenziali "chiavi" utilizzabili per integrare i dati tra sistemi di origine eterogenei. La fonte dei dati di input è spesso tracciata utilizzando dei metadati.

Durante l'estrazione dei dati, i dati non elaborati vengono copiati o esportati dalle fonti di dati in un'area di staging. I team di gestione dei dati possono estrarre dati da varie fonti, che possono essere strutturate o non strutturate. Le fonti di dati includono, a titolo esemplificativo ma non esaustivo:

Trasformazione

Nell'area di staging, i dati non elaborati vengono sottoposti al trattamento dei dati. Qui, i dati vengono trasformati e consolidati per il caso d'uso analitico previsto secondo specifiche regole aziendali. Questa fase del processo di trasformazione può includere:

  • Pulizia, filtraggio, aggregazione e deduplica dei dati.
  • Validazione e autenticazione dei dati.
  • Eseguire calcoli, traduzioni o riepiloghi basati sui dati grezzi. Questo processo può includere la modifica delle intestazioni di riga e colonna per coerenza, la conversione di valute o altre unità di misura, la modifica di stringhe di testo e molto altro.
  • Eseguire audit per garantire la qualità dei dati e la conformità e calcolare le metriche.
  • Rimuovere, crittografare o proteggere i dati regolati dalle autorità di regolamentazione del settore o governative.
  • Formattazione dei dati in tabelle o tabelle collegate in modo che corrispondano allo schema del data warehouse di destinazione.

Caricamento

In quest'ultimo passaggio, i dati trasformati vengono spostati dall'area di staging in un data warehouse di destinazione. Nell'ETL tradizionale, questo processo prevede un caricamento iniziale di tutti i dati, seguito da caricamenti periodici delle modifiche incrementali dei dati e, meno frequentemente, da aggiornamenti completi per cancellare e sostituire i dati nel data warehouse. Nell'ETL moderno e in streaming, il caricamento dei dati avviene in modo continuo.

ETL tradizionale ed ETL in streaming

Sebbene l'ETL sia tradizionalmente un processo orientato ai batch, piattaforme di event streaming di eventi distribuiti come Apache Kafka estendono i pattern ETL dall'elaborazione batch a Event Streams continui. Questo tipo di ETL in streaming consente il trattamento dei dati in tempo reale.

I processori di streaming compatibili con Kafka come Kafka Streams, ksqlDB e Apache Flink consentono ai data engineer di creare pipeline ETL che acquisiscono flussi di eventi dai sistemi di origine, trasformano i dati mentre sono in movimento e li inviano agli analytics engine e alle applicazioni downstream, il tutto con una bassa latenza, a differenza dell'integrazione basata sull'elaborazione in batch.

Questo ETL in streaming presenta altri vantaggi rispetto all'ETL tradizionale. Due elementi chiave sono la flessibilità e la scalabilità. Mentre le pipeline ETL tradizionali sono scritte con una logica di trasformazione progettata per casi d'uso e destinazioni specifici, i dati trasmessi in Kafka da diverse fonti possono essere trasformati per diversi casi d'uso e consumatori.

In altre parole, l'ETL in streaming non richiede lo stretto accoppiamento tipico dell'ETL tradizionale, consentendo flussi di dati riutilizzabili e riducendo il tempo e il lavoro necessari per riconfigurare le pipeline.

Nonostante tali vantaggi, le aziende possono comunque optare per l'ETL tradizionale rispetto all'ETL in streaming quando sono necessarie trasformazioni complesse o quando il tempo non è essenziale. In tali casi, l'ETL tradizionale e l'elaborazione in batch possono essere più efficienti in termini di costi rispetto allo streaming ETL.

ETL e altri metodi di integrazione dei dati

Oltre ai tradizionali ETL, streaming ETL ed ELT, esistono altri approcci utilizzati per facilitare i workflow di integrazione dei dati. Tali metodi includono:

Change data capture (CDC)

CDC identifica e cattura solo i dati di origine modificati e sposta quei dati nel sistema di destinazione. Il CDC può essere utilizzato per ridurre le risorse necessarie durante il passaggio ETL di estrazione. Può anche essere utilizzato in modo indipendente per spostare i dati in un data lake o in un altro repository in tempo reale.

Replica dei dati

La Data Replication copia le modifiche nelle fonti di dati in tempo reale o in batch in un database centrale. A differenza dell'ETL, in genere preserva i dati con trasformazioni limitate. Data Replication è spesso elencata come metodo di integrazione dei dati. In effetti, viene usata più spesso per creare backup per il disaster recovery, e può anche essere impiegata per la migrazione di database e altri scopi.

Virtualizzazione dei dati

La virtualizzazione dei dati utilizza un livello di astrazione del software per creare una visualizzazione unificata e integrata dei dati senza copiare, trasformare o caricare fisicamente i dati di origine in un sistema di destinazione. La virtualizzazione dei dati consente a un'organizzazione di creare data warehouse virtuali, data lake e data mart dagli stessi dati di origine. Questo approccio potrebbe ridurre le spese e la complessità di creare e gestire piattaforme separate per ciascuno di essi.

Stream data integration (SDI)

L'integrazione dei dati in flusso è un termine generico per i diversi metodi di integrazione che permettono il consumo e il caricamento continuo dei flussi di dati in tempo reale, inclusi streaming ETL, ELT moderno e la raccolta dei dati di variazione.

Zero-ETL

Zero-ETL è un approccio di integrazione dei dati veloci in cui i consumatori aggirano i passaggi tradizionali della pipeline di dati per interrogare i dati nella loro forma originale. In zero-ETL, la trasformazione è posticipata mentre i dati vengono condivisi tramite connessioni point-to-point tra i sistemi di origine e di destinazione. Tale condivisione può avvenire tramite data replication o query federate, che comportano l'interrogazione dei dati su più fonti senza richiederne lo spostamento.

Variazioni dell'ETL

Esistono approcci di integrazione dei dati che possono essere considerati derivati dell'ETL, ma includono alcune differenze notevoli.

  • L'ETLT, o estrazione, trasformazione, caricamento e trasformazione, è un ETL con una fase di trasformazione aggiuntiva alla fine. Mentre una certa trasformazione dei dati avviene nell'area di staging, come con l'ETL tradizionale, un'ulteriore trasformazione avviene in un sistema di destinazione come un data warehouse. In genere, la prima fase di trasformazione comporta modifiche di base, mentre la seconda fase di trasformazione include modifiche più complete.
  • L'ETL inverso modifica il flusso dell'ETL tradizionale. Invece di estrarre i dati dalle relative fonti, i dati già trasformati dai data warehouse vengono inviati a un'applicazione SaaS, a un sistema operativo o a un altro consumatore a valle. Questo processo è noto anche come analytics operativa.
  • TETL, o trasformazione, estrazione, trasformazione e caricamento, è un ETL con una fase di trasformazione aggiuntiva all'inizio: la trasformazione avviene prima nell'origine dei dati, ancor prima che vengano estratti. Successivamente, vengono trasformati nuovamente secondo necessità prima di essere caricati nel sistema di destinazione. Le aziende potrebbero scegliere di utilizzare il TETL quando il sistema sorgente è in grado di gestire le trasformazioni, contribuendo a ridurre le esigenze di elaborazione a valle.

Quali sono i benefici dell'ETL?

I metodi ETL tradizionali e in streaming offrono molteplici benefici alle aziende che gestiscono un complesso dei dati in crescita.

  • Miglioramento della qualità dei dati: l'ETL migliora la qualità dei dati durante la fase di trasformazione attraverso metodi quali la pulizia e la deduplica, garantendo che i dati che giungono allo storage dei dati di destinazione siano affidabili e pronti per l'uso.
  • Supporto alla conformità: l'ETL è spesso utile per le aziende in settori fortemente regolamentati come i servizi finanziari e la sanità, perché le misure di conformità e sicurezza, come la crittografia, possono avvenire ancor prima che i dati vengano consegnati alla destinazione.
  • Compatibilità dei sistemi legacy: le organizzazioni che utilizzano sistemi legacy, inclusi server on-premises con meno capacità rispetto agli ambienti basati sul cloud, possono distribuire l'ETL tradizionale per garantire che i dati vengano trasformati secondo necessità prima di essere caricati nelle destinazioni target.
  • Gestione delle esigenze di storage cloud: le tecniche di trasformazione dei dati, come il filtraggio e l'aggregazione, possono ridurre il volume dei dati caricati sulle piattaforme dati cloud, contribuendo a ridurre i requisiti e i costi dello storage cloud.
  • Supporto per i workflow AI: lo streaming ETL consente la distribuzione continua di dati di alta qualità ai workflow di AI e machine learning. Fornire informazioni aggiornate e affidabili ai modelli AI può ridurre drift e migliorare la precisione delle previsioni, aiutando le aziende a integrare con successo l'AI nelle operazioni quotidiane.

Quali sono le sfide dell'ETL?

La modernizzazione dell'ETL tramite tecnologie di data streaming ha contribuito ad attenuare alcune sfide tradizionali aumentando velocità e flessibilità. Tuttavia, restano importanti considerazioni che le organizzazioni dovrebbero tenere in conto.

  • Preparazione iniziale: l'ETL richiede uno stack tecnologico più complesso, inclusi i server per lo staging e la trasformazione, rispetto all'ELT. Richiede inoltre l'identificazione delle Business Rules e la creazione di una logica di trasformazione prima che inizi l'integrazione.
  • Costi dell'infrastruttura e della manodopera: sebbene l'ETL possa aiutare le aziende a ridurre i costi del cloud computing, tendono a spendere di più in anticipo per la progettazione dell'infrastruttura e delle pipeline rispetto all'ELT.
  • Gestione dello schema: modifiche impreviste nella struttura dei dati di origine, come la ridenominazione delle colonne o le modifiche ai tipi di dati, possono causare guasti alla pipeline. Gli strumenti di gestione degli schemi, come i registri degli schemi, possono automatizzare la convalida degli schemi per prevenire problemi a valle.

Casi d'uso dell'ETL

La lunga storia dell'ETL tradizionale e l'avvento dello streaming ETL fanno in modo che il processo supporti una vasta gamma di casi d'uso in diversi settori.

  • Gestione dei dati sensibili: durante la fase di trasformazione dell'ETL, le informazioni di identificazione personale (PII) possono essere mascherate prima di essere consegnate a una destinazione target.
  • Reportistica regolare: l'ETL in batch è un metodo efficiente per aggregare i dati dei report prodotti a intervalli programmati, come i report di vendita e i report di conformità normativa.
  • Rilevamento delle frodi: gli istituti finanziari possono utilizzare l'ETL in streaming per rilevare modelli sospetti e segnalare immediatamente anomalie che indicano potenziali frodi.
  • Manutenzione predittiva: L'analisi dei dati IoT (assorbiti, trasformati e forniti tramite ETL) può aiutare le organizzazioni a valutare le esigenze di manutenzione e riparazione per prevenire i tempi di inattività delle apparecchiature.

Strumenti ETL

In passato, i data engineer delle organizzazioni scrivevano il proprio codice ETL per creare pipeline personalizzate. Oggi esistono vari strumenti e servizi ETL che riducono in modo significativo il lavoro e il tempo necessari per costruire una pipeline ETL. Le imprese spesso utilizzano software open source, soluzioni commerciali e strumenti integrati nelle piattaforme di database e servizi cloud a questo scopo.

Le funzionalità delle principali soluzioni ETL includono:

  • Automazione completa: automatizzare l'intero flusso di dati, dalle fonti dei dati al data warehouse di destinazione, evita ai data engineer le noiose attività di spostamento e formattazione dei dati, per risultati più rapidi e operazioni più efficienti.
  • Un'interfaccia visiva, drag-and-drop: questa funzione può essere utilizzata per specificare regole e flussi di dati.
  • Supporto per la gestione dei dati complessi: questa capacità include l'assistenza per calcoli complessi, integrazioni di dati e manipolazioni di stringhe.
  • Sicurezza e conformità: i migliori strumenti ETL crittografano i dati, applicano regole di governance dei dati e possono seguire delle linee guida per conformarsi alle normative di settore o governative, come HIPAA e GDPR.
  • Flessibilità dello stile di integrazione: la possibilità di alternare tra ETL e altri pattern, come ELT e TETL, offre alle aziende la flessibilità di scegliere lo stile di integrazione migliore per ogni workload.
  • Integrazione dei dati in streaming in tempo reale: le soluzioni ETL moderne includono funzionalità di streaming e elaborazione dati in tempo reale che sono diventate parte integrante dell'AI aziendale.

Domande frequenti sull'ETL

L'ETL è ancora usato dalle aziende?

L'ETL rimane un processo fondamentale di integrazione dei dati, anche se le aziende stanno valutando nuovi modelli in questo senso. L'ETL basato su batch è un metodo affidabile ed economico per molti workload, mentre l'ETL in streaming aiuta le organizzazioni a ottenere insight in tempo reale per un processo decisionale sensibile al fattore tempo.

L'ETL funziona negli ambienti cloud?

Mentre l'ETL tradizionale precede l'infrastruttura cloud moderna, oggi l'ETL è comunemente utilizzato per estrarre e trasformare dati da varie fonti e caricarli in repository basati su cloud, inclusi i data warehouse cloud. I provider di servizi cloud spesso offrono funzionalità ETL, incluse aree di staging basate sul cloud. La scalabilità e la potenza di calcolo delle piattaforme cloud possono migliorare le prestazioni dei processi ETL, con conseguente elaborazione e insight più rapidi.

Cos'è un'area di staging?

Un'area di staging è una posizione temporanea di storage tra le sorgenti dati e una destinazione target utilizzata per memorizzare temporaneamente dati non elaborati. Agisce come un bacino di carico dove i dati non elaborati vengono puliti, ispezionati e trasformati prima di spostarsi verso una destinazione target.

Qual è la differenza tra carichi iniziali, incrementali e completi?

I carichi iniziali, incrementali e completi descrivono diversi modi in cui i dati vengono caricati durante l'ETL. Il caricamento iniziale consiste nella prima estrazione e nel primo caricamento dei dati da una sorgente dati a una destinazione. Include l'intero set di dati e viene eseguito una sola volta, all'inizio di un progetto.

Il caricamento incrementale è il processo di caricamento dei soli dati nuovi, modificati o eliminati dall'ultimo caricamento. E il caricamento completo è il processo di trasferimento di tutti i dati di un set di dati a un sistema target, spesso per sostituire i record esistenti in quel sistema.

Autori

Alice Gomstyn

Staff Writer

IBM Think

Amanda McGrath

Staff Writer

IBM Think

Soluzioni correlate
IBM StreamSets

Crea e gestisci pipeline di dati intelligenti in streaming attraverso un'interfaccia grafica intuitiva, che facilita la perfetta integrazione dei dati in ambienti ibridi e multicloud.

Esplora StreamSets
IBM watsonx.data™

Watsonx.data ti consente di scalare analytics e AI con tutti i tuoi dati, ovunque risiedano, attraverso uno storage dei dati aperto, ibrido e governato.

Scopri watsonx.data
Servizi di consulenza per dati e analytics

Sblocca il valore dei dati enterprise con IBM Consulting, creando un'organizzazione basata su insight in grado di generare vantaggi aziendali.

Esplora i servizi di analytics
Fai il passo successivo

Progetta una strategia dati che elimini i silo, riduca la complessità e migliori la qualità dei dati per esperienze eccezionali di clienti e dipendenti.

  1. Esplora le soluzioni di gestione dei dati
  2. Scopri watsonx.data