Cos'è l'event streaming?

Cielo blu e nuvole che si riflettono nelle finestre di un moderno edificio per uffici

Cos'è l'event streaming?

L'event streaming è la pratica di acquisire continuamente dati da applicazioni, database e dispositivi IoT e trasportarli verso varie destinazioni per l'elaborazione e l'archiviazione. Le registrazioni dei dati, note come eventi, possono essere elaborate immediatamente per supportare l'automazione e le decisioni in tempo reale oppure conservate per analisi successive.

Funzione fondamentale dell'event stream processing (ESP), l'event streaming consente alle infrastrutture IT di gestire flussi di eventi ampi e costanti elaborando i dati quando si verifica l'evento o la modifica. L'event streaming è diverso dallo stream processing. L'event streaming fornisce l'infrastruttura che sposta e memorizza gli eventi. Lo stream processing potrebbe applicare filtraggio, aggregazione o arricchimento a quegli eventi.

L'event streaming spesso complementa l'elaborazione in batch, che agisce su grandi set di dati statici (o "dati a riposo"). Tuttavia, invece di elaborare i dati in batch, l'event streaming può gestire dati non limitati man mano che arrivano. Questo approccio consente al software all'interno dell'architettura di interpretare e rispondere ai flussi di dati ("dati in movimento") in tempo reale.

I servizi di event streaming ad alte prestazioni possono gestire una gamma di attività, da funzioni semplici come inviare notifiche quando i prezzi delle azioni o dei prodotti cambiano a workload più complessi. Possono anche supportare AI e modelli di machine learning in tempo reale che rilevano attività sospette degli utenti. 

Anche nel caso dell'elaborazione in batch, l'event streaming può aggiungere profondità all'analisi dei dati collegando gli eventi ai rispettivi timestamp. Aiuta anche a identificare tendenze storiche, fornendo preziosi insight nel tempo.

Cos'è un evento?

L'event streaming ruota attorno al flusso continuo e potenzialmente illimitato di record di dati, chiamati "eventi", strutture dati fondamentali che registrano qualsiasi avvenimento nel sistema o nell'ambiente. Un evento è un record immutabile che qualcosa è accaduto (come un ordine che viene effettuato o un pagamento che viene autorizzato). Un "flusso" (chiamato anche flusso di dati o dati in streaming) è la consegna continua di questi eventi.

Ogni evento in genere include una chiave che lo identifica, o che identifica l'entità a cui appartiene, un valore che contiene i dati effettivi dell'evento, una marcatura temporale che riporta quando l'evento si è verificato o è stato registrato, e talvolta dei metadati sull'origine dati, sulla versione dello schema o su altri attributi.

Con l'aiuto di motori specializzati di elaborazione dei flussi, gli eventi possono essere sottoposti a diversi processi all'interno di un flusso. Le “aggregazioni” eseguono calcoli sui dati, come medie, somme e deviazioni standard. L'“ingestione” aggiunge dati in streaming ai database. L'elaborazione analitica utilizza schemi nei dati in streaming per prevedere eventi futuri e l'elaborazione di arricchimento combina punti dati con altre fonti di dati per fornire contesto e creare significato.

Poiché le organizzazioni generano grandi volumi di dati sugli eventi, potrebbero utilizzare real-time analytics per identificare modelli, anomalie e tendenze man mano che emergono. L'AI sfrutta queste informazioni in tempo reale per individuare relazioni complesse nei flussi di eventi, generare previsioni e suggerire azioni.

Questa capacità sta diventando un prerequisito per i sistemi di AI: secondo l'IDC, l'80% dei casi d'uso dell'agentic AI richiede dati in tempo reale, contestuali e ampiamente accessibili. Che supportino analytics, AI o workflow automatizzati, questi sistemi si basano su un flusso continuo di eventi che rappresentano l'attività all'interno di un'organizzazione.

Gli eventi sono legati alle operazioni aziendali o ai processi di navigazione degli utenti e solitamente innescano un'altra azione, un processo o una serie di eventi. Prendiamo ad esempio il banking online. Quando un utente clicca su “trasferisci” per inviare denaro da un conto bancario a un altro, i fondi vengono prelevati dal conto del mittente e aggiunti al conto bancario del destinatario. Vengono inviate notifiche via email o SMS a una delle due parti (o a entrambe) e, se necessario, vengono implementati protocolli di sicurezza e prevenzione delle frodi.

