La pipeline ETL viene usata per raccogliere i dati da diverse origini, trasformarli in base alle regole di business e caricarli in un archivio dati di destinazione. Il processo ETL può essere usato per unire dati da diverse fonti, aggiungere calcoli e logiche di trasformazione nonché applicare regole di pulizia dei dati all’oggetto.
Inoltre, una pipeline ETL può essere utilizzata per convertire i dati in formati differenti, adeguarli a standard comuni ed eliminare i dati inutili. Le operazioni di trasformazione vengono spesso eseguite nell’ambiente di sviluppo e, una volta completate correttamente, vengono implementate in produzione.
Oltre a tutto ciò, la pipeline ETL può essere utilizzata per creare report consolidati da diverse fonti o generare informazioni ad-hoc. Infine, la pipeline ETL può essere utilizzata per ottimizzare l’archiviazione dei dati da parte di una squadra di analisti in modo che sia più facile comprendere e interpretare i dati.
Cosa significa ETL
L’acronimo ETL significa Extract, Transform and Load, ovvero, Estrazione, Trasformazione e Caricamento: si riferisce a una pipeline, ovvero diverse componenti software con un flusso di operazioni stabilito, che riguarda i dati.
- Extract si riferisce al processo di estrazione dei dati da una fonte, che può essere: un database SQL – Structured Query Language, quindi un database relazionale, con o senza OLTP – Online Transaction Processing, l’elaborazione online delle transazioni tra i dati; un database NoSQL; un comune file di testo o XML; sistemi ERP- Enterprise Resource Planning o CRM – Customer Relationship Management; una piattaforma cloud.
- Transform si riferisce al processo di trasformazione del formato o della struttura di un dataset in quello necessario al sistema di destinazione. I dati estratti possono essere selezionati, normalizzati, tradotti, fonte per il calcolo di dati derivati, “accoppiati” (join), raggruppati, aumentati: l’obiettivo è renderli omogenei, e quindi fruibili per la data analytics. Nel processo ETL tradizionale, i dati vengono trasformati in un’area di sosta (staging), basata su un server separato sia dalla fonte che dalla destinazione.
- Load si riferisce al processo di caricamento dei dati nel sistema di destinazione, o tramite riscrittura, che sostituisce i dati precedenti, o tramite aggiornamento, che non cancella i dati già esistenti.
A volte le tre fasi del processo vengono eseguite parallelamente, riducendo i tempi di elaborazione: dati già estratti, mentre la prima fase non è conclusa, possono essere trasformati e caricati.
Ci sono diversi livelli di ETL che corrispondono a diversi livelli di repository: il primo livello conserva i dati con il dettaglio più alto, da cui possono partire altri ETL, di secondo livello e oltre, per costruire dataset per analisi specifiche, tra cui le OLAP – On Line Analytical Processing, le elaborazioni analitiche online multidimensionali.
Quali sono le caratteristiche di un ETL
ETL è una procedura fondamentale nella gestione delle informazioni di un azienda e offre numerosi vantaggi. Aiuta nella creazione di una struttura di dati standardizzata che permette a più utenti all’interno dell’organizzazione di accedere ai dati con facilità. Inoltre, l’uso di pipeline ETL aiuta a ridurre i tempi di sviluppo e implementazione dei dati e consente una gestione più efficiente dell’intero processo. Infine, la pipeline ETL può essere utilizzata per migliorare le capacità di analisi dei dati, trasformando i dati grezzi in informazioni ben organizzate che possono essere più facilmente interpretate.
Tra le caratteristiche fondamentali ricordiamo:
- Connettività – Un ETL efficace dovrebbe connettersi a tutte le fonti di dati già utilizzate in azienda. Dovrebbe quindi essere dotato di connettori integrati per database, diverse applicazioni di vendita e marketing, diversi formati di file, in modo da favorire l’interoperabilità tra sistemi e lo spostamento e la trasformazione dei dati tra la fonte e la destinazione a seconda delle esigenze.
- Interfaccia facile da usare – Un’interfaccia priva di bug e facile da configurare è necessaria per ottimizzare tempi e costi di utilizzo nonché per semplificare la visualizzazione della pipeline.
- Gestione degli errori – L’ETL gestisce gli errori in modo efficiente, garantendo la coerenza e la precisione dei dati. Inoltre, offre capacità di trasformazione dei dati fluide ed efficienti, impedendone le perdite.
- Accesso ai dati in tempo reale – L’ETL recupera i dati in tempo reale, per garantire aggiornamenti tempestivi rispetto ai processi in corso.
- Monitoraggio incorporato – L’ETL è dotato di un sistema di monitoraggio integrato che assicura un’esecuzione fluida del processo.
ETL tool: le differenze tra le pipeline
Le pipeline ETL sono classificate in base ai casi d’uso: quattro dei tipi più comuni sono
- l’elaborazione batch,
- l’elaborazione in tempo reale,
- l’elaborazione on-premise,
- L’elaborazione sul cloud.
La pipeline di elaborazione batch è utilizzata principalmente per i casi d’uso tradizionali di analisi, in cui i dati vengono periodicamente raccolti, trasformati e spostati in un data warehouse nel cloud per i casi d’uso convenzionali di business intelligence. Gli utenti possono mobilitare rapidamente dati ad alto volume in un datalake cloud o in un data warehouse e programmare i lavori per l’elaborazione con un intervento umano minimo. Con l’elaborazione batch, gli utenti raccolgono e memorizzano i dati durante una finestra batch, che aiuta a gestire una grande quantità di dati e compiti ripetitivi in modo efficiente.
La pipeline di elaborazione in tempo reale consente agli utenti di ingerire dati strutturati e non strutturati da una vasta gamma di fonti di streaming, come IoT, dispositivi connessi, feed dei social media, dati dei sensori e applicazioni mobili, utilizzando un sistema di messaggistica ad alta velocità che garantisce che i dati vengano acquisiti con precisione. La trasformazione dei dati avviene in tempo reale utilizzando un motore di elaborazione in tempo reale per guidare casi d’uso di analisi come il rilevamento delle frodi, la manutenzione predittiva, le campagne di marketing mirate e l’assistenza clienti proattiva.
La pipeline di elaborazione on-premise può essere distribuita in loco, con aumento della sicurezza dei dati. Molte aziende gestiscono sistemi legacy che hanno sia i dati che il repository configurati on-premise.
La pipeline di elaborazione sul cloud hanno varie applicazioni basate sulla nuvola, di cui sfruttano la flessibilità e l’agilità nel processo ETL.
Quali sono i vantaggi del processo ETL
Il processo ETL offre molti vantaggi, quali:
- Abilitare una gestione efficiente dei dati.
- Migliorare la precisione e l’accuratezza dell’analisi.
- Ottenere flessibilità di esecuzione
- Gestire in modo efficiente i carichi di lavoro pesanti.
- Migliorare la scalabilità e la reattività.
- Ridurre le spese di elaborazione dati con ridondanza logica e fisica.
Tra i vantaggi più significativi, segnaliamo inoltre:
Workflow definito e continuo e qualità dei dati
L’ETL prima estrae i dati da fonti omogenee o eterogenee, poi li deposita in un’area di stoccaggio, quindi li pulisce e trasforma, infine li memorizza in un repository, generalmente un data warehouse. Un flusso di lavoro ben definito e continuo che assicura dati di alta qualità, con processi di profilazione e pulizia avanzati.
Facilità d’uso
Gli strumenti ETL, dopo aver scelto le fonti di dati, ne identificano automaticamente tipologie e formati, impostano le regole di estrazione ed elaborazione e infine caricano i dati nell’archivio di destinazione. Un processo automatizzato che rende inutile la codifica in senso tradizionale, dove si deve scrivere ogni singola procedura e codice.
Resilienza operativa
Molti data warehouse sono fragili durante il funzionamento: gli strumenti ETL hanno una funzionalità di gestione degli errori integrata che aiuta gli ingegneri dei dati a sviluppare un processo ETL resiliente e ben strumentato.
Supporto nell’analisi e gestione complessa dei dati
Gli strumenti ETL aiutano a spostare grandi volumi di dati e trasferirli in batch. In caso di regole e trasformazioni complicate, contribuiscono all’analisi dei dati, alla manipolazione delle stringhe, a modifiche e integrazioni di più set di dati.
Visualizzazione rapida dei processi
Gli strumenti ETL sono basati su un’interfaccia grafica utente (GUI) e offrono un flusso visivo della logica del sistema. La GUI permette di usare la funzione “drag and drop” per visualizzare il processo dei dati.
Miglioramento della business intelligence
L’accesso ai dati è più facile con gli strumenti ETL: un migliore accesso alle informazioni ha un impatto diretto sulle decisioni strategiche e operative data-driven. Il dataset con il processo ETL viene strutturato e trasformato: l’analisi su un singolo caso d’uso predefinito diventa stabile e veloce. I diversi livelli di pipeline consentono analisi raffinate e approfondite, facilmente integrabili con machine learning e sistemi di intelligenza artificiale. Ne derivano insight che supportano il business a partire dai dati provenienti da fonti diverse e strutturati secondo le esigenze.
Conformità agli standard GDPR e HIPAA
In un processo ETL, è possibile omettere qualsiasi dato sensibile prima di caricarlo nel sistema di destinazione: ciò favorisce la compliance al GDPR e all’HIPAA – Health Insurance Portability and Accountability Act.
Aumento della velocità del time-to value
L’ETL abilita il contesto e le aggregazioni di dati, in modo che il business possa generare maggiori ricavi e risparmiare tempo, sforzi e risorse. Il processo ETL aiuta ad aumentare il ROI e monetizzare i dati migliorando la business intelligence.
Qual è la differenza tra ETL ed ELT
ELT – Extract, Load and Trasform significa “Estrarre, caricare e trasformare”: i dati estratti vengono immediatamente caricati nel sistema di destinazione e solo dopo trasformati per essere analizzati.
Nel processo ETL, la trasformazione di grandi volumi di dati può richiedere molto tempo all’inizio, perché necessaria al caricamento, mentre in ELT viene eseguita dopo, per cui richiede poco tempo ma può rallentare i processi di interrogazione e analisi se non c’è sufficiente potenza di elaborazione.
Il caricamento in ELT, visto che non richiede un’area di staging come in ETL, è più veloce.
Sia ETL che ELT supportano i data warehouse, ma mentre il processo ETL esiste da decenni, ELT è più recente e l’ecosistema di strumenti per implementarlo è ancora in crescita.
I processi ETL che coinvolgono un server on-premise richiedono una manutenzione frequente, date le loro tabelle fisse, le scadenze fisse e l’esigenza di selezionare ripetutamente i dati da caricare e trasformare. Le soluzioni ETL automatizzate e basate sul cloud richiedono poca manutenzione.
L’ETL on-premises classico richiede un hardware che per l’ETL non è necessario, è quindi più costoso.
Ma è anche più facilmente conforme agli standard GDPR e HIPAA– Health Insurance Portability and Accountability Act – perché prima del caricamento è possibile omettere qualsiasi dato sensibile, mentre nel processo ELT vengono caricati tutti i dati nel sistema di destinazione.
L’ELT consente l’ottimizzazione pushdown: letteralmente, “spinta verso il basso”, è una tecnica di miglioramento delle prestazioni per cui l’elaborazione dei dati viene eseguita sul database stesso, lato sorgente, lato destinazione o completamente.
L’ottimizzazione pushdown lato sorgente analizza la mappatura dalla fonte alla destinazione e genera l’istruzione in SQL secondo questa mappatura: l’istruzione viene eseguita sul database di origine, recupera i record e li elabora ulteriormente per inserirli e modificare il database di destinazione.
L’ottimizzazione pushdown lato destinazione genera l’istruzione in SQL sulla base dell’analisi della mappatura dal target alla fonte. L’ottimizzazione pushdown completa avviene quando i database di origine e di destinazione sono sullo stesso sistema di gestione: a seconda della ricerca da effettuare, l’ottimizzazione sarà effettuata lato sorgente o target.
Esempi d’uso di ETL
Costruire un data warehouse
Il Data warehouse è un tipo di sistema di data management progettato per abilitare e supportare le attività di business intelligence e data analytics. Contiene dati aziendali critici, ma per essere strutturato e funzionare al meglio, occorre pulire, arricchire e trasformare i dati prima di caricarli. Occorre un processo ETL, che è uno dei passi fondamentali nella costruzione di un data warehouse.
Abilitare e ottimizzare la business intelligence
L’ETL abilita la business intelligence, quindi la statistica descrittiva che rileva, classifica e sintetizza i dati senza effettuare inferenze. L’abilitazione avviene da qualsiasi dato a qualsiasi latenza: l’ETL può analizzare dati strutturati, semi-strutturati e non strutturati da più fonti, come batch, real-time e streaming.
Quando viene utilizzato con un data warehouse aziendale (dati a riposo), l’ETL fornisce quindi un profondo contesto storico per il business combinando i dati legacy con i dati raccolti da nuove piattaforme e applicazioni.
Può ingerire e sincronizzare i dati da varie fonti come database o data warehouse on-premises, applicazioni SaaS, fonti IoT e applicazioni di streaming in un data lake cloud per fornire una visione unica e consolidata del business.
I dati di queste diverse fonti possono essere quindi spostati o visualizzati, il che rende facile analizzare e ricavare intuizioni utili da quei dati, identificare nuove opportunità e migliorare il processo decisionale e la pianificazione futura.
Abilitare il machine learning
Il machine learning è l’apprendimento automatico attraverso algoritmi artificiali che “insegnano” al sistema informatico a riconoscere pattern, ovvero schemi ricorrenti tra i dati analizzati.
L’apprendimento automatico richiede la capacità di raccogliere, gestire e accedere a grandi quantità di dati accurati e diversi, la capacità di creare nuove funzionalità e addestrare modelli, e la capacità di distribuire, monitorare e aggiornare i modelli in produzione.
Quando si implementa una pipeline di dati per i carichi di lavoro della data analytics, non si dovrebbe non solo garantire che l’elaborazione e la trasformazione dei dati siano robuste, efficienti e facili da mantenere, ma anche alimentare la pipeline di dati con i dati più recenti – ed essere in grado di gestire grandi volumi di dati e la qualità dei dati.
L’ETL abilita il machine learning sia perché fornisce dati puliti e affidabili per l’analisi, sia perché automatizza l’ETL manuale. Infatti, l’ETL automatizza i processi di raccolta, trasformazione e consolidamento. È usato per la pulizia dei dati, il profiling e l’auditing, fornendo alla fine del processo dati affidabili. Si integra con gli strumenti di qualità dei dati e talvolta li incorpora, come quelli utilizzati per la mappatura e il data lineage, ovvero la tracciatura dell’origine, della direzione e dei mutamenti dei dati nel tempo. L’ETL assicura quindi che i dati grezzi ricevuti diventino affidabili e di qualità e possano fornire le informazioni pertinenti nel settore di riferimento.
Dall’ETL è più facile arrivare alla data analytics, che utilizza la statistica inferenziale per dedurre relazioni tra dataset eterogenei e dati grezzi per effettuare previsioni di risultati e comportamenti.
Migrare i dati nel cloud
La migrazione al cloud è un processo in cui i dati e le applicazioni vengono spostati dalla loro sede al cloud per una maggiore scalabilità e sicurezza. L’ETL è comunemente usato per trasferire i dati nel cloud: aiuta a estrarre i dati da diverse fonti, a trasformarli in un formato compatibile con la nuova infrastruttura, quindi a caricarli nei nuovi sistemi o in un datalake o data warehouse nel cloud. Uno strumento ETL rimuove i duplicati, standardizza i formati e sincronizza i dati, rendendo più facile per tutti i professionisti e gli utenti dei dati analizzare e ricavare intuizioni utili da quei dati puliti.