Comprendere l'elaborazione di eventi

Completato

Analisi di flusso di Azure è un servizio per l'elaborazione di eventi complessi e l'analisi dei dati di streaming. Analisi di flusso viene usato per:

  • Inserire dati da un input, ad esempio un Event Hub di Azure, un IoT Hub di Azure o un contenitore blob di Archiviazione di Azure.
  • Elaborare i dati usando una query per selezionare, proiettare e aggregare i valori dei dati.
  • Scrivere i risultati in un output, ad esempio Azure Data Lake Storage Gen2, database SQL di Azure, Azure Cosmos DB, Funzioni di Azure, Hub eventi di Azure, Microsoft Power BI o altri.

Diagramma che mostra un processo di Analisi di flusso con input, query e output

Una volta avviata, una query di Stream Analytics viene eseguita in modo perpetuo, elaborando nuovi dati man mano che arrivano nell'input e archiviando i risultati nell'output.

L'Analisi di flusso garantisce l'elaborazione degli eventi esattamente una volta e almeno una volta il recapito degli eventi, in modo che gli eventi non vengano mai persi. L'elaborazione exactly-once è garantita con gli output selezionati. Per altre informazioni, vedere Garanzie di recapito degli eventi. Analisi di flusso include funzionalità di ripristino predefinite in caso di errori di recapito degli eventi. Analisi di flusso offre anche checkpoint predefiniti per gestire lo stato del processo e produce risultati ripetibili. Poiché Analisi di flusso di Azure è una soluzione PaaS (Platform-as-a-Service), è completamente gestita. L'integrazione predefinita con varie origini e destinazioni offre un modello di programmabilità flessibile. Il motore di Analisi di flusso abilita il calcolo in memoria, quindi offre prestazioni elevate.

Processi e cluster di Analisi di flusso di Azure

Il modo più semplice per usare Analisi di flusso di Azure consiste nel creare un job di Analisi di flusso di Azure in una sottoscrizione Azure, configurare gli input e gli output e definire la query usata dal job per elaborare i dati. La query viene espressa usando la sintassi SQL (Structured Query Language) e può incorporare dati di riferimento statici da più origini dati per fornire valori di ricerca che possono essere combinati con i dati di streaming inseriti da un input.

Se i requisiti di elaborazione del flusso sono complessi o richiedono molte risorse, è possibile creare un cluster di Analisi di flusso, che usa lo stesso motore di elaborazione sottostante di un processo di Analisi di flusso, ma in una distribuzione a tenant singolo (in modo che l'elaborazione non sia influenzata da altri clienti) e con una scalabilità configurabile che consente di definire il giusto equilibrio tra capacità effettiva e costi per lo scenario specifico. Per altre informazioni, vedere Panoramica di Analisi di flusso di Azure cluster.

Input

Analisi di flusso di Azure può inserire dati dai tipi di input seguenti:

  • Hub eventi di Azure
  • Hub IoT di Azure
  • Archiviazione BLOB di Azure
  • Azure Data Lake Storage Gen2
  • Apache Kafka

Gli input vengono in genere usati per fare riferimento a un'origine di dati di streaming, che viene elaborata quando vengono aggiunti nuovi record di eventi. Inoltre, è possibile definire input di riferimento usati per inserire dati statici per aumentare i dati eventstream in tempo reale. Ad esempio, è possibile inserire un flusso di dati di osservazione meteo in tempo reale che includono un ID univoco per ogni stazione meteo e aumentare i dati con un input di riferimento statico che corrisponde all'ID della stazione meteo a un nome più significativo.

Risultati

Gli output sono destinazioni a cui vengono inviati i risultati dell'elaborazione del flusso. Analisi di flusso di Azure supporta un'ampia gamma di destinazioni di output, che possono essere utilizzate per:

  • Rendere persistenti i risultati per ulteriori analisi; ad esempio scrivendo in Azure Data Lake Storage Gen2, nel database SQL di Azure o in Azure Cosmos DB.
  • Analizzare i dati di log e telemetria su larga scala; ad esempio inviando risultati a Esplora dati di Azure.
  • Visualizzare una visualizzazione in tempo reale del flusso di dati; ad esempio aggiungendo dati a un set di dati in Microsoft Power BI.
  • Generare eventi filtrati o riepilogati per l'elaborazione downstream; ad esempio scrivendo risultati in Hub eventi di Azure.

Interrogazioni

La logica di trattamento del flusso è racchiusa in una query. Le query vengono definite usando istruzioni SQL che selezionano i campi dati FROM uno o più input, filtrano o aggregano i dati e scrivono i risultati in un output. La query seguente, ad esempio, filtra gli eventi dall'input degli eventi meteo per includere solo i dati degli eventi con un valore di temperatura minore di 0 e scrive i risultati nell'output di tempe fredde :

SELECT observation_time, weather_station, temperature
INTO cold-temps
FROM weather-events TIMESTAMP BY observation_time
WHERE temperature < 0

Viene creato automaticamente un campo denominato EventProcessedUtcTime per definire l'ora in cui l'evento viene elaborato dalla query di Analisi di flusso di Azure. Per impostazione predefinita, Stream Analytics usa l'ora in cui l'evento arriva all'input come timestamp oppure è possibile specificare in modo esplicito un altro campo DateTime usando la clausola TIMESTAMP BY, come illustrato in questo esempio. A seconda dell'input da cui vengono letti i dati di streaming, vengono creati automaticamente uno o più potenziali campi timestamp; ad esempio, quando si usa un input Event Hubs, viene generato un campo denominato EventEnqueuedUtcTime per registrare l'ora in cui l'evento è stato ricevuto nell'event hub.

Il campo usato come timestamp è importante quando si aggregano i dati in finestre temporali, come illustrato di seguito.

Editor no-code

Se si preferisce compilare il processo di elaborazione del flusso senza scrivere SQL, Analisi di flusso di Azure include un editor senza codice. È possibile accedervi dal portale di Analisi di flusso di Azure (anteprima) o dal portale di Hub eventi di Azure. L'editor no-code fornisce un'area di lavoro drag-and-drop in cui si connettono le origini di input, si aggiungono trasformazioni (incluse le aggregazioni della finestra temporale, ad esempio finestre tumbling, hopping e di sessione) e si configurano gli output, senza scrivere codice. Per ulteriori informazioni, vedere elaborazione di flussi senza codice in Analisi di flusso di Azure.