Mixture of Experts | 12 dicembre, episodio 85

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Componenti fondamentali dell'event streaming

Gli eventi sono il componente centrale dell'event streaming. Tuttavia, una serie di altri componenti consente ai servizi di streaming di elaborare gli eventi con la stessa rapidità ed efficacia. Altri componenti essenziali includono:

Broker

I broker ricevono gli eventi dai produttori, li organizzano, li memorizzano e li rendono disponibili ai consumatori. Agendo da intermediari, i broker consentono a produttori e consumatori di comunicare senza contatti diretti, permettendo a ciascuno di operare e crescere in modo indipendente. 

Nei sistemi di streaming di eventi distribuiti, i broker garantiscono una bassa latenza e un'alta disponibilità replicando gli eventi su più nodi. I broker possono anche formare dei cluster—insiemi di broker che lavorano insieme per un bilanciamento del carico più facile e per la scalabilità.

Argomenti

Gli argomenti sono categorizzazioni o nomi di feed in cui vengono pubblicati gli eventi, che forniscono un modo per organizzarli e filtrarli all'interno della piattaforma. Essi fungono da "soggetto" per gli eventi, consentendo ai consumatori di iscriversi agli argomenti e di ricevere solo gli eventi di loro interesse.

Partizioni

Gli argomenti possono essere ulteriormente suddivisi in partizioni, consentendo a più utenti di leggere contemporaneamente da un argomento senza interrompere l'ordine di ogni partizione.

Offset

Un offset è un identificatore unico per ogni evento all'interno di una partizione, che ha il compito di contrassegnarne la posizione all'interno della sequenza. I consumatori utilizzano gli offset per organizzare gli eventi che hanno elaborato. Se, ad esempio, un consumatore si disconnette da un evento e successivamente si riconnette, può riprendere l'elaborazione dall'ultimo offset noto.

Come funziona l'event streaming?

Data la proliferazione dei dati, e il conseguente aumento del traffico dati, l'event streaming è un componente essenziale delle moderne architetture dati. È prezioso negli ambienti che richiedono funzionalità estremamente rapide o nelle organizzazioni che mirano ad automatizzare le responsabilità del processo decisionale.

Ecco come i servizi di event streaming gestiscono i dati relativi agli eventi:

  1. Generazione degli eventi. L'event streaming ha inizio quando i produttori (ad esempio microservizi sistemi backend, ecosistemi IoT o API basate su eventi) inviano eventi alla piattaforma di event streaming.

  2. Pubblicazione degli eventi. Utilizzando delle librerie client, i produttori pubblicano l'evento sotto un argomento specifico all'interno della piattaforma, a quel punto diventa disponibile per i consumatori (ovvero per le app e i servizi che si registrano per quel dato argomento).

  3. Archiviazione degli eventi. La piattaforma memorizza gli eventi per un periodo predeterminato, con i broker che gestiscono i processi di archiviazione e recupero.

  4. Consumo degli eventi. I consumatori elaborano i dati degli eventi per avviare ulteriori eventi. A seconda del loro scopo o della loro configurazione, possono agire sugli eventi immediatamente dopo il loro arrivo (elaborazione in tempo reale), memorizzarli per un'elaborazione successiva o compilarli per una elaborazione in batch. I consumatori tengono inoltre traccia della loro posizione nella pipeline di dati utilizzando degli offset, in modo da poter riprendere l'elaborazione da dove era stata interrotta in caso di errore o riavvio.

  5. Recapito di eventi. Il broker di eventi rende disponibili gli eventi per i consumatori. Potrebbe garantire la consegna degli eventi secondo la semantica "almeno una volta", che garantirebbe che ogni evento raggiunga la sua destinazione, anche se si verificano duplicati. Il processo può anche includere la consegna "esattamente una volta", garantendo che ogni evento venga consegnato una sola volta o una sola volta o un altro tipo di semantica.

  6. Elaborazione evento. Una volta consumato e consegnato l'evento iniziale, i relativi dati vengono elaborati per diverse ulteriori azioni posteriori, tra cui la loro trasformazione, l'aggregazione e l'attivazione di flussi di lavoro complessi di elaborazione eventi (CEP). Le organizzazioni utilizzano comunemente tecnologie di elaborazione dei flussi come Apache Flink, Apache Spark Structured Streaming e Kafka Streams per eseguire queste operazioni in tempo reale su sistemi distribuiti basati su eventi. I flussi di dati in tempo reale risultanti possono anche fornire il flusso continuo di dati che i sistemi AI utilizzano per supportare il processo decisionale in tempo reale.

