I dati vengono ormai generati con un flusso incessante, in ogni singolo istante, da miliardi di dispositivi interconnessi in tutto il mondo. Ma come è possibile estrarre valore da questa straordinaria risorsa digitale? Il paradigma Big Data, gli Advanced Analytics e l’evoluzione moderna delle Business Intelligence costituiscono una soluzione ampia e variegata per affrontare il problema, ma necessitano di metodologie e strumenti all’altezza della situazione.

Tra i processi tecnologici più utili in tal senso ritroviamo ETL (Extract, Transform, Load) il cui compito è proprio quello di avvicinarsi al dato grezzo per intraprendere quel percorso preparatorio che lo porterà a diventare fruibile per i processi analitici.

Un’azienda moderna, che vuole realmente definirsi digitale, riponendo nella cultura dei dati un effettivo presupposto di valore, non può oggi prescindere da strumenti evoluti in grado di implementare i processi ETL nella pipeline di data management.

Immagine promozionale per il whitepaper su Data Driven

Cos’è un processo ETL

L’ETL, acronimo di Extract, Transform, Load coincide con i processi di estrazione, trasformazione e caricamento dei dati in un sistema di sintesi come il data warehouse, dove vengono utilizzati per finalità di tipo analitico.

Gli ETL sono caratterizzati da livelli differenti, in funzione dei livelli di repository. Semplificando il concetto potremmo descrivere due differenti ordini, in cui nel primo livello i dati vengono conservati con un livello di dettaglio elevato, da cui partono ulteriori livelli ETL. È ad esempio il caso delle OLAP (On Line Analytical Processing) che necessitano di dataset per svolgere analisi specifiche, a cui corrispondono processi ETL altrettanto specifici.

A cosa serve un processo ETL

Il principale ruolo di un ETL coincide nell’alimentazione dei dati per un sistema di sintesi come il data warehouse. I tre processi fondamentali che lo contraddistinguono (Extract, Transform, Load) consentono infatti di rendere disponibili i dati nel modo più efficiente possibile, affinché risultino perfettamente fruibili dalle applicazioni di analytics utilizzate per generare valore informativo a partire dai dati. L’ETL assume dunque una rilevanza fondamentale in termini di business, in quanto contribuisce attivamente alla catena di valore che coinvolge i processi digitali delle aziende.

Gli strumenti ETL agiscono di norma in una fase propedeutica al caricamento dei dati sul data warehouse. Non è un caso che tale fase coincida con l’ultimo processo previsto dal ciclo dello stesso ETL, completando l’azione intrapresa con l’estrazione e la trasformazione dei dati. Non bisogna tuttavia trascurare il fatto che tali attività sono ormai concepite in una maniera fluida, in quanto in molti casi il flusso dei dati è caratterizzato da una natura incessante, oltre a coinvolgere ormai ordini di grandezza estremamente importanti.

A prescindere dal fatto che si utilizzi un data warehouse on-premise o in cloud, è opportuno distinguere l’attività di un ETL in due tipologie di pipeline, la cui scelta è dettata soprattutto in funzione delle esigenze di gestione dei dati (data management).

Le fasi del processo

Come da definizione, i processi che compongono nel suo ciclo completo un ETL sono fondamentalmente tre (estrazione, trasformazione, caricamento) e anche se a livello logico ci appaiono sequenziali, i sistemi di moderna concezione sono in grado di eseguirli in maniera parallela, ai fini di accelerare lo svolgimento complessivo.

Estrazione

La prima fase dell’ETL prevede l’estrazione dei dati da una fonte eterogenea, che può essere costituita da comuni file di testo o XML, database relazionali con o senza OLTP, database NoSQL, data log di attività IT, report su errori ed anomalie, eventi di sicurezza, sistemi aziendali come ERP e CRM e molti altri ancora.

Trasformazione

La seconda fase dell’ETL prevede la trasformazione della struttura e del formato di un dataset per renderlo funzionale al sistema di sintesi dove verranno caricati i dati. Tali operazioni vengono svolte in maniera differente se si procede con una codifica manuale o utilizzando appositi software ed è piuttosto frequente vedere la predisposizione di un’apposita area di staging, che coincide in buona sostanza con un server indipendente dalla fonte dei dati e dalla loro destinazione ultima.

Business Intelligence Architecture: grafico che mostra il ruolo dell'ETL e come si relazioni le funzioni Extract-Transform-Load rispetto agli altri strati architetturali ed applicativi che consentono di fare l'analisi dei dati
Business Intelligence Architecture: grafico che mostra il ruolo dell’ETL e come si relazioni le funzioni Extract-Transform-Load rispetto agli altri strati architetturali ed applicativi che consentono di fare l’analisi dei dati

