Introduzione - Soluzioni per i dati di streaming di AWS per Amazon Kinesis

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 per monitorare le comunicazioni tra tutte le sue applicazioni, mettendo l'azienda in condizione di rilevare e risolvere i problemi in modo rapido e limitando i tempi di inattività per i clienti. Sebbene il caso d'uso più comunemente applicabile sia il monitoraggio delle prestazioni delle applicazioni, vi è un numero crescente di applicazioni in tempo reale nei settori della tecnologia pubblicitaria, dei giochi e dell'IoT che rientrano in questa categoria.

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 per le pipeline di registrazione degli eventi, che sono componenti infrastrutturali fondamentali in quanto raccolgono, archiviano ed elaborano continuamente oltre sei miliardi di eventi al giorno provenienti dal marketplace delle offerte di lavoro dell'azienda.

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.