Come viene implementato l'event streaming?

L'event streaming è in genere implementato come un'architettura distribuita progettata per acquisire, memorizzare, elaborare e distribuire flussi continui di dati di eventi su più sistemi. Invece di affidarsi a connessioni dirette point-to-point, le architetture di event streaming utilizzano un'infrastruttura condivisa che separa i produttori di dati dai consumatori, consentendo alle applicazioni di scalare in modo indipendente e scambiare informazioni in tempo reale. Diversi componenti architettonici fondamentali rendono possibile questo framework:

Event broker e log distribuito

Un componente chiave della maggior parte delle architetture di event streaming è un event broker, che funge da backbone duratura e scalabile per i dati degli eventi. Gli eventi vengono scritti negli argomenti all'interno di un log distribuito, dove vengono memorizzati nell'ordine in cui vengono ricevuti e rimangono disponibili per un consumo successivo.

Questa architettura consente a più applicazioni di accedere in modo indipendente allo stesso flusso di eventi senza richiedere l'integrazione diretta con i sistemi che hanno prodotto i dati. Tecnologie come Apache Kafka, Amazon Kinesis e Apache Pulsar forniscono comunemente questa funzionalità.

Argomenti, partizioni e replica

Per supportare carichi di lavoro su larga scala, gli event stream sono tipicamente organizzati in argomenti e suddivisi in partizioni che possono essere distribuite su più server. Il partizionamento consente l'elaborazione parallela e un throughput più elevato, mentre la replica crea copie dei dati su nodi diversi per migliorare la tolleranza ai guasti e la disponibilità in caso di guasto dei singoli componenti.

Producer e consumer

Le architetture di event streaming separano i sistemi che generano dati da quelli che li utilizzano. I produttori pubblicano eventi sugli argomenti, mentre i consumatori si iscrivono a tali argomenti ed elaborano gli eventi in modo indipendente. Questo design disaccoppiato consente di aggiungere nuove applicazioni e servizi senza modificare i sistemi che generano i dati.

Strato di elaborazione dei flussi

Molte architetture di event streaming includono uno strato di elaborazione di flussi che analizza e trasforma gli eventi man mano che si muovono nel sistema. Tra le tecnologie più comuni per l'elaborazione di flussi di dati si annoverano Apache Flink, Kafka Streams, ksqlDB e Apache Spark Structured Streaming. Queste tecnologie supportano operazioni come filtraggio, arricchimento, join e aggregazioni sui dati in arrivo continuo.

Elaborazione stateful e windowing

Alcuni workload di streaming richiedono che le applicazioni conservino le informazioni sugli eventi passati. Ad esempio, una piattaforma di e-commerce potrebbe analizzare tutti gli acquisti effettuati nell'ultima ora per identificare i prodotti di tendenza e aggiornare le raccomandazioni quasi in tempo reale. La gestione dello stato consente al sistema di conservare e aggiornare queste informazioni nel tempo, mentre il windowing organizza flussi di dati continui in intervalli basati sul tempo o sugli eventi per l'analisi.

Affidabilità e tolleranza ai guasti

Le architetture di event streaming includono tipicamente meccanismi che aiutano a prevenire la perdita di dati e supportano il recupero dai guasti. A seconda dei requisiti dell'applicazione, i sistemi possono fornire garanzie di elaborazione al massimo una volta, almeno una volta o esattamente una volta. Il checkpointing, la replica e il tracciamento degli offset dei consumatori contribuiscono a mantenere la coerenza dei dati durante le interruzioni o i riavvii del sistema.