La trasformazione dei dati coincide con una serie di operazioni utili a rendere omogenea la struttura dei dati provenienti da fonti differenti, in modo da renderli fruibili in maniera efficace per i processi di business intelligence e di business analytics che si occupano di analizzarli.

Tre le principali azioni che il processo di trasformazione sui dati prevede, ritroviamo:

  • – Selezione dei dati, per conservare solo le parti che costituiscono interesse per il sistema di sintesi;
  • – Normalizzazione dei dati, con un processo di pulizia che elimina i duplicati e i dati corrotti;
  • – Traduzione dei dati codificati;
  • – Derivazione di nuovi dati utili al sistema di sintesi;
  • – Accoppiamenti (join) dei dati appartenenti a differenti tabelle;
  • – Raggruppamento dei dati in un formato specifico

Caricamento

Dopo le fasi di estrazione e trasformazione, i dati sono finalmente pronti per essere caricati sul sistema di sintesi, che nel caso di un ETL vede la propria vocazione specifica nel data warehouse. Il caricamento dei dati può avvenire attraverso due modalità operative:

  • – Caricamento integrale: prevede la riscrittura completa dei dati ogni volta che viene eseguito un caricamento, andando pertanto a sostituire i dati già presenti sul sistema;
  • – Caricamento incrementale: prevede il continuo aggiornamento dei dati, senza l’interessamento diretto dei file che non sono di fatto oggetto di modifiche

I vantaggi dell’ETL

Oggi un numero sempre maggiore di aziende sta cercando di raggiungere una nuova identità attraverso la trasformazione digitale, ma quelle che riescono davvero a capitalizzare il valore dei dati di cui dispongono sono ancora poche, almeno in termini di benefici tangibili, in quanto i dati rimangono il più delle volte confinati nei cosiddetti silos, laddove rimangono isolati e scarsamente fruibili.

Osservando il problema da questa prospettiva, i processi ETL possono determinare un vero e proprio punto di svolta, purché la loro azione sia inquadrata nel contesto di una data strategy realmente consapevole e tarata in funzione delle effettive esigenze aziendali.

I vantaggi che l’implementazione dei processi ETL è in grado di innescare in un’azienda che investe consapevolmente nella cultura dei dati:

  • Workflow orientato alla data quality: il flusso di lavoro dei processi ETL prevede l’estrazione dei dati da varie fonti, con uno storage temporaneo che rende possibile la pulizia e la trasformazione in un formato compatibile con quello dei sistemi di sintesi in cui i dati vengono caricati alla fine di un ciclo che può essere ripetuto continuamente, attraverso dei batch pianificati o addirittura in tempo reale. Questa catena di preparazione, se implementata in maniera corretta risulta coerente con la data quality richiesta dalle applicazioni di analisi del dato, fondamentali per estrarre valore informativo;
  • Ottimizzazione tempi e costi (time-to-value): i processi ETL consentono di rendere solida ed orientata al miglioramento continuo l’approccio data driven delle pipeline aziendali, grazie ad un’aggregazione dei dati sempre più efficiente. Tale approccio consente di aumentare genericamente il ROI, grazie alla riduzione del time to value e delle risorse richieste per generare valore attraverso i dati;
  • Supporto ai principali sistemi di data analytics: i processi ETL possono gestire enormi quantità e varietà di dati rendendoli disponibili alle attività di business intelligence e business analytics.
  • Interfacce User Friendly: i software ETL di moderna concezione presentano interfacce semplici, con logiche self-service e funzionalità drag-and-drop che celano la notevole complessità assorbita dal core dell’applicazione. Le GUI (Graphic User Interface) di tali software rendono la preparazione del dato un processo alla portata di un pubblico non strettamente tecnico o qualificato nelle discipline della scienza dei dati. Gli strumenti ETL consentono inoltre di evitare la codifica manuale, che sarebbe oltremodo complessa da gestire soprattutto nell’ottica di un’implementazione di lungo periodo, in cui non è auspicabile rimanere vincolati all’operato di alcuni programmatori.
  • Compliance standard GDPR: le procedure automatizzate dei processi ETL consentono di agire in maniera selettiva sui dati, predisponendo la loro collocazione nelle regioni conformi al loro trattamento e alla loro conformazione.

