Esplorare gli elementi comuni dell'architettura di elaborazione dei flussi

Completato

Esistono molte tecnologie che possono essere usate per implementare una soluzione di elaborazione dei flussi, ma, mentre i dettagli specifici dell'implementazione possono variare, alcuni elementi sono comuni alla maggior parte delle architetture di elaborazione dei flussi.

Architettura generale per l'elaborazione dei flussi

Nella sua forma più semplice, un'architettura generale per l'elaborazione dei flussi si presenta come segue:

An event generates data, which is captured in a queue before being processed, and the results are written to a data store or visualization

  1. Un evento genera dati. Potrebbe trattarsi dell'emissione di un segnale da parte di un sensore, della pubblicazione di un messaggio su un social media, della scrittura di una voce in un file di log o di qualsiasi altro evento che produca dati digitali.
  2. I dati generati vengono acquisiti in un'origine di elaborazione dei flussi per l'elaborazione. In casi semplici, l'origine può essere una cartella in un archivio dati cloud o una tabella in un database. Nelle soluzioni di elaborazione dei flussi più solide, l'origine può essere una "coda" che incapsula la logica per garantire che i dati degli eventi siano elaborati in ordine e che ogni evento sia elaborato una sola volta.
  3. I dati degli eventi vengono elaborati, spesso da una query perpetua che opera sui dati degli eventi per selezionare i dati di tipi specifici di eventi, proiettare i valori dei dati o aggregare i valori dei dati su periodi (o finestre) temporali (basati sul tempo), ad esempio contando il numero di emissioni del sensore al minuto.
  4. I risultati dell'operazione di elaborazione dei flussi vengono scritti in un output (o sink), che può essere un file, una tabella di database, un dashboard visivo in tempo reale o un'altra coda per un'ulteriore elaborazione da parte di una successiva query downstream.

Analisi in tempo reale in Azure

Microsoft Azure supporta diverse tecnologie che possono essere usate per implementare l'analisi in tempo reale dei dati in streaming, tra cui:

  • Analisi di flusso di Azure: soluzione PaaS (piattaforma distribuita come servizio) che è possibile usare per definire processi di streaming che inseriscono i dati da un'origine di streaming, applicano una query perpetua e scrivono i risultati in un output.
  • Streaming strutturato Spark: libreria open source che consente di sviluppare soluzioni complesse di elaborazione dei flussi in servizi basati su Apache Spark, tra cui Azure Synapse Analytics, Azure Databricks e Azure HDInsight.
  • Esplora dati di Azure: servizio di database e analisi a prestazioni elevate ottimizzato per l'inserimento e l'esecuzione di query su dati in batch o in streaming con un elemento della serie temporale, che può essere usato come servizio di Azure autonomo o come runtime di Esplora dati di Azure Synapse in un'area di lavoro Azure Synapse Analytics.

Origini per l'elaborazione dei flussi

I servizi seguenti vengono comunemente usati per inserire i dati per l'elaborazione dei flussi in Azure:

  • Hub eventi di Azure: servizio di inserimento dati che è possibile usare per gestire le code di dati di eventi, assicurandosi che ogni evento venga elaborato in ordine, esattamente una volta.
  • Hub IoT di Azure: servizio di inserimento dati simile a Hub eventi di Azure, ma ottimizzato per gestire i dati degli eventi dai dispositivi IoT (Internet delle cose).
  • Azure Data Lake Store Gen 2: servizio di archiviazione altamente scalabile spesso usato negli scenari di elaborazione batch, ma utilizzabile anche come origine di dati in streaming.
  • Apache Kafka: soluzione di inserimento dati open source in genere usata insieme ad Apache Spark. È possibile usare Azure HDInsight per creare un cluster Kafka.

Sink per l'elaborazione dei flussi

L'output dell'elaborazione dei flussi viene spesso inviato ai servizi seguenti:

  • Hub eventi di Azure: usato per accodare i dati elaborati per un'ulteriore elaborazione downstream.
  • Azure Data Lake Store Gen 2 o Archiviazione BLOB di Azure: usato per salvare in modo permanente come file i risultati elaborati.
  • Database SQL di Azure o Azure Synapse Analytics o Azure Databricks: usato per salvare in modo permanente i risultati elaborati in una tabella di database per l'esecuzione di query e analisi.
  • Microsoft Power BI: usato per generare visualizzazioni dei dati in tempo reale in report e dashboard.