Sistemi e integrazioni a valle

Gli eventi elaborati vengono comunemente consegnati a destinazioni a valle come database, data warehouse, data lake, indici di ricerca, sistemi di machine learning o altri event stream. Queste integrazioni permettono di utilizzare i dati degli eventi per supportare real-time analytics, applicazioni operative, flussi di lavoro automatizzati e applicazioni di AI.

Caratteristiche del'event streaming

Oltre allo streaming e all'elaborazione standard, le piattaforme di event streaming, come Amazon Kinesis, Google Cloud Pub/Sub, Azure Event Hubs e IBM Event Automation, facilitano una serie di pratiche di streaming che migliorano la funzionalità. IBM Event Automation, in particolare, utilizza la potenza di calcolo della piattaforma open source Apache Kafka per ottimizzare i workflow guidati dagli eventi. Queste funzionalità aiutano anche le organizzazioni a fornire le pipeline di dati in tempo reale di cui analytics e sistemi AI dipendono.

Elaborazione exactly-once

L'elaborazione exactly-once significa che ogni evento in un flusso viene elaborato esattamente una volta, una funzionalità essenziale per prevenire la duplicazione o la perdita degli eventi. La maggior parte dei sistemi di event streaming comprende meccanismi per fornire semantiche di tipo exactly-once, indipendentemente dal verificarsi di guasti in altre parti del sistema.

Backpressure

Quando i componenti a valle non riescono a tenere il passo con la frequenza degli eventi in entrata, il backpressure impedisce ai flussi di travolgere il sistema. Con il backpressure, un meccanismo di controllo del flusso di dati, i consumatori possono segnalare ai produttori di limitare o interrompere la produzione di dati quando sono sopraffatti dall'elaborazione dei dati o non riescono a tenere il passo con gli eventi in entrata.

Questo processo consente ai sistemi di gestire agevolmente i carichi di lavoro bufferizzando o eliminando gli eventi in entrata, invece di mandare fuori uso l'intero sistema, in modo che l'elaborazione degli eventi rimanga stabile anche quando i carichi di lavoro fluttuano.

Gruppi di consumatori

I consumatori di eventi spesso operano nell'ambito di un gruppo per velocizzare le operazioni di consumo. Ogni consumatore in un gruppo di consumatori viene assegnato a un sottoinsieme di partizioni, consentendo il consumo parallelo per una maggiore efficienza. Se un consumatore all'interno del gruppo va fuori uso, oppure deve essere aggiunto o rimosso, la piattaforma può riassegnare dinamicamente le partizioni per mantenere l'equilibrio e la tolleranza ai guasti.

Filigranatura

L'event streaming spesso implica l'elaborazione dei dati in modo sensibile al tempo. Un watermark è la stima del sistema di quanto sia avanzato il tempo degli eventi. Il watermarking impone una soglia di completezza che indica quando il sistema può considerare i dati degli eventi completamente elaborati. Il watermarking può essere utile anche per garantire l'accuratezza nell'elaborazione basata sul tempo e per riconciliare gli eventi fuori ordine.

Conservazione e compattazione dei dati

La maggior parte delle piattaforme di event streaming offre policy di conservazione dei dati personalizzabili, che consentono agli sviluppatori di controllare per quanto tempo gli eventi sono disponibili per il consumo. Tuttavia, la compattazione dei dati è un processo che rimuove i dati ridondanti o obsoleti dagli argomenti, mantenendo al minimo l'impronta dello storage e preservando i dati essenziali.

Va notato, ancora una volta, che le architetture di streaming standard tipicamente separano i produttori di eventi, i broker e i consumatori, in modo che i componenti possano essere scalati e mantenuti in modo indipendente. Questa flessibilità consente alle aziende di supportare molte applicazioni a valle, tra cui real-time analytics, processi decisionali basati su AI e workflow automatizzati. Questa flessibilità consente alle aziende di supportare molte applicazioni a valle, tra cui real-time analytics, processi decisionali basati su AI e workflow automatizzati.