Tra le caratteristiche che gli strumenti ETL dovrebbero pertanto garantire, potremmo sintetizzare:

  • Portabilità (cloud oriented): la capacità di preparare i dati in maniera funzionale al caricamento su vari sistemi di sintesi consente una flessibilità operativa generalmente apprezzata quando ci si avvale di infrastrutture IT di natura ibrida, che prevedono l’utilizzo di sistemi on-prem e multicloud. Eseguire l’integrazione dei dati e poterli riutilizzare in varie circostanze costituisce in tal senso un valore aggiunto non indifferente.
  • Connettori: gli strumenti ETL devono garantire una elevata capacità di connessione con le principali fonti di dati, ai fini di automatizzare le fasi di estrazione ed accelerare complessivamente il processo, risolvendo oltretutto la possibilità di errori grazie alle impostazioni correttive che il connettore è in grado di eseguire in maniera trasparente. Un ETL è chiamato ad estrarre centinaia di fonti differenti, per cui l’elevata disponibilità di connettori costituisce un plus determinante.
  • Gestione degli errori: un sistema ETL efficiente deve garantire una gestione efficace ed il più possibile automatizzata della coerenza dei dati estratti. Tali qualità devono perdurare anche nella fase di trasformazione dei dati, evitando perdite ed errori durante l’esecuzione delle operazioni.
  • Semplicità di utilizzo: oltre a possedere un’interfaccia intuitiva, uno strumento ETL deve risultare semplice anche nelle logiche di impiego, soprattutto per quanto concerne la visibilità dei dati e le funzionalità self service che è chiamato a rendere disponibili. Tali qualità si riflettono molto spesso in una riduzione di tempi di esecuzione e di possibili errori derivanti dalla scarsa comprensione del dato processato.
  • Open source: per quanto non si tratti di una prerogativa essenziale, un’architettura aperta garantisce una maggior flessibilità, anche nel caso in cui si opti per una soluzione commerciale basata su una base open source.

ETL e Cloud

I processi ETL contribuiscono in vari modi a rendere più efficienti e profittevoli le strategie legate all’utilizzo dei dati in azienda e convergono prevalentemente nel garantire la disponibilità dei dati stessi con una qualità elevata, in modo da facilitare l’azione delle applicazioni di business intelligence e business analytics.

Tali applicazioni sono sempre più diffuse in cloud, dove è possibile disporre delle risorse necessarie per supportare le tecniche di machine learning sempre più diffuse per le analisi descrittive e predittive sui dati.

Grazie alle loro interfacce di gestione cloud based, i sistemi ETL vengono di norma utilizzati in varie attività finalizzate all’analisi dei dati tra cui:

Utilizzo dei dati in cloud

Per le aziende è sempre più frequente avvalersi di sistemi di sintesi dei dati offerti dai servizi in cloud ed in questo frangente l’azione degli ETL risulta oltremodo preziosa per estrarre i dati da varie fonti (on-premises e in cloud) e trasformarli in un formato compatibile con la tecnologia data lake o data warehouse predisposta dal CSP (Cloud Service Provider) che offre il servizio. In particolare, i software ETL di moderna concezione sono in grado di automatizzare le fasi di pulizia, standardizzazione e sincronia dei dati con una logica votata alla portabilità, in modo da favorire l’approccio al multicloud ed evitare spiacevoli situazioni di lock-in con un determinato provider.

Come analizzato nel precedente paragrafo, l’ETL costituisce una cassetta degli attrezzi fondamentale per mantenere in perfetta efficienza un sistema di data warehouse utilizzato dalle applicazioni analitiche. Ciò vale sia nel caso della preparazione dei dati strutturati che, come viene richiesto sempre più di frequente, anche per quanto concerne i dati semi-strutturati e non strutturati che possono interessare le attività di business analytics. Tali caratteristiche rimangono più che mai valide nel caso dei data warehouse moderni, nella loro implementazione nativa in cloud.

Ottimizzazione per le attività di business analytics

Negli ultimi anni è fortemente cresciuta l’analisi dei dati basata sulle tecniche di intelligenza artificiale, in particolare il machine learning, le cui applicazioni sono in grado di apprendere autonomamente dallo storico dei dati impiegato per il suo allenamento. In altri termini, maggiore è la quantità e migliore è la qualità dei dati utilizzati nel training, tanto questi fattori possono influire in maniera positiva sull’efficienza del sistema di apprendimento automatico, rendendolo più performante nell’esecuzione delle analisi predittive, sempre più utilizzate per il supporto decisionale.

Gli ETL possono quindi rifornire i sistemi di sintesi dei dati con una “materia prima” di elevata qualità, da cui le applicazioni con funzionalità di machine learning possono estrarre un valore predittivo in grado di generare ricadute positive in vari ambiti di business. Gli strumenti ETL oggi sono sempre più rilevanti ed utilizzati nell’ambito dell’analisi dei dati e il comparto dei business analytics non costituisce ad oggi un’eccezione.

ETL e ELT: analogie e differenze

Nell’ambito tecnologico che fa riferimento alla scienza dei dati, oltre agli ETL è frequente ritrovare anche i sistemi ELT (Extract, Load, Trasform) che al di là dell’inversione delle ultime due lettere che costituiscono l’acronimo, si riferiscono ad un contesto di esigenze diverse rispetto a quello che viene normalmente proposto all’azione degli ETL.

