Cosa sono i flussi di dati?

I dati in streaming sono dati emessi ad alto volume in modo continuo e incrementale con l'obiettivo di un'elaborazione a bassa latenza. Le organizzazioni dispongono di migliaia di origini dei dati che in genere emettono simultaneamente messaggi, record o dati di dimensioni variabili da pochi byte a diversi megabyte (MB). I dati in streaming includono dati di posizione, eventi e sensori che le aziende utilizzano per analisi in tempo reale e visibilità su molti aspetti della loro attività. Ad esempio, le aziende possono seguire le variazioni del sentiment del pubblico sui propri marchi e prodotti analizzando continuamente il flusso di clic e i post dei clienti dai fluddi provenienti dai social media e rispondendo prontamente se necessario.

Quali sono le caratteristiche dei dati in streaming?

Un flusso di dati è definito dalle seguenti caratteristiche specifiche.

Significativo dal punto di vista cronologico

I singoli elementi di un flusso di dati contengono marche temporali. Il flusso di dati stesso può essere sensibile al tempo e diminuire la propria importanza dopo uno specifico intervallo di tempo. Ad esempio, un'applicazione consiglia un ristorante in base alla posizione attuale dell'utente. È necessario agire sui dati di geolocalizzazione dell'utente in tempo reale, altrimenti i dati perdono significato.

Flusso continuo

Un flusso di dati non ha inizio né fine. Raccoglie dati in modo costante e continuo per tutto il tempo necessario. Ad esempio, i log delle attività del server si accumulano finché il server funziona.

Univoco

La trasmissione ripetuta di un flusso di dati è difficile a causa della sensibilità temporale. Pertanto, un'elaborazione accurata dei dati in tempo reale è fondamentale. Purtroppo, le disposizioni per la ritrasmissione sono limitate nella maggior parte delle origini di dati in streaming.

Non omogeneo

Alcune fonti possono trasmettere dati in streaming in più formati strutturati come JSON, Avro e valori separati da virgole (CSV) con tipi di dati che includono stringhe, numeri, date e tipi binari. I sistemi di elaborazione dei flussi devono essere in grado di gestire tali variazioni di dati.

Imperfetto

Errori temporanei all'origine possono causare elementi danneggiati o mancanti nei dati trasmessi in streaming. Può essere difficile garantire la coerenza dei dati a causa della natura continua del flusso. I sistemi di elaborazione e analisi dei flussi includono in genere una logica di convalida dei dati per ridurre o minimizzare tali errori.

Perché i flussi di dati sono importanti?

I sistemi di elaborazione dati tradizionali acquisiscono i dati in un data warehouse centrale e li elaborano in gruppi o batch. Questi sistemi sono stati costruiti per importare e strutturare i dati prima dell'analisi. Tuttavia, negli ultimi anni, la natura dei dati aziendali e i sistemi di elaborazione dati sottostanti sono cambiati in modo significativo.

Volume di dati infinito

I volumi di dati generati dalle fonti di flusso possono essere molto grandi, rendendo difficile, tramite l'analisi in tempo reale, regolare l'integrità (convalida), la struttura (evoluzione) o la velocità (velocità di trasmissione effettiva e latenza) dei flussi di dati.

Sistemi avanzati di elaborazione dei dati

Allo stesso tempo, l'infrastruttura cloud ha introdotto la flessibilità nella scalabilità e nell'utilizzo delle risorse di calcolo. Si utilizza esattamente ciò che serve e si paga solo per quel che si usa. È possibile scegliere di filtrare o aggregare i dati in tempo reale, sia prima che dopo la memorizzazione dei flussi di dati. L'architettura dei flussi di dati utilizza le tecnologie cloud per usufruire, arricchire, analizzare e archiviare permanentemente i flussi di dati secondo le necessità.

Quando vengono utilizzati i dati in streaming?

Un sistema di elaborazione dei flussi è utile nella maggior parte degli scenari in cui vengono generati continuamente dati nuovi e dinamici. 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.

Ecco altri esempi di flussi di dati.

Analisi dei dati

Le applicazioni elaborano flussi di dati per produrre report ed eseguire azioni in risposta, ad esempio generare allarmi quando una determinata misurazione supera una soglia predefinita. Le applicazioni di elaborazione dei flussi più sofisticate estraggono approfondimenti applicando algoritmi di machine learning ai dati delle attività aziendali e dei clienti.

Applicazioni IoT