Event-streaming e batch processing a confronto

La differenza tra l'event streaming e l'elaborazione in batch è che l'event streaming gestisce i dati continuamente man mano che si verificano gli eventi, mentre l'elaborazione in batch elabora i dati accumulati periodicamente o quando viene attivata.

L'event streaming e l'elaborazione in batch spostano ed elaborano i dati, ma differiscono principalmente per quando e come vengono gestiti i dati. Lo streaming di eventi cattura e trasporta continuamente eventi da fonti come applicazioni, database e dispositivi IoT man mano che tali eventi si verificano. Anziché attendere un set di dati completo, i sistemi gestiscono i singoli eventi o piccoli gruppi di eventi man mano che arrivano, supportando analisi e risposte a bassa latenza.

Questo approccio è particolarmente adatto a casi d'uso in cui il valore dei dati dipende dalla loro freschezza. Gli esempi includono il rilevamento delle frodi, il monitoraggio operativo, le raccomandazioni in tempo reale e i sistemi AI che si basano su informazioni aggiornate.

L'elaborazione batch raccoglie dati in un periodo definito e li elabora insieme come un workload discreto. Poiché i risultati non devono essere prodotti immediatamente, l'elaborazione batch è adatta per attività come la generazione di report giornalieri, la riconciliazione dei conti o l'aggiornamento di dashboard analytics.

Inoltre, i due approcci sono complementari anziché escludersi a vicenda: un'organizzazione potrebbe utilizzare l'event streaming per rilevare e rispondere alle attività mentre si verificano, quindi utilizzare l'elaborazione in batch per eseguire un'analisi storica completa sui dati accumulati.

Punto di confronto

Event streaming

Elaborazione in batch

Flusso di dati

Elabora un flusso continuo e potenzialmente illimitato di eventi

Elabora una raccolta limitata di dati

Tempi di elaborazione

Gestisce gli eventi nel momento in cui si verificano

Esegue a intervalli programmati o dopo aver accumulato abbastanza dati

Latenza

Generalmente ottimizzato per risultati a bassa latenza

I ritardi tra la creazione e l'elaborazione dei dati sono comuni

Considerazioni operative

Deve tenere conto di problemi come eventi ritardati o non funzionanti e un mantenimento continuo dello stato

Supporta l'elaborazione ripetibile di set di dati limitati, anche se i lavori non riusciti potrebbero richiedere una rielaborazione parziale o completa

Casi d'uso

Situazioni che richiedono un'azione immediata o quasi in tempo reale

Workload su larga scala che privilegiano la completezza e l'efficienza di elaborazione rispetto all'immediatezza

Casi d'uso dell'event streaming

L'event streaming è una tecnologia di eccezionale potenza, che consente alle organizzazioni di utilizzare i dati così come vengono generati, creando sistemi più reattivi e intelligenti. Con l'avvento dei processi decisionali basati sui dati, l'event streaming sta diventando una componente sempre più importante nelle moderne architetture software.

Pertanto, le tecnologie di event streaming prefigurano una serie di casi d'uso in tutti i settori di business:

Servizi di banking e finanziari

Gli istituti finanziari potrebbero utilizzare i servizi di event streaming per elaborare i dati di mercato e le transazioni finanziarie in tempo reale. Questo approccio consente ai sistemi di trading algoritmico di prendere decisioni in una frazione di secondo in base alle condizioni di mercato aggiornate e di rispondere rapidamente alle variazioni delle operazioni di borsa. Le funzionalità di monitoraggio in tempo reale dell'event streaming supportano anche il rilevamento delle frodi, aiutando le istituzioni a identificare e gestire rapidamente i rischi di frode e di sicurezza.

Produzione industriale

L'event streaming può agevolare l'ottimizzazione della supply chain, consentendo ai produttori di tracciare i materiali e i prodotti mentre si spostano lungo la supply chain, in modo da identificare eventuali strozzature e inefficienze di processo. Inoltre, i manager possono trasmettere i dati dai sensori IoTsui macchinari e utilizzare modelli AI per prevedere quando e perché l'attrezzatura potrebbe guastarsi. Possono quindi eseguire manutenzione preventiva o manutenzione predittiva per evitare tempo di inattività.

