Reading Time: 6 minutes

Se comprendiamo come funziona l’universo, in qualche modo lo controlliamo.

 (Stephen Hawking)

Al giorno d’oggi sentiamo sempre più parlare di flussi di dati di svariati tipi, da quelli generati dai clienti che utilizzano applicazioni Web o effettuano acquisti online, dati di transazioni finanziarie, eventi su piattaforme per videogiochi, informazioni provenienti da social network e altro ancora.
L’intero ecosistema digitale che domina il business moderno è il principale produttore di dati. Parliamo di una quantità enorme di informazioni generate giornalmente, in un vero e proprio flusso.

A fronte di tutto ciò, le esigenze delle aziende moderne si stanno gradualmente modificando verso un tipo di analisi in tempo reale, in grado di “catturare” ed estrarre informazioni di valore dal dato.

Partiremo da questa esigenza per descrivere il concetto di Data Streaming, un approccio che nasce appositamente per risolvere la complessità dell’analisi del dato in real-time, attraverso soluzioni che garantiscano robustezza, efficienza e scalabilità.

Data Streaming: definizione e casi d’uso

Il Data streaming, anche conosciuto come Event Streaming o Stream Data Processing, è un termine che identifica la capacità di un sistema di intercettare molteplici flussi (streams) di dati ed effettuare una serie di operazioni su di essi. Rispetto alla modalità “tradizionale” di gestione dati, questo approccio consente di evitare il processamento asincrono (batch processing), evitando quindi di dover caricare i dati in strutture apposite per una successiva analisi.

Per comprendere meglio il concetto possiamo descrivere alcuni casi d’uso attuali.

Pensiamo ad esempio al caso dell’industria 4.0: come è possibile monitorare in tempo reale i dati provenienti dalle migliaia di sensori montati sulle macchine?
Oppure pensiamo al contesto della fraud detection: come possiamo sviluppare un sistema che consenta di monitorare dati di traffico in modo tanto efficiente da permetterci di identificare frodi in tempi brevi?
E sempre in ambito finanziario, come può una società tenere sotto controllo le variazioni del mercato azionario in tempo reale, così da elaborare la possibilità di rischio e riequilibrando automaticamente i piani finanziari in base in base alle fluttuazioni dei prezzi delle azioni?

Qualunque sia la situazione di riferimento, è necessario avvalersi di strumenti in grado di gestire il flusso dati, cercando di ottenere il massimo valore dal dato in tempo reale.

Il Data Streaming per elaborare i grandi flussi di dati

Le architetture software si basano su un interscambio di dati tra una sorgente e un ricevente, regolate da opportuni protocolli (Https, TCP, REST, JDBC, ecc). Un quadro, almeno fino a questo punto, abbastanza semplice.

Ma cosa succede quando le sorgenti dati aumentano?

– Aumenta il numero delle interconnessioni e di conseguenza il “carico” sull’intero sistema.
– Aumentano le integrazioni tra i vari nodi sorgente – ricevente

Le cose possono poi complicarsi ulteriormente, nel caso in cui i dati utilizzatati cambino per tipologia, formato, necessità di arricchimento o modifica.
La realtà attuale ci porta, come ben sappiamo, ad avere a che fare con una quantità di dati particolarmente consistente, che a seconda dei casi rende necessario avvalersi di tecnologie che permettano una forte scalabilità.

Il Data Streaming rappresenta una soluzione a questa complessità.

Permette di:

  • Ricevere dati in tempo reale (message broking)
  • Processare i dati in tempo reale (data enrichment)
  • Memorizzare i dati (storage)

Alla base di tutto ciò abbiamo applicazioni che stanno esattamente “nel mezzo” tra le applicazioni sorgente e riceventi, assolvendo la funzione di “smistamento” dei flussi di dati tra le varie applicazioni.

Le caratteristiche dell’approccio del Data Streaming

L’approccio del Data Streaming si avvale delle capacità della tecnologia scelta nel calcolare continuamente analisi matematiche o statistiche all’interno del flusso di dati. Le soluzioni di stream processing sono infatti progettate per gestire grandi volumi in tempo reale con un’architettura scalabile seguendo queste caratteristiche:

  • Elaborazione di grandi quantità di streaming events
  • Risposta in tempo reale
  • Prestazioni e scalabilità (i volumi di dati aumentano di dimensioni e complessità);
  • Integrazione rapida con infrastrutture esistenti
  • Alerting

Rispondendo a queste richieste un servizio di Data Streaming garantisce che il “viaggio” dei dati avvenga su un canale unico e lineare; la piattaforma facilita e velocizza le operazioni legate alla processazione del dato.

Casi d’uso concreti e vantaggi

L’elaborazione in flussi risulta molto vantaggiosa quando si ha a che fare con dati che vengono generati in modo continuo e dinamico. Le aziende possono affidarsi a questo approccio per processare grandi quantità di informazioni così da poter produrre report ed eseguire semplici azioni in risposta ad un alert. Vi è anche la possibilità di poter applicare algoritmi di machine learning in base ai dati a disposizione. Progressivamente si applicano algoritmi complessi su flussi e rendendo sempre più particolareggiate le analisi in tempi di risposta molto rapidi.

Riepilogando, il Data Streaming porta quindi considerevoli vantaggi per quanto riguarda:

  • Monitoraggio e Alerting: monitoraggio dei dati disponibili in tempo reale, che possono comprendere anche attività di alerting automatizzati al verificarsi di determinati eventi, più o meno complessi, dall’ identificazione delle anomalie nei processi industriali alle frodi nei servizi finanziari.
  • Automated Decision Making: automatizzazione di determinate azioni al verificarsi di uno specifico evento, come i recommender system o azioni di ottimizzazione delle rotte di veicoli o persone.
  • Nuovi prodotti e servizi: grazie alla capacità di analizzare i dati in Streaming, è possibile infine mettere sul mercato nuovi prodotti o servizi o di sfruttare al meglio le potenzialità di prodotti già esistenti come le smart tv, sulle quali possono essere implementati sistemi di addressable TV (contenuti pubblicitari personalizzati) basati sui comportamenti degli spettatori e sviluppo di vetture intelligenti come dimostrato nel seguente video.

 

 

Apache Kafka, la soluzione ottimale per il Data Streaming

Una delle soluzioni più performanti e scalabili in ottica Data Streaming nel mondo opensource è rappresentata da Apache Kafka. Tramite questa piattaforma è possibile andare oltre un modello di elaborazione di dati in Batch, eseguito in background e a intervalli prestabiliti. Kafka fornisce un processing e un arricchimento dei dati in real time che garantisce solidità e semplicità d’uso allo stesso tempo. Nel prossimo articolo analizzeremo più da vicino tutte le funzionalità e le caratteristiche del sistema, come punti di forza l’incremento della produttività e l’affidabilità nel dover gestire un elevato numero di operazioni in tempo reale da migliaia di client.

 

Fonti:

blog.osservatori.net/

www.datamanager.it

 news.beta80group.it/big-data-management

Vuoi saperne di più?

Se desideri approfondire l’approccio Data Streaming e conoscere nel dettaglio vantaggi e potenzialità di Apache Kafka contatta Seacom.