I dispositivi dell'Internet delle cose (IoT) sono un altro caso di utilizzo dei flussi di dati. I sensori nei veicoli, le apparecchiature industriali e i macchinari agricoli possono inviare dati a un'applicazione in streaming. L'applicazione monitora le prestazioni, rileva anticipatamente i guasti e ordina la parte di ricambio, evitando tempi di inattività.

Analisi finanziaria

Un istituto finanziario utilizza il flusso di dati per monitorare 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 altro caso d'uso finanziario è il rilevamento delle frodi sulle transazioni con carta di credito, utilizzando l'inferenza in tempo reale rispetto a inviare in streaming i dati delle transazioni.

Suggerimenti in tempo reale

Le applicazioni immobiliari rilevano i dati di geolocalizzazione dai dispositivi mobili dei consumatori e forniscono suggerimenti in tempo reale sulle proprietà da visitare. Analogamente, le applicazioni pubblicitarie, alimentari, di vendita al dettaglio e di consumo possono integrare suggerimenti in tempo reale per dare più valore ai clienti.

Garanzie di servizio

È possibile implementare l'elaborazione dei flussi di dati per monitorare e mantenere i livelli di servizio delle applicazioni e delle apparecchiature. Una società che opera nel settore fotovoltaico, per non incorrere in penali, deve mantenere stabile la velocità di trasmissione effettiva per tutti i clienti. Implementa un'applicazione di streaming dei dati che monitora tutti i pannelli sul campo e pianifica l'assistenza in tempo reale. In questo modo, può ridurre al minimo i periodi di velocità di trasmissione effettiva bassa di ciascun pannello e le relative penali.

Media e videogiochi

Gli editori di media eseguono lo streaming di miliardi di record a richiesta dei propri prodotti online, aggregano e arricchiscono i dati con informazioni demografiche sugli utenti e ottimizzano il posizionamento dei contenuti. Ciò aiuta gli editori a offrire un'esperienza migliore e più pertinente al pubblico. Analogamente, le aziende di giochi online utilizzano l'elaborazione dei flussi di eventi per analizzare le interazioni tra i giocatori e offrire esperienze dinamiche per coinvolgere i giocatori.

Controllo del rischio

Le piattaforme di live streaming e social catturano i dati sul comportamento degli utenti in tempo reale per il controllo del rischio sulle attività finanziarie degli utenti, come ricariche, rimborsi e premi. Le piattaforme visualizzano dashboard in tempo reale per adattare in modo flessibile le strategie di rischio.

Qual è la differenza tra i dati in batch e i dati in streaming?

L'elaborazione in batch è il metodo utilizzato dai computer per completare periodicamente processi di elaborazione dati ripetitivi e con volumi elevati. È possibile utilizzarla per elaborare query arbitrarie su diversi set di dati. Di norma ricava risultati di calcolo 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 analisi e di risposta 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 su 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 piccole batch composte da pochi record.

Prestazioni

  Latenza nell'ordine di ore o minuti.

Latenza nell'ordine di secondi o millisecondi.

Analisi

Analisi complesse. Funzioni interattive semplici, aggregazione di dati e parametri dinamici.

Molte aziende stanno costruendo un modello ibrido frutto della combinazione di entrambi gli approcci, mantenendo un livello di elaborazione in tempo reale e uno di elaborazione in batch. Ad esempio, è possibile elaborare prima i dati in una piattaforma di streaming dei dati come Amazon Kinesis per estrarre approfondimenti in tempo reale. Dopodiché, è possibile renderli permanenti in uno store comeAmazon Simple Storage Service (Amazon S3). È lì che possono essere trasformati e caricati per vari casi di elaborazione in batch.

Amazon Redshift Streaming Ingestion consente agli utenti di importare i dati direttamente dal flusso di dati Amazon Kinesis, senza doverli mettere in fase in Amazon S3. Il servizio consente anche di importare dati dallo Streaming gestito da Amazon per Apache Kafka (Amazon MSK) in Amazon Redshift.

Come si elaborano i dati in streaming?

L'architettura dei dati in streaming contiene due tipi di componenti principali.

Produttori di flussi

I produttori di flussi sono componenti software delle applicazioni e dei sistemi IoT che raccolgono i dati. Trasmettono allo stream processor record che contengono il nome dello stream, il valore dei dati e il numero di sequenza. Il processore bufferizza o raggruppa temporaneamente i record di dati in base al nome del flusso. Utilizza il numero di sequenza per tracciare la posizione univoca di ciascun record ed elaborare i dati in ordine cronologico.