Gaming e entertainment

Le piattaforme di gioco online utilizzano i servizi di event streaming per tenere traccia delle azioni dei giocatori e dei cambiamenti dello stato di gioco, che possono essere utilizzati per eseguire analytics, applicare politiche antitruffa e aumentare il coinvolgimento dei gamer. Le piattaforme di streaming possono utilizzare i dati degli eventi per fornire consigli personalizzati sui contenuti per gli utenti e creare un'esperienza del cliente su misura.

Trasporti e logistica

I dati di posizione e stato del veicolo in tempo reale, trasmessi tramite sistemi gestiti da eventi, permettono ai modelli di IA di prevedere ritardi e raccomandare aggiustamenti operativi in base alle variazioni delle condizioni. Le aziende di logistica possono utilizzare i dati degli eventi provenienti da dispositivi di scansione e localizzatori GPS per fornire ai clienti aggiornamenti in tempo reale sullo stato delle consegne dei loro ordini e-commerce.

Impiego nelle architetture basate su eventi e altri pattern

Oltre a settori specifici, l'event streaming può rivelarsi utile anche quando viene implementato insieme ad altre tecnologie e architetture. Ad esempio, l'event streaming talvolta è associato a schemi come la fonte di eventi e la segregazione delle responsabilità delle query di comando (CQRS).

L'event sourcing è un pattern architettonico in cui le modifiche allo stato di un'app vengono archiviate come una sequenza di eventi. Utilizzato insieme agli stream di eventi, l'event sourcing consente al sistema di streaming di riprodurre questi eventi per ricostruire lo stato di un'entità in qualsiasi momento o per guidare altri componenti del sistema.

In un pattern architettonico CQRS, il sistema è suddiviso in due diversi modelli: uno che gestisce i comandi (scrittura) e uno che gestisce le query (lettura). L'event streaming può essere utilizzato nel pattern CQRS per propagare in tempo reale le modifiche dal modello di scrittura al modello di lettura, consentendo l'integrazione asincrona tra i due modelli.

L'event streaming è inoltre una tecnologia fondamentale per la creazione di architetture basate sugli eventi. Un'architettura basata sugli eventi consente ai componenti liberamente accoppiati di comunicare attraverso gli eventi. Invece di pubblicare flussi di eventi tramite un broker, pubblica un evento a scopo singolo che un'altra app o servizio può utilizzare per eseguire a sua volta determinate azioni.

La potenza di elaborazione in-stream fornita dalle architetture basate sugli eventi utilizzata insieme alle funzionalità di event streaming può consentire alle aziende di rispondere ai dati in movimento e prendere decisioni rapide sulla base di dati attuali e storici. Questa reattività in tempo reale supporta anche applicazioni di analytics e AI che dipendono da dati continuamente aggiornati.

Negli ultimi anni, i provider cloud hanno iniziato a offrire i principi dell'event streaming come servizi. L'event streaming come servizio rende più facile per le aziende adottare questa tecnologia senza dover gestire l'intera infrastruttura sottostante, ampliando ulteriormente i suoi casi d'uso.

Autori

Chrystal R. China

Staff Writer, Automation & ITOps

IBM Think

Judith Aquino

Staff Writer

IBM Think

Soluzioni correlate
IBM Event Automation

IBM Event Automation è una soluzione componibile che aiuta ad accelerare le attività basate sugli eventi aziendali, con funzionalità di distribuzione, rilevamento ed elaborazione degli eventi.

Esplora IBM Event Automation
Soluzioni di automazione IT

L'automazione basata su AI ridefinisce la produttività, rafforza la resilienza e accelera la crescita.

Esplora le soluzioni di automazione IT
Soluzioni cloud

Consenti alla tua organizzazione di prosperare nell'era dell'agentic AI con il pieno valore del hybrid cloud.

Esplora le soluzioni cloud
Fasi successive

Accelera il processo decisionale e le operazioni individuando nuove tendenze, minacce e opportunità.

  1. Esplora IBM Event Automation
  2. Esplora le soluzioni di automazione IT