La gestione dei flussi di dati non è l’unica potenzialità di Kafka, che offre una serie di funzionalità aggiuntive:
- Storage Distribuito: consente la memorizzazione dei messaggi per prevenire la perdita dei dati, con la facoltà di stabilire un preciso tempo di conservazione degli stessi
- ETL (Extract, Transform, Load): raccolta, trasformazione e caricamento del dato su altri sistemi. Grazie al contributo di Kafka Connect è disponibile una serie di connettori dedicati (Elasticsearch, NEO4J, Cassandra ecc)
- Stream Processing: capacità di effettuare operazioni sui dati in tempo reale, agendo direttamente sul dato durante il flusso
Da Big Data a Fast Data: Kafka cambia l’approccio alla gestione dei dati con il Data Stream Processing
In un contesto moderno, in cui la velocità di elaborazione dei dati sembra essere l’approccio più funzionale nella gestione di moltissimi servizi, Kafka si offre come una delle soluzioni più performanti e scalabili. Permette infatti di superare un modello di elaborazione di dati in Batch, eseguita in background e a intervalli prestabiliti. Fornisce un processing e un arricchimento dei dati in real time, garantendo al contempo robustezza e semplicità d’uso.
Vantaggi e casi d’uso
Vediamo nel dettaglio alcuni punti di forza determinanti nella scelta della soluzione:
- IoT, sensor data analysis: l’utilizzo di Kafka si colloca in un contesto in cui l’uso di sensori applicati a macchine industriali, autovetture e oggetti di uso comune sta crescendo enormemente. Offre infatti la possibilità di gestire le enormi quantità di dati generate dai sensori, con bassissima latenza.
- Batch Processing —> Real time processing: attraverso lo stream processing è possibile operare modifiche o trasformazioni dei dati durante il flusso. Non è quindi necessario affidarsi a un servizio esterno per gestire attività di storage e processing.
- Scalabilità e Fault-tolerance: la velocità di elaborazione e il volume dei dati in entrata possono essere variabili, quindi è necessario poter manipolare la capacità di uno strumento di messaging per modulare le variabili di precisione o performance. Kafka è in grado di gestire tutto questo, e grazie alla persistenza dei dati all’interno dei cluster (anche questa gestibile dall’utente) garantisce anche un alto livello di fault tolerance.
- Microservizi e comunicazione asincrona: Kafka può essere utilizzato come strumento per lo scambio di messaggi asincroni in un ecosistema di microservizi. Velocizza le comunicazioni tra le applicazioni e riduce al minimo il rischio di perdita di informazioni
Uno dei contesti d’uso più interessanti è la recente applicazione di Kafka nello sviluppo di vetture intelligenti, portato avanti da Audi.
L’utilizzo di questo strumento permette di ricevere in tempo reale i dati registrati dai sensori delle vetture, rendendo possibile il monitoraggio in tempo reale dello stato delle macchine. dati analizzati possono essere utili per analisi più avanzate: le informazioni rilevate sullo stato di sollecitazione degli ammortizzatori delle vetture possono fornire informazioni aggiuntive sull’ambiente circostante, lo stato del manto stradale, condizioni atmosferiche e molto altro.