Introduzione
A causa della crescita esplosiva delle origini dati che generano continuamente flussi di dati, oggigiorno le aziende ricevono enormi quantità di dati a grande velocità. Sia che si tratti di dati di registro da server di applicazioni, dati di clickstream da siti Web e applicazioni per dispositivi mobili o dati di telemetria da dispositivi Internet of Things (IoT), tutto questo contiene informazioni che possono aiutare a conoscere ciò che clienti, applicazioni e prodotti stanno facendo in questo momento.
Avere la capacità di elaborare e analizzare questi dati in tempo reale è essenziale per attività come il monitoraggio continuo delle applicazioni per garantire tempo di funzionamento elevato del servizio e personalizzare offerte promozionali e suggerimenti sui prodotti. L'elaborazione in tempo reale e quasi in tempo reale può anche rendere più accurati e utilizzabili altri casi d'uso comuni, come l'analisi dei dati dei siti Web e il machine learning, rendendo i dati disponibili a queste applicazioni in pochi secondi o minuti anziché in ore o giorni.
Scenari applicativi in tempo reale e quasi in tempo reale
È possibile utilizzare i servizi di dati di streaming per applicazioni in tempo reale e quasi in tempo reale come il monitoraggio delle applicazioni, il rilevamento frodi e le classifiche in tempo reale. I casi d'uso in tempo reale richiedono latenze end-to-end di millisecondi, dall'importazione dati, all'elaborazione, fino all'emissione dei risultati nei data store di destinazione e in altri sistemi. Ad esempio, Netflix usa Amazon Kinesis Data Streams
I casi d'uso comuni quasi in tempo reale includono l'analisi dei dati sui data store per il Data Science e il machine learning (ML). È possibile utilizzare soluzioni per i dati di streaming per caricare continuamente dati in tempo reale nei data lake. È quindi possibile aggiornare i modelli di machine learning con maggiore frequenza non appena sono disponibili nuovi dati, migliorando così accuratezza e affidabilità dei risultati. Ad esempio, Zillow usa Kinesis Data Streams per raccogliere dati di record pubblici e inserzioni con più servizi di quotazione (MLS, multiple listing service), aggiornando le stime degli immobili quasi in tempo reale e garantendo ad acquirenti e venditori l'utilizzo di valori sempre aggiornati. ZipRecruiter, utilizza Amazon MSK
Differenza tra elaborazione batch ed elaborazione di flussi
Occorre un set di strumenti diverso per raccogliere, preparare ed elaborare i dati di streaming in tempo reale rispetto agli strumenti tradizionalmente utilizzati per l'analisi dei dati in batch. Con l'analisi dei dati tradizionale, essi vengono raccolti e caricati periodicamente in un database e l'analisi avviene ore, giorni o settimane dopo. L'analisi dei dati in tempo reale richiede un approccio diverso. Le applicazioni di elaborazione in streaming elaborano i dati continuamente in tempo reale, anche prima che vengano archiviati. I dati di streaming possono arrivare a un ritmo incredibile e i volumi di dati possono aumentare o diminuire in qualsiasi momento. Le piattaforme di elaborazione dei dati in streaming devono essere in grado di gestire la velocità e la variabilità dei dati in arrivo ed elaborarli man mano che arrivano, spesso da milioni a centinaia di milioni di eventi all'ora.