Cos'è lo streaming dei dati?

Lo streaming dei dati è costituito dai dati generati in modo continuo da migliaia di origini dati, che generalmente inviano record di dati in modo simultaneo e a piccole dosi (nell'ordine dei kilobyte). Lo streaming dei dati è composto da svariati tipi di dati, ad esempio i file di log generati dai clienti che utilizzano applicazioni Web o su dispositivi mobili, acquisti effettuati su siti di e-commerce, eventi all'interno di videogiochi, informazioni provenienti da social network, dati di transazioni finanziarie, servizi di geolocalizzazione e di telemetria relativi a dispositivi connessi o strumentazioni in data center.

Tutte queste informazioni devono essere elaborate in modo sequenziale e incrementale, record per record o in base a intervalli temporali dinamici, e impiegate per un'ampia gamma di operazioni di analisi, ad esempio correlazione, aggregazione, filtraggio e campionamento. Le informazioni ottenute da queste analisi consentono alle aziende una visione più ampia su molti aspetti del loro business e sulle attività dei clienti, come l'utilizzo dei servizi (a scopo di misurazione e di fatturazione), l'attività dei server, i clic sui siti Web e la geolocalizzazione di dispositivi, persone e asset fisici, consentendo risposte rapide in qualsiasi situazione. Ad esempio, le aziende potranno monitorare i cambiamenti nella percezione dei loro brand e prodotti analizzando flussi provenienti dai social media, prendendo provvedimenti quando necessario.

Vantaggi dello streaming dei dati

L'elaborazione dello streaming dei dati è vantaggiosa nella maggior parte dei casi in cui nuovi dati vengono generati in modo continuo e dinamico. Si applica alla maggior parte dei settori e dei casi d'uso relativi ai Big Data. In genere le aziende iniziano con applicazioni molto semplici, ad esempio la raccolta di log di sistema e calcoli rudimentali come algoritmi di minimax. In un secondo momento, tali applicazioni si evolvono fino a diventare calcoli sofisticati quasi in tempo reale. Inizialmente, le applicazioni possono elaborare flussi di dati per produrre report essenziali ed eseguire semplici azioni in risposta, ad esempio generare allarmi quando una determinata misurazione supera una soglia predefinita. Successivamente, però, le applicazioni eseguono analisi di dati più sofisticate, ad esempio per l'applicazione di algoritmi di machine learning e l'estrazione di informazioni approfondite dai dati disponibili. Progressivamente si applicano algoritmi complessi su flussi ed eventi, ad esempio intervalli temporali in cui individuare i film di successo più recenti, rendendo sempre più particolareggiate le informazioni.

Esempi di streaming dei dati

  • I sensori nei veicoli da trasporto, le apparecchiature industriali e i macchinari agricoli possono inviare dati a un'applicazione in streaming. L'applicazione monitora le prestazioni, rileva anticipatamente eventuali guasti e ordina automaticamente la parte di ricambio, evitando i tempi di inattività.
  • Un istituto finanziario monitora le variazioni del mercato azionario in tempo reale, elaborando il valore a rischio e riequilibrando automaticamente i portafogli finanziari in base alle fluttuazioni dei prezzi delle azioni.
  • Un sito Web monitora un sottoinsieme dei dati provenienti da dispositivi mobili consumer elaborando in tempo reale suggerimenti sulle proprietà da visitare in base alla loro geo-localizzazione.
  • Una società che opera nel settore fotovoltaico deve mantenere stabile la corrente per tutti i clienti, per non incorrere in una penale. Perciò ha implementato un'applicazione di streaming dei dati che monitora tutti i pannelli solari nel proprio campo e ne pianifica in tempo reale la manutenzione, riducendo al minimo i periodi di bassa resa di ciascun pannello e i relativi costi dovuti alle penali.
  • Un editore di contenuti multimediali può trasmettere in streaming miliardi di record di clickstream dalle sue proprietà online, aggregare i dati e aggiungervi informazioni demografiche sugli utenti; può inoltre ottimizzare il posizionamento dei contenuti sul proprio sito, in modo da offrire contenuti più rilevanti e una migliore esperienza ai propri utenti.
  • Una società di gaming online raccoglie lo streaming dei dati relativi alle interazioni tra giocatori e li inoltra alla propria piattaforma di gaming. Quindi analizza in tempo reale questi dati, creando offerte e soluzioni dinamiche che accrescono il coinvolgimento dei giocatori.

Confronto tra elaborazione in batch ed elaborazione in streaming

Prima di affrontare lo streaming dei dati, è bene confrontare e mostrare le differenze tra l'elaborazione in batch e l'elaborazione in streaming. L'elaborazione in batch può essere utilizzata per elaborare query arbitrarie su diversi set di dati. Di norma elabora i risultati da tutti i dati che prende in esame e consente un'analisi approfondita dei set di Big Data. Le piattaforme che supportano le attività in batch sono, ad esempio, i sistemi basati su MapReduce, come Amazon EMR. L'elaborazione in streaming, invece, richiede l'inserimento di una sequenza di dati e l'aggiornamento continuo di parametri, report e statistiche di riepilogo in risposta a ciascun record di dati caricato. Questo tipo di elaborazione è più adatto a funzioni di monitoraggio e di interazione in tempo reale.


  Elaborazione in batch Elaborazione in streaming
Dati a cui si applica Query o elaborazione sulla maggior parte o tutti i dati in un set di dati. Query o elaborazione sui dati all'interno di un intervallo temporale specifico o sui record di dati più recenti.
Dimensioni dei dati
Batch di dati di grandi dimensioni.
Singoli record o piccoli batch composti da pochi record.
Prestazioni Latenza nell'ordine di ore o minuti. Latenza nell'ordine di secondi o millisecondi.
Analisi Analisi complesse. Funzioni di risposta semplici, aggregazioni e parametri dinamici.

 

Molte aziende stanno implementando un modello ibrido frutto della combinazione di entrambi gli approcci, mantenendo un livello di elaborazione in batch e uno di elaborazione in tempo reale. I dati vengono prima elaborati da una piattaforma di dati in streaming come Amazon Kinesis per estrarre informazioni in tempo reale, quindi vengono memorizzati in soluzioni di storage quali S3, dove vengono trasformati e caricati in modo differente a seconda del caso d'uso di elaborazione in batch.

Problematiche nell'uso dello streaming dei dati

L'elaborazione di dati in streaming richiede due livelli: un livello di storage e uno di elaborazione. Il livello di storage deve supportare l'ordinamento dei record e una consistenza forte per consentire letture e scritture rapide, poco costose e riproducibili relative a flussi di dati di grandi dimensioni. Il livello di elaborazione ha invece il compito di elaborare i dati provenienti dal livello di storage, eseguire calcoli e quindi inviare notifiche per eliminare i dati non più necessari. Entrambi i livelli, inoltre, dovranno essere sottoposti a un'attenta pianificazione per garantire scalabilità, persistenza e tolleranza ai guasti. Di conseguenza, si sono imposte diverse piattaforme in grado di fornire l'infrastruttura necessaria per creare applicazioni di streaming dei dati, tra cui Amazon Kinesis Data Streams, Amazon Kinesis Data Firehose, Amazon Managed Streaming per Apache Kafka (Amazon MSK), Apache Flume, Apache Spark Streaming e Apache Storm.

Utilizzo dello streaming dei dati in AWS

Amazon Web Services (AWS) offre diverse opzioni per la gestione dello streaming dei dati. È possibile sfruttare i servizi gestiti di streaming dei dati offerti da Amazon Kinesis oppure distribuire e gestire una soluzione di streaming dei dati personalizzata nel cloud in Amazon EC2.

Amazon Kinesis è una piattaforma per lo streaming dei dati in AWS che offre servizi avanzati per semplificare il caricamento e l'analisi dello streaming dei dati e consente di creare applicazioni personalizzate per esigenze specifiche. Offre tre servizi: Amazon Kinesis Data Firehose, Amazon Kinesis Data Streams e Amazon Managed Streaming per Apache Kafka (Amazon MSK).

Inoltre, è possibile eseguire altre piattaforme di streaming dei dati quali Apache Flume, Apache Spark Streaming e Apache Storm in Amazon EC2 e Amazon EMR.

Amazon Kinesis Data Streams

Amazon Kinesis Data Streams consente di creare applicazioni personalizzate per elaborare o analizzare lo streaming dei dati per esigenze specifiche. È in grado di acquisire e memorizzare in modo continuo diversi terabyte di dati all'ora da centinaia di migliaia di fonti. Puoi quindi creare applicazioni che elaborano i dati provenienti da Amazon Kinesis Data Streams per alimentare pannelli di controllo in tempo reale, generare allarmi, implementare inserzioni pubblicitarie e modelli di prezzo dinamici e molto altro. Amazon Kinesis Data Streams supporta vari framework di elaborazione in streaming, tra cui Kinesis Client Library (KCL), Apache Storm e Apache Spark Streaming.

Ulteriori informazioni su Amazon Kinesis Data Streams »

Amazon Kinesis Data Firehose

Amazon Kinesis Data Firehose è il mezzo più semplice per caricare flussi di dati in AWS. È in grado di acquisire e caricare automaticamente lo streaming dei dati in Amazon S3 e Amazon Redshift per ottenere analisi in tempo reale con gli strumenti di business intelligence e i pannelli di controllo già in uso. Consente inoltre di implementare in modo rapido un approccio ELT, ottenendo vantaggi immediati dallo streaming dei dati.

Ulteriori informazioni su Amazon Kinesis Data Firehose »

Amazon Managed Streaming per Apache Kafka (Amazon MSK)

Amazon MSK è un servizio completamente gestito che semplifica la creazione e l'esecuzione di applicazioni che si servono di Apache Kafka per l'elaborazione dei dati in streaming. Apache Kafka è una piattaforma open source per creare pipeline di flussi di dati e applicazioni in tempo reale. Con Amazon MSK, puoi usare le API native di Apache Kafka per data lake popolari, trasmettere modifiche verso e da database, nonché favorire il machine learning e le applicazioni di analisi.

Ulteriori informazioni su Amazon MSK  »

Altre soluzioni di streaming in Amazon EC2

È possibile installare in Amazon EC2 e Amazon EMR le piattaforme di streaming dei dati desiderate, creando livelli di storage ed elaborazioni personalizzati. Nel momento in cui si crea una soluzione personalizzata per lo streaming dei dati in Amazon EC2 e Amazon EMR, è possibile evitare i problemi causati dal provisioning dell'infrastruttura impiegando una serie di framework di elaborazione e di storage dei flussi. A livello di storage è possibile utilizzare Apache MSK e Apache Flume. A livello di elaborazione è possibile usare Apache Spark Streaming e Apache Storm.

Fasi successive

Registrati al piano gratuito Amazon
Registrati per creare un account gratuito

Ottieni accesso istantaneo al piano gratuito di AWS. 

Registrati 
Inizia a lavorare nella console Amazon Kinesis
Inizia a lavorare nella console

Inizia a utilizzare Amazon Kinesis nella Console di gestione AWS.

Accedi