A differenza dell' elaborazione in batch tradizionale, che lavora con set di dati statici, l'elaborazione in streaming gestisce flussi continui di informazioni provenienti da varie fonti come sensori, piattaforme di social media, transazioni finanziarie e dispositivi dell' Internet of Things (IoT) . Ogni cambiamento, azione o evento all'interno di questi sistemi sorgente può essere rappresentato come un "evento", motivo per cui l'elaborazione dei flussi viene talvolta definita anche "elaborazione degli event streams".
Questo approccio in tempo reale aiuta le organizzazioni a rispondere immediatamente alle nuove informazioni, rendendo l'elaborazione dei flussi ideale per applicazioni come ilrilevamento delle frodi, l'analytics predittiva e l'esperienza del cliente. Piattaforme come Apache Kafka sono comunemente utilizzate per supportare l'elaborazione di flussi di dati, consentendo ai sistemi di pubblicare, trasportare ed elaborare grandi volumi di dati in tempo reale in modo affidabile e su larga scala.
L'elaborazione in streaming è importante anche per le applicazioni di AI e di machine learning (ML), che spesso dipendono da dati tempestivi e continuamente aggiornati per generare previsioni e insight accurati. Senza l'elaborazione in streaming, i modelli possono fare affidamento su dati obsoleti o incompleti, eventualmente riducendo l'accuratezza delle previsioni e aumentando il rischio.
L'architettura di elaborazione in streaming contiene tecnologie e pattern che assorbono, trasportano, elaborano e analizzano flussi di dati in tempo reale.
In un'architettura tipica, i flussi di dati continui si spostano attraverso una piattaforma di dati in streaming, dove vengono importati, memorizzati e resi disponibili ai sistemi a valle. I framework e le applicazioni di elaborazione in streaming elaborano quindi i dati in tempo reale e li inviano alle destinazioni a valle.
Alcune architetture di elaborazione in streaming seguono schemi architettonici come Lambda o Kappa. L'architettura Lambda utilizza un approccio a doppia pipeline che combina sia l'elaborazione batch che quella in streaming, spesso per supportare l'analisi dei dati storici e l'elaborazione abassa latenza . Kappa utilizza una pipeline di streaming unica per tutti i dati, che può semplificare l'architettura complessiva ed è spesso scelta per dati basati su eventi.
Le piattaforme di dati in streaming forniscono la base per pipeline e applicazioni di dati in tempo reale. Fungono da autostrada per la messaggistica e da livello di storage, consentendo ai dati di fluire tra i sistemi o le applicazioni che generano gli eventi e i servizi o le applicazioni che li elaborano o li analizzano.
Apache Kafka è una delle piattaforme più utilizzate per l'event streaming open source. Attraverso il suo registro degli eventi distribuito e persistente, Kafka consente alle applicazioni di pubblicare, sottoscrivere, memorizzare e riprodurre flussi di dati. Queste funzionalità lo rendono utile per la real-time analytics, l'integrazione delle applicazioni, il rilevamento delle frodi, il trattamento dei dati IoT e le architetture basate su eventi.
Confluent è una piattaforma di data streaming costruita attorno ad Apache Kafka. Offre servizi gestiti, connettori, governance, gestione degli schemi , sicurezza e strumenti di elaborazione in streaming per aiutare le organizzazioni a gestire Kafka su larga scala.
Altre piattaforme e servizi di dati in streaming includono:
I framework di elaborazione in streaming sono strumenti utilizzati dagli sviluppatori per elaborare e analizzare i dati in movimento. Mentre piattaforme di streaming come Kafka si concentrano sull'acquisizione, l'archiviazione e il trasporto di eventi, i framework di elaborazione in streaming si concentrano sul calcolo: filtraggio, trasformazione, unione, aggregazione e analisi dei dati mentre si spostano attraverso una pipeline.
Molti framework di elaborazione in streaming si integrano con Kafka, utilizzando argomenti Kafka come fonte degli eventi in arrivo e come destinazione per i risultati elaborati.
Esempi di framework e strumenti di elaborazione dei flussi includono:
Immagina di monitorare i parametri vitali di un paziente ma di controllare i dati solo ogni poche ore: i fornitori di servizi sanitari trascurerebbero cambiamenti critici che richiedono un'azione immediata.
Le organizzazioni di tutti i settori affrontano rischi simili quando operano solo con un trattamento dei dati ritardato o basato su batch. Per agire con velocità e precisione, devono accedere alle informazioni in tempo reale. I sistemi di elaborazione in streaming rispondono a questa esigenza importando e analizzando continuamente i dati in tempo reale, riducendo la latenza insita nei workload di estrazione, trasformazione, carico (ETL) programmati.
Attraverso l'elaborazione in tempo reale dei dati provenienti da sistemi distribuiti in ambienti ibridi e multicloud come database relazionali, data lake, code di messaggi, dispositivi IoT e applicazioni aziendali, l'elaborazione in streaming aiuta le organizzazioni a costruire una visione più unificata e quasi in tempo reale dei dati operativi. Questo approccio supporta casi d'uso come il rilevamento di anomalie, la prevenzione delle frodi, la determinazione dinamica dei prezzi e la personalizzazione in tempo reale.
L'elaborazione in streaming è sempre più importante anche per le iniziative di AI in scala che dipendono da dati continuamente aggiornati. Con l'aumento dei volumi di dati e della complessità dei modelli, l'infrastruttura dati aziendale deve essere in grado di gestire un alto throughput e scalare rapidamente in ambienti distribuiti.
Secondo una ricerca dell'IBM Institute for Business Value, circa la metà delle organizzazioni intervistate assegna priorità all'ottimizzazione delle reti, al trattamento più rapido dei dati e al calcolo distribuito per supportare i workload moderni. Senza la capacità di elaborare e fornire dati ad alto volume in tempo reale, le organizzazioni rischiano insight più lenti, una riduzione dell'accuratezza del modello e opportunità mancate di vantaggio competitivo.
Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e oltre con la newsletter Think. Leggi l' Informativa sulla privacy IBM.
L'elaborazione in streaming svolge un ruolo importante nelle applicazioni di AI che richiedono una reattività in tempo reale. Ad esempio, i sistemi AI per la manutenzione predittiva, il rilevamento delle frodi, i sistemi autonomi e le raccomandazioni personalizzate spesso si basano su dati nuovi e ad alta velocità per generare previsioni o decisioni tempestive.
Consentendo alle applicazioni di AI di inserirsi e agire sui dati man mano che vengono creati, che si tratti delle letture dei sensori sull'attrezzatura industriale o del comportamento degli utenti su un sito Web, l'elaborazione in streaming aiuta i sistemi di AI a rispondere alle mutevoli condizioni in tempo reale. Questa abilità migliora sia la precisione che la rilevanza degli output dell'AI. In realtà, quasi il 55% delle organizzazioni intervistate cita il miglioramento dell'esperienza del cliente attraverso le funzionalità di AI in tempo reale come driver per investire nell'infrastruttura AI, secondo l'IBM Institute for Business Value.
L'elaborazione dei flussi supporta anche l'implementazione e il miglioramento dei modelli di AI. Le pipeline di streaming consegnano dati in tempo reale a data lake, data warehouse o feature store, creando una fonte continua di dati per il monitoraggio, la valutazione e il riaddestramento del modello nel tempo.
L'elaborazione in streaming offre una vasta gamma di benefici che aiutano le organizzazioni a rispondere istantaneamente agli eventi in tempo reale, ottimizzare le risorse, integrare fonti di dati eterogenee attraverso ecosistemi di dati e a supportare applicazioni basate sui dati. I vantaggi fondamentali includono:
L'elaborazione in streaming consente alle organizzazioni di analizzare i dati man mano che vengono creati, consentendo un rilevamento più rapido di tendenze, anomalie od opportunità. Riducendo la latenza tra generazione e analisi dei dati, le aziende possono rispondere agli eventi in millisecondi: un aspetto critico per cybersecurity, rilevamento delle frodi, monitoraggio e altri workload.
Le tecnologie di elaborazione in streaming possono gestire volumi enormi di dati in sistemi distribuiti e scalare la capacità in base all'evoluzione della domanda. Questa elasticità offre alle aziende la flessibilità di adattarsi a workload variabili, integrare varie fonti di dati e supportare nuovi casi d'uso senza dover rivoluzionare la propria infrastruttura.
L'elaborazione in streaming può supportare la personalizzazione in tempo reale tramite motori di raccomandazione e interfacce reattive. Queste funzionalità aiutano le aziende a offrire interazioni più coinvolgenti e rilevanti con i clienti.
Un monitoraggio continuo e in tempo reale di sistemi, supply chain e infrastrutture può aiutare le organizzazioni a consentire una manutenzione proattiva e un'ottimizzazione dei processi, riducendo i tempi di inattività e abbassando i costi.
L'elaborazione in streaming può inviare continuamente dati in tempo reale a data lake, data warehouse, lakehouse e pipeline, supportando workflow di data engineering, analytics, machine learning e business intelligence .
Le tecnologie di elaborazione in streaming possono integrare i sistemi di elaborazione in batch, aiutando le organizzazioni ad analizzare i dati, sia storici che in tempo reale. Ad esempio, Apache Spark supporta l'analytics sia in batch che in streaming, mentre Apache Kafka può fungere da base per l'event streaming che gestisce i dati degli eventi per l'elaborazione a valle.
Fondamentalmente, l'elaborazione dello streaming segue un modello in tre fasi:
Durante l'ingestion, i connettori di streaming o le piattaforme di event streaming catturano i dati in tempo reale da fonti come sensori, dispositivi connessi, applicazioni mobili o sistemi aziendali. I dati in ingresso sono spesso illimitati e arrivano continuamente, ovvero vengono generati senza un endpoint fisso e possono crescere indefinitamente man mano che si verificano nuovi eventi. Strumenti come Kafka Connect e Apache Pulsar sono strumenti fondamentali per gestire l'ingestion di dati ad alta velocità.
Nella fase di elaborazione, i dati vengono trasformati, filtrati, arricchiti o analizzati man mano che arrivano. Questa fase può includere operazioni come aggregare metriche, rilevare anomalie, unire più flussi o applicare modelli di machine learning per inferenze in tempo reale.
Gli elaboratori di streaming sono particolarmente utili negli ambienti dei big data, in cui le organizzazioni devono gestire e analizzare grandi volumi di dati in rapido movimento provenienti da diverse fonti. Queste operazioni sono orchestrate attraverso delle pipeline di elaborazione, che definiscono la sequenza di trasformazioni e la logica applicata man mano che i dati fluiscono nel sistema.
Il flusso di output è la fase finale, in cui i dati elaborati vengono consegnati a sistemi a valle come dashboard in tempo reale per il monitoraggio, database per lo storage o sistemi automatizzati che avviano workflow e avvisi. In molti casi, i dati elaborati vengono instradati anche verso un data lake per un'esplorazione flessibile o verso un data warehouse per query e reportistica strutturati.
Sebbene l'elaborazione in streaming offra molti benefici, può anche introdurre delle sfide in diverse dimensioni della gestione, dell'architettura, dell'integrazione e delle operazioni relative ai dati:
Gli input provenienti da diversi sistemi e dispositivi producono enormi volumi di dati in rapido movimento che richiedono un trattamento a bassa latenza. Per gestire questo problema in modo efficace, le organizzazioni hanno bisogno di motori di elaborazione in streaming e sistemi di progettazione in grado di scalare orizzontalmente, distribuire workload tra i nodi e mantenere le prestazioni in base alle fluttuazioni dei volumi di dati.
Le organizzazioni devono anche considerare come l'elaborazione degli streaming si inserisce in un ecosistema di dati più ampio. Questa integrazione può essere impegnativa perché i team dedicati dovranno determinare quali dati devono essere elaborati in tempo reale, quali memorizzare per analisi successive e come i sistemi di streaming dovrebbero interagire con applicazioni e pipeline esistenti.
Le applicazioni di streaming interagiscono frequentemente con altri servizi tramite le application programming interface (API), interfacce orientate a eventi e microservizi, progettate per comunicazioni a bassa latenza e tolleranza ai guasti. Inoltre, gli sviluppatori dovrebbero considerare la complessità degli algoritmi utilizzati per analizzare i dati in movimento, sia per il rilevamento di anomalie, la modellazione predittiva o il processo decisionale in tempo reale.
L'elaborazione degli streaming richiede ai team di scegliere strumenti e linguaggi che si adattino alle esigenze di prestazioni, scalabilità e sviluppo. Gli sviluppatori si rivolgono spesso a Java e a Python, ognuno dei quali serve a scopi distinti nell'ecosistema dell'elaborazione degli streaming. Java viene tipicamente utilizzato per costruire pipeline scalabili di livello produttivo in framework come Apache Kafka e Apache Flink, mentre Python viene impiegato per prototipazioni rapide e integrazione di modelli di machine learning nei workflow di streaming.
Per mantenere la coerenza e l'interpretabilità dei dati mentre scorrono nel sistema, le piattaforme di elaborazione dello streaming si affidano agli schemi, che definiscono il formato, le tipologie e la struttura dei dati. Questi schemi aiutano a convalidare i dati tra i nodi distribuiti e supportano le query in tempo reale. Senza una solida governance degli schemi, i cambiamenti nei formati degli eventi possono compromettere applicazioni a valle, dashboard o pipeline di machine learning.
Molte piattaforme di elaborazione dei flussi forniscono interfacce simili a SQL che consentono agli utenti di filtrare, aggregare e unire i dati in streaming senza scrivere codice complesso. Tuttavia, interrogare dati in movimento può essere una sfida. Le organizzazioni devono inoltre integrare i sistemi di streaming con ambienti di analytics in batch e storici per combinare gli insight in tempo reale con il contesto storico, aggiungendo complessità.
Le organizzazioni di tutti i settori stanno adottando applicazioni di elaborazione in streaming per agire sui dati nel momento stesso in cui vengono generati. Di seguito sono riportati degli esempi di come diversi settori utilizzano l'elaborazione dei flussi per migliorare l'efficienza, i risultati dei pazienti, il coinvolgimento del cliente e altro ancora.
Le banche utilizzano l'elaborazione in streaming per analizzare le transazioni man mano che si verificano, individuando rapidamente schemi o anomalie insoliti. Correlando più punti dati come posizione, dispositivo e cronologia delle transazioni, i sistemi possono segnalare attività sospette prima ancora che si aggravino. Gli insight in tempo reale permettono inoltre a trader e gestori del rischio di rispondere istantaneamente alla volatilità. Integrando i feed in tempo reale di exchange e sistemi interni, le organizzazioni possono velocizzare i processi decisionali basati sui dati e mitigare il rischio.
L'elaborazione in streaming accelera la validazione delle richieste inserendo dati dai dettagli delle policy, foto, IoT e altre fonti di dati in tempo reale. I workflow automatizzati possono approvare istantaneamente richieste semplici e indirizzare i casi complessi per la revisione. Tutto ciò riduce i tempi di elaborazione, migliora la soddisfazione del cliente e abbassa i costi operativi.
Ospedali e operatori sanitari utilizzano l'elaborazione in streaming per identificare schemi che potrebbero indicare delle complicazioni come sepsi, insufficienza cardiaca o polmonite, al fine di consentire interventi tempestivi e migliorare gli esiti per i pazienti. Ad esempio, l'Emory University Hospital ha utilizzato la piattaforma di streaming analytics di IBM per elaborare più di 100.000 punti dati per paziente al secondo nella sua terapia intensiva e rilevare istantaneamente cambiamenti potenzialmente letali, permettendo interventi più rapidi.1
I provider di telecomunicazioni utilizzano l'elaborazione dei flussi per monitorare le prestazioni di rete e le interazioni dei clienti in tempo reale. Gli operatori possono utilizzare la streaming analytics per elaborare miliardi di record di dettagli delle chiamate ogni giorno, rilevando istantaneamente anomalie di servizio e attività fraudolente. Analizzando la voce e gli event streams man mano che avvengono le chiamate, il sistema prevede anche il rischio di abbandono e indirizza i clienti agli specialisti della fidelizzazione in modo proattivo.
I rivenditori si stanno rivolgendo all'elaborazione in streaming per ottenere insight più rapidi e migliorare il processo decisionale basato sui dati. Un negozio di alimentari è passato dal batching dei dati una volta al giorno all'importazione di messaggi quasi in tempo reale. Gestendo 50 milioni di messaggi al giorno da oltre 2.400 negozi, un'architettura di messaggistica basata sugli eventi ha consentito il rilevamento rapido di problemi come il furto e un processo decisionale più informato.
La scelta tra l'elaborazione in streaming e l'elaborazione in batch dipende dalla natura dei dati, dall'urgenza degli insight e dalla complessità dell'analisi.
L'elaborazione in streaming è ideale per workload che richiedono una reattività in tempo reale o quasi. Ad esempio, l'elaborazione in streaming consente l'analisi dei dati in tempo reale, il monitoraggio in tempo reale, raccomandazioni personalizzate e la gestione dinamica dell'inventario perché può elaborare enormi quantità di dati in modo continuo mentre scorrono attraverso le pipeline di dati.
D'altra parte, l'elaborazione in batch è più appropriata quando si lavora con volumi storici su larga scala o quando la latenza è meno critica. È comunemente utilizzata per compiti come reportistica, data warehousing e analisi delle tendenze a lungo termine, in cui i dati provenienti da più fonti vengono raccolti, memorizzati ed elaborati a intervalli programmati.
L'elaborazione in batch può essere più semplice da implementare e più conveniente per i workload che non richiedono risultati immediati. In molte architetture moderne, le organizzazioni combinano entrambi gli approcci, utilizzando l'elaborazione in streaming per gli insight immediati e l'elaborazione in batch per un'analisi più approfondita e retrospettiva. Questo modello ibrido massimizza il valore dei dati, sia in tempo reale che storici.
Organizza i tuoi dati con le soluzioni della piattaforma IBM DataOps, che li rendono affidabili e pronti per l'AI.
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.
Sblocca il valore dei dati aziendali con IBM Consulting e crea un'organizzazione basata su insight in grado di generare vantaggi aziendali.
1 Emory University Hospital explores ‘intensive care unit of the future’, Emory University News Center, 5 novembre 2013