Una pipeline di dati è una serie di fasi di elaborazione dei dati. Se i dati non sono attualmente caricati nella piattaforma di dati, allora vengono inseriti all’inizio della pipeline. Poi ci sono una serie di passi in cui ogni passo fornisce un output che è l’input per il passo successivo. Questo continua fino a quando la pipeline è completa. In alcuni casi, fasi indipendenti possono essere eseguite in parallelo.
Le pipeline di dati consistono di tre elementi chiave: una fonte, una o più fasi di elaborazione e una destinazione. In alcune condutture di dati, la destinazione può essere chiamata sink. Le condutture di dati permettono il flusso di dati da un’applicazione a un magazzino di dati, da un lago di dati a un database di analisi, o in un sistema di elaborazione dei pagamenti, per esempio. Le pipeline di dati possono anche avere la stessa fonte e lo stesso sink, in modo tale che la pipeline riguarda esclusivamente la modifica del set di dati. Ogni volta che i dati vengono elaborati tra il punto A e il punto B (o i punti B, C e D), c’è una pipeline di dati tra quei punti.
Come le organizzazioni cercano di costruire applicazioni con piccole basi di codice che servono uno scopo molto specifico (questi tipi di applicazioni sono chiamati “microservizi”), stanno spostando i dati tra sempre più applicazioni, rendendo l’efficienza delle pipeline di dati una considerazione critica nella loro pianificazione e sviluppo. I dati generati in un sistema o applicazione sorgente possono alimentare più pipeline di dati, e queste pipeline possono avere più pipeline o applicazioni che dipendono dai loro output.
Considera un singolo commento sui social media. Questo evento potrebbe generare dati per alimentare un rapporto in tempo reale che conta le menzioni sui social media, un’applicazione di analisi del sentimento che produce un risultato positivo, negativo o neutro, o un’applicazione che traccia un grafico di ogni menzione su una mappa del mondo. Sebbene i dati provengano dalla stessa fonte in tutti i casi, ognuna di queste applicazioni è costruita su pipeline di dati uniche che devono essere completate senza problemi prima che l’utente finale veda il risultato.
Le fasi comuni delle pipeline di dati includono la trasformazione dei dati, l’incremento, l’arricchimento, il filtraggio, il raggruppamento, l’aggregazione e l’esecuzione di algoritmi su quei dati.
Cos’è una pipeline di Big Data?
Come il volume, la varietà e la velocità dei dati sono cresciuti drammaticamente negli ultimi anni, architetti e sviluppatori hanno dovuto adattarsi ai “big data”. Il termine “big data” implica che c’è un enorme volume da gestire. Questo volume di dati può aprire opportunità per casi d’uso come l’analisi predittiva, il reporting in tempo reale e l’allerta, tra molti esempi.
Come molti componenti dell’architettura dei dati, le pipeline di dati si sono evolute per supportare i big data. Le pipeline di big data sono pipeline di dati costruite per accogliere una o più delle tre caratteristiche dei big data. La velocità dei grandi dati rende interessante la costruzione di pipeline di dati in streaming per i grandi dati. Quindi i dati possono essere catturati ed elaborati in tempo reale in modo che possa avvenire qualche azione. Il volume dei big data richiede che le pipeline di dati siano scalabili, poiché il volume può essere variabile nel tempo. In pratica, è probabile che ci siano molti eventi di big data che si verificano contemporaneamente o molto vicini, quindi la pipeline di big data deve essere in grado di scalare per elaborare volumi significativi di dati contemporaneamente. La varietà dei big data richiede che le pipeline di big data siano in grado di riconoscere ed elaborare dati in molti formati diversi – strutturati, non strutturati e semi-strutturati.
Data Pipeline vs. ETL
ETL si riferisce a un tipo specifico di pipeline di dati. ETL sta per “estrarre, trasformare, caricare”. È il processo di spostamento dei dati da una fonte, come un’applicazione, a una destinazione, di solito un data warehouse. “Estrarre” si riferisce all’estrazione dei dati da una fonte; “trasformare” riguarda la modifica dei dati in modo che possano essere caricati nella destinazione, e “caricare” riguarda l’inserimento dei dati nella destinazione.
ETL è stato storicamente utilizzato per carichi di lavoro batch, specialmente su larga scala. Ma una nuova razza di strumenti ETL per lo streaming sta emergendo come parte della pipeline per lo streaming di dati di eventi in tempo reale.
Considerazioni sulla pipeline di dati
Le architetture delle pipeline di dati richiedono molte considerazioni. Per esempio, la vostra pipeline deve gestire dati in streaming? Che tasso di dati vi aspettate? Quanta e quali tipi di elaborazione devono avvenire nella pipeline di dati? I dati vengono generati nel cloud o on-premises, e dove devono andare? Avete intenzione di costruire la pipeline con microservizi? Ci sono tecnologie specifiche in cui il tuo team è già esperto di programmazione e manutenzione?
Esempi di architettura
Le pipeline di dati possono essere progettate in diversi modi. Un esempio comune è una pipeline di dati basata sul batch. In questo esempio, potreste avere un’applicazione come un sistema di punti vendita che genera un gran numero di punti dati che avete bisogno di spingere verso un data warehouse e un database di analisi. Ecco un esempio di come sarebbe:
Un altro esempio è una pipeline di dati in streaming. In una pipeline di dati in streaming, i dati dal sistema del punto vendita verrebbero elaborati man mano che vengono generati. Il motore di elaborazione del flusso potrebbe alimentare le uscite dalla pipeline verso i negozi di dati, le applicazioni di marketing e i CRM, tra le altre applicazioni, nonché verso il sistema del punto vendita stesso.
Un terzo esempio di pipeline di dati è l’architettura Lambda, che combina pipeline batch e streaming in un’unica architettura. L’architettura Lambda è popolare negli ambienti di big data perché consente agli sviluppatori di tenere conto sia dei casi d’uso dello streaming in tempo reale che dell’analisi batch storica. Un aspetto chiave di questa architettura è che incoraggia la memorizzazione dei dati in formato grezzo in modo da poter eseguire continuamente nuove pipeline di dati per correggere eventuali errori di codice nelle pipeline precedenti, o per creare nuove destinazioni di dati che consentono nuovi tipi di query.
Temi correlati
Streaming ETL
Lambda Architecture
Stream Processing