Nel processo di gestione e integrazione dei dati, le pipeline di dati sono elementi fondamentali per enti e aziende data-driven. Ecco cosa sono e come funzionano


Una pipeline di dati è un mezzo per spostare i dati da una fonte di provenienza a una destinazione (per esempio, un data warehouse). Possiamo immaginarla proprio come una “tubatura” attraverso cui i dati vengono raccolti, ingeriti, trasformati e ottimizzati, per arrivare a uno stato che può essere analizzato e utilizzato per sviluppare intuizioni di business.

Spotify, per esempio, per analizzare i propri dati e comprendere le preferenze degli utenti ha sviluppato una data pipeline. Essa permette alla famosa società di streaming audio musicale più popolare al mondo (con oltre 430 milioni di utenti e presente in più di 180 Paesi) di vedere quali sono le regioni con la più alta base di utenti e di mappare i profili dei clienti con le raccomandazioni musicali.

Prima di spiegare in maniera più approfondita cosa sia questa “conduttura tecnologica” occorre tornare a comprendere quale e quanta importanza abbiano i dati. Sembra scontato, ma non lo è: entro il 2025, IDC prevede che la quantità totale di dati digitali creati in tutto il mondo raggiungerà i 163 zettabyte, ovvero 163 triliardi di byte. Riuscire a gestirli e trasformarli in informazioni e servizi è strategico.

Lesequenza di dati contribuiscono a processare un numero sempre più elevato di dati, a partire da varie fonti e sistemi, locali e non, e di trovare un’integrazione. Esse consentono, tra l’altro, alle aziende di accedere ai dati sulle piattaforme cloud.

Cosa si intende per pipeline di dati

Con pipeline di dati s’intende definire una sequenza di processi digitali utilizzati per raccogliere, modificare e fornire dati. Chi utilizza le pipeline di dati lo fa per copiare o spostare i dati da un’origine a un’altra in modo che possano essere archiviati, utilizzati per l’analisi o combinati con altri dati.

Le pipeline di dati sono costituite da tre elementi chiave: una sorgente, una o più fasi di elaborazione e una destinazione. Consentono il flusso di dati da un’applicazione a un data warehouse, da un data lake a un database di analisi

I dati generati da un sistema o da un’applicazione di origine possono alimentare più pipeline di dati, e queste possono contare su ulteriori pipeline o applicazioni che dipendono dai loro risultati.

Le organizzazioni possono contare migliaia di pipeline che eseguono movimenti di dati da sistemi di origine specializzati a sistemi e applicazioni di destinazione altrettanto specializzati.

Alcuni esempi di architetture

Le pipeline di dati possono essere strutturate in diversi modi. Devono tenere conto di almeno tre fattori: la velocità, l’affidabilità e la latenza.

Con velocità si intende la quantità di dati che una pipeline può elaborare in un determinato lasso di tempo.

L’affidabilità richiede che i singoli sistemi all’interno di una sequenza di dati siano tolleranti ai guasti. Una pipeline di dati affidabile contribuisce a garantire la qualità dei dati.

La latenza è il tempo di risposta, ovvero il tempo necessario affinché un’unità di dati passi attraverso la pipeline di dati.

Le data pipeline contengono diversi componenti, ciascuno con uno scopo specifico, che facilitano il movimento dei dati. Innanzitutto l’origine, che costituisce la fonte da cui provengono i dati originali. La destinazione finale è il punto ultimo in cui i dati vengono trasferiti. Può essere un archivio di dati, un endpoint API o uno strumento di analisi.

C’è poi il flusso di dati (dataflow), che si riferisce al movimento dei dati tra l’origine e la destinazione. Il flusso di lavoro (workflow) rappresenta, invece, una serie di processi e le loro dipendenze nello spostamento dei dati attraverso la pipeline. Lo storage si riferisce a tutti i sistemi utilizzati per conservare i dati durante le fasi del flusso di dati.

Parte integrante della data pipeline è l’elaborazione, che comprende tutte le attività coinvolte nello spostamento dei dati.

Infine, va ricordato il monitoraggio, che assicura che tutte le fasi della pipeline funzionino correttamente.

Nel complesso si possono individuare diversi tipi di data pipeline: batch, streaming e lambda.

Batch

Le pipeline batch sono un tipo particolare di pipeline utilizzate per elaborare i dati in lotti. Spesso l’obiettivo di un approccio batch è sviluppare un flusso di lavoro con livelli di automazione tali da ridurre al minimo l’interazione manuale con l’utente o l’uomo.

L’elaborazione batch è più utile quando un’organizzazione vuole spostare grandi volumi di dati a intervalli regolari e i dati non devono essere spostati in tempo reale. Per esempio, può essere utile per integrare i dati di marketing in un sistema più ampio per l’analisi.

Streaming

Le pipeline in streaming consentono di ingerire dati strutturati e non strutturati da un’ampia gamma di fonti come sensori IoT, dispositivi connessi, feed di social media, dati di app, utilizzando un sistema di messaggistica ad alta velocità che assicura l’acquisizione accurata dei dati. L’elaborazione acquisisce i dati in tempo reale dai sistemi di origine, esegue trasformazioni rudimentali dei dati prima di inviarli al processo a valle.

Se enti e aziende utilizzano l’ingestione batch per molti tipi diversi di dati, impieganosequenza di dati in streaming solo quando hanno bisogno di dati quasi in tempo reale da utilizzare con applicazioni o analisi che richiedono la minima latenza possibile.

Lambda

Questa architettura è una combinazione di pipeline batch e streaming. È ampiamente utilizzata negli ambienti Big Data, in quanto offre agli sviluppatori la possibilità di tenere conto dell’analisi batch storica e dei casi d’uso dello streaming in tempo reale.

Un aspetto fondamentale di questa architettura è che incoraggia la memorizzazione dei dati in forma grezza, consentendo agli sviluppatori di eseguire nuove pipeline per correggere eventuali errori nelle pipeline precedenti o integrare nuove destinazioni di dati in base al caso d’uso.

Data pipeline vs pipeline ELT

Pipeline ETL e data pipeline talvolta sono usati come sinonimi, ma non lo sono. La pipeline di dati è un termine generico per indicare la categoria di spostamento dei dati tra sistemi e una pipeline di dati ETL è un tipo particolare di pipeline di dati.

Più nello specifico, lesequenza di dati coinvolgono un software che automatizza le numerose fasi che possono o meno essere coinvolte nello spostamento dei dati per un caso d’uso specifico, come l’estrazione dei dati da un sistema di origine, la trasformazione, la combinazione e la convalida di tali dati e il loro caricamento in un repository di destinazione.

ETL (acronimo di Extract, Transform, Load) descrive l’insieme dei tre processi di estrazione, trasformazione e caricamento.