Occorre fare una premessa, utile a comprendere sin da subito le particolari differenze tra i due sistemi. Mentre gli strumenti ETL esistono ormai da moltissimi anni, gli ELT sono di recente implementazione, scaturita dall’esigenza di un sistema più flessibile soprattutto quando si tratta di archiviare e gestire i dati in cloud. Grazie a questa logica, si tende a privilegiare l’archiviazione di grandi quantità di dati, provenienti ad esempio dai flussi real time dei sistemi IoT, piuttosto che dagli streaming multimediali, senza preoccuparsi di affinare la loro preparazione.

Il sistema ELT deve quindi preoccuparsi di estrarre il dato dalla fonte e caricarlo direttamente sul sistema di sintesi predisposto, come un data lake o un data warehouse in cloud. Soltanto nel caso in cui si presenti l’effettiva esigenza di analizzare un data set l’ELT si pone il problema di procedere alla sua trasformazione.

Tale scenario si rivela ottimale soprattutto in presenza di grandi quantità di dati non strutturati, ma se opportunamente implementato risulta efficiente anche per snellire le procedure tradizionali, evitando di fatto un’onerosa fase di trasformazione che potrebbe rivelarsi del tutto superflua, se il dato in questione non venisse poi sottoposto ad attività di business intelligence e business analytics.

La strategia di gestione del dato che prevede l’impiego dei processi ELT risulta oltretutto utile a sfruttare una delle principali qualità del cloud, che consente di impiegare grandi risorse computazionali quando si tratta di intervenire sui big data, rendendo il processo di trasformazione molto più veloce rispetto alle soluzioni implementabili nei data warehouse on-premise. D’altro canto, gli ELT consentono di estendere ai data lake quelle funzionalità di preparazione del dato che in un primo momento sono state concepite per i data warehouse.

Gli strumenti ETL: pipeline real time e batch automatizzata

Gli strumenti alla base dei tre processi fondamentali ETL consentono di implementare due differenti tipologie di pipeline: real time e batch automatizzata.

Pipeline ETL real time

Consente di svolgere i tre processi fondamentali dell’ETL in un contesto che prevede la continua generazione ed acquisizione dei flussi di dati provenienti da una pluralità di fonti, come i sistemi IoT o i canali di comunicazione di un’azienda, con cui gli utenti sono chiamati continuamente ad interagire.

La natura dei dati può essere sia strutturata che non strutturata e richiede applicazioni analitiche capaci di rispondere in tempo reale alle richieste da applicazioni sempre più diffuse, come la manutenzione predittiva degli impianti di fabbrica, il rilevamento delle frodi finanziarie o le attività di marketing e vendita online delle aziende di prodotto. Gli strumenti ETL consentono di rendere disponibili i dati da analizzare attraverso un processo di trasformazione in tempo reale, direttamente connesso con l’acquisizione del dato dalla fonte, che può essere eventualmente oggetto di una parziale preelaborazione. Si tratta di una pipeline di moderna concezione, attualmente oggetto di continua evoluzione, che vedrà una diffusione sempre maggiore nei prossimi anni, quando è prevista una crescita esponenziale delle attività legate ai big data & analytics.

Pipeline ETL batch automatizzata

Si riferisce ai processi di natura tradizionale, che prevedono dei cicli periodici di estrazione, trasformazione e caricamento dei dati sul data warehouse, dove sono resi disponibili per le applicazioni di business intelligence. Grazie alla possibilità di pianificare i processi ETL, è possibile raccogliere enormi quantità di dati grezzi in sistemi di archiviazione di varia natura, on-premise e in cloud e pianificare i cicli ETL in vari momenti.

Grazie all’elevato livello di automatizzazione offerto dagli strumenti ETL di moderna concezione, diventa ormai possibile escludere l’impegno umano, contribuendo ad una generale accelerazione del processo e alla conseguente riduzione del numero di errori che le fasi ripetitive potrebbero inevitabilmente generare.

ARGOMENTI CORRELATI
Categoria: ANALYTICS
Concept per far capire le potenzialità dei Big Data Analytics: esempi di cruscotti che restituiscono informazioni utili

Big Data Analytics: cos’è e perché è importante

Quando si parla di big data analytics ci si riferisce, solitamente, all’analisi avanzata di grandi volumi di dati. Prendere decisioni… Leggi tutto

Concept per far capire il significato del Data Management: uomo che attraverso degli ingranaggi mette in ordine dei flussi intrecciati e caotici

Data Management: cos’è e perché è necessario in azienda

Oggi più che mai i dati digitali rappresentano un vero e proprio asset, un capitale, un importante fattore economico per… Leggi tutto

Colleghi che discutono di fronte al monitor di un pc. Sullo sfondo altri colleghi che parlano

Data lake vs data warehouse: le differenze e quale scegliere

Nell’era del digitale le organizzazioni collezionano dati provenienti da varie sorgenti, con una quantità ed una varietà che vanno ben… Leggi tutto