Consumatori di flussi

I consumatori di flussi sono componenti software che elaborano e analizzano i flussi di dati bufferizzati nel processore. Ciascun consumatore dispone di capacità di analisi quali correlazioni, aggregazioni, filtraggio, campionamento o machine learning. Ogni flusso può avere più consumatori e ogni consumatore può elaborare numerosi flussi. I consumatori possono anche inviare i dati modificati al processore per creare nuovi flussi per altri consumatori.

Implementazione dell'architettura

Per implementare un'architettura di dati in streaming, sono necessari livelli di archiviazione e 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.

Quali sono le problematiche nell'uso dello streaming dei dati?

L'architettura dei dati in streaming richiede considerazioni particolari data la natura e il volume dei dati.

Disponibilità

Le applicazioni di dati in streaming richiedono coerenza, bassa latenza ed elevata disponibilità. I consumatori prelevano continuamente nuovi dati dal flusso per elaborarli. I ritardi da parte del produttore potrebbero causare ritardi nel sistema e causare errori.

Scalabilità

I flussi di dati grezzi possono aumentare rapidamente e inaspettatamente. Ad esempio, i post dei social media aumentano durante un grande evento sportivo. Pertanto, il sistema deve dare la priorità a una corretta sequenza dei dati, alla disponibilità e alla coerenza, anche durante i picchi di carico.

Durabilità

A causa della sensibilità temporale dei dati, il sistema di elaborazione dei flussi deve essere tollerante ai guasti. Altrimenti, i dati andranno persi per sempre in caso di interruzione o guasto.

In che modo AWS può supportare i tuoi requisiti di streaming dei dati?

AWS offre diverse opzioni per lavorare con i dati in streaming. 

Amazon Kinesis

Kinesisè una piattaforma per lo streaming dei dati su AWS. Offre servizi affidabili per semplificare il caricamento e l'analisi di flussi di dati consentendo al contempo di creare applicazioni di streaming dati personalizzate per esigenze specialistiche.

Kinesis offre tre servizi: Amazon Kinesis Data Firehose, flusso di dati Amazon Kinesis Streaming gestito da Amazon per Apache Kafka (Amazon MSK).

Kinesis Data Firehose

Kinesis Data Firehose può acquisire e caricare automaticamente flussi di dati in Amazon Simple Storage Service (Amazon S3) e Amazon Redshift. tale servizio consente l’analisi quasi in tempo reale con gli strumenti e i pannelli di controllo di business intelligence che usi già oggi.

Kinesis Data Streams

Kinesis Data Streams è in grado di acquisire e memorizzare in modo continuo diversi terabyte (TB) di dati all'ora da centinaia di migliaia di fonti. Amazon Kinesis Streams supporta vari framework di elaborazione in streaming, tra cui Amazon Kinesis Client Library (KCL), Apache Storm e Apache Spark Streaming.

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. 

Amazon Redshift

Amazon Redshift Streaming Ingestion consente agli utenti di acquisire dati in streaming nel proprio data warehouse per effettuare analisi in tempo reale da più flussi di dati Kinesis. È possibile eseguire analisi ricche utilizzando un SQL familiare e creare e gestire facilmente pipeline ELT. Inoltre, consente di elaborare grandi volumi di dati in streaming con bassa latenza ed elevata velocità di trasmissione effettiva per ricavare informazioni in pochi secondi.

Altre soluzioni di streaming in Amazon EC2

È possibile installare le piattaforme di streaming dei dati desiderate in Amazon Elastic Compute Cloud (Amazon EC2) e Amazon EMR creando livelli di storage ed elaborazioni personalizzati. Di conseguenza, è possibile evitare l'attrito del provisioning dell'infrastruttura e ottenere l'accesso a vari framework di archiviazione ed elaborazione dei flussi. A livello di archiviazione di dati è possibile usare Amazon MSK and Apache Flume. A livello di elaborazione è possibile usare Apache Spark Streaming and Apache Storm.

Comincia a sfruttare subito la tecnologia di streaming dei dati su AWS creando un account AWS gratuito!

Le fasi successive di AWS Streaming Data

Scopri ulteriori risorse correlate al prodotto
Visualizza le offerte gratuite per i servizi Analytics nel cloud 
Registrati per creare un account gratuito

Ottieni accesso istantaneo al piano gratuito di AWS. 

Registrati 
Inizia a lavorare con la console

Inizia subito a sviluppare nella Console di gestione AWS.

Accedi