Connessione dati: informazioni sugli input del flusso di dati dagli eventi ad Analisi di flusso

La connessione dati a un processo di Analisi di flusso è un flusso di eventi da un'origine dati, definito input del processo. Analisi di flusso si integra perfettamente con le origini del flusso dei dati di Azure, come Hub eventi di Azure, Hub IoT di Azure e Archiviazione BLOB di Azure. Queste origini di input possono appartenere alla stessa sottoscrizione di Azure del processo di analisi o a un'altra sottoscrizione.

Tipi di input di dati: flusso dei dati e dati di riferimento

Quando sono inviati tramite push a un'origine, i dati vengono utilizzati dal processo di Analisi di flusso ed elaborati in tempo reale. Gli input si dividono in due tipi: input del flusso dei dati e input dei dati di riferimento.

Input del flusso dei dati

Un flusso dei dati è una sequenza non associata di eventi che accadono nel tempo. I processi di Analisi di flusso devono includere almeno un input del flusso dei dati. Gli hub eventi, l'hub IoT e l'archiviazione BLOB sono supportati come origini di input del flusso dei dati. Gli hub eventi vengono usati per raccogliere flussi di eventi da più dispositivi e servizi, ad esempio i feed attività dei social media, le informazioni sulle quotazioni azionarie o i dati di sensori. Gli hub IoT sono ottimizzati per raccogliere dati dai dispositivi connessi in scenari di Internet delle cose (IoT). L'archiviazione BLOB può essere usata come origine di input per l'inserimento di dati in blocco come flusso, ad esempio i file di log.

Dati di riferimento

Analisi di flusso supporta anche l'input noto come dati di riferimento. Si tratta di dati ausiliari che sono statici o cambiano lentamente e che di solito sono usati per eseguire correlazioni e ricerche. È ad esempio possibile unire i dati nell'input del flusso dei dati con quelli inclusi nei dati di riferimento, proprio come si esegue un join SQL per cercare valori statici. L'archiviazione BLOB di Azure è attualmente l'unica origine di input supportata per i dati di riferimento. I BLOB di origine dei dati di riferimento non possono avere una dimensione superiore a 100 MB.

Per informazioni su come creare input dei dati di riferimento, vedere Uso dei dati di riferimento.

Creare un input del flusso dei dati dagli hub eventi

Hub eventi di Azure offre una tecnologia di inserimento altamente scalabile per eventi di pubblicazione-sottoscrizione. Un hub eventi può raccogliere milioni di eventi al secondo per consentire di elaborare e analizzare enormi quantità di dati generati dalle applicazioni e dai dispositivi connessi. Hub eventi e Analisi di flusso offrono una soluzione end-to-end per l'analisi in tempo reale. Gli hub eventi consentono di inserire gli eventi in Azure tramite feed e i processi di Analisi di flusso sono in grado di elaborare tali eventi. Entrambe le operazioni vengono eseguite in tempo reale. È ad esempio possibile inviare clic sul Web, letture di sensori o eventi di log online agli hub eventi e quindi creare processi di Analisi di flusso per usare gli hub eventi come flussi dei dati di input per il filtraggio, l'aggregazione e la correlazione in tempo reale.

Il timestamp predefinito degli eventi provenienti dagli hub eventi in Analisi di flusso è il timestamp in cui l'evento è giunto nell'hub, ovvero EventEnqueuedUtcTime. Per elaborare i dati come flusso usando un timestamp nel payload dell'evento, è necessario usare la parola chiave TIMESTAMP BY.

Gruppi di consumer

È necessario configurare uno specifico gruppo di consumer per ogni input degli hub eventi di Analisi di flusso. Quando un processo contiene un self-join o ha più input, è possibile che qualche input venga letto da più lettori downstream. Questa situazione influisce sul numero di lettori in un singolo gruppo di consumer. Per evitare di superare il limite di cinque lettori imposto da Hub eventi per ogni gruppo di consumer di ciascuna partizione, è consigliabile definire un gruppo di consumer per ogni processo di Analisi di flusso. È definito anche un limite di 20 gruppi di consumer per ogni hub eventi. Per altre informazioni, vedere Guida alla programmazione di Hub eventi.

Configurare un hub eventi come input del flusso dei dati

La tabella seguente contiene la descrizione delle proprietà disponibili nel pannello Nuovo input del portale di Azure quando si configura un hub eventi come input.

Proprietà Descrizione
Alias di input Nome descrittivo che viene usato nella query del processo per fare riferimento a questo input.
Spazio dei nomi del bus di servizio Spazio dei nomi del bus di servizio di Azure che viene usato come contenitore per un set di entità di messaggistica. Quando si crea un nuovo hub eventi, viene creato anche uno spazio dei nomi del bus di servizio.
Nome hub eventi Nome dell'hub eventi da usare come input.
Nome criteri hub eventi Criteri di accesso condiviso che consentono di accedere all'hub eventi. Tutti i criteri di accesso condiviso dispongono di un nome e di autorizzazioni impostati, nonché di chiavi di accesso.
Gruppo di consumer dell'hub eventi (facoltativa) Gruppo di consumer da usare per l'inserimento di dati dall'hub eventi. Se non è specificato alcun gruppo di consumer, il processo di Analisi di flusso usa quello predefinito. È consigliabile usare un gruppo di consumer distinto per ogni processo di Analisi di flusso.
Formato di serializzazione eventi Formato di serializzazione (JSON, CSV o Avro) del flusso dei dati in ingresso.
Codifica L'unico formato di codifica attualmente supportato è UTF-8.

Quando i dati provengono da un hub eventi, è possibile accedere ai campi di metadati seguenti nella query di Analisi di flusso:

Proprietà Descrizione
EventProcessedUtcTime Data e ora di elaborazione dell'evento in Analisi di flusso.
EventEnqueuedUtcTime Data e ora di ricezione dell'evento da parte di Hub eventi.
PartitionId ID di partizione in base zero per l'adattatore di input.

Ad esempio, tramite questi campi, è possibile scrivere una query simile alla seguente:

SELECT
    EventProcessedUtcTime,
    EventEnqueuedUtcTime,
    PartitionId
FROM Input

Creare un input del flusso dei dati dall'hub IoT

Hub IoT di Azure è un servizio di inserimento di eventi di pubblicazione-sottoscrizione altamente scalabile ottimizzato per scenari IoT.

Il timestamp predefinito degli eventi provenienti da un hub IoT in Analisi di flusso è il timestamp in cui l'evento è giunto nell'hub IoT, ovvero EventEnqueuedUtcTime. Per elaborare i dati come flusso usando un timestamp nel payload dell'evento, è necessario usare la parola chiave TIMESTAMP BY.

Nota

Solo i messaggi inviati con una proprietà DeviceClient possono essere elaborati.

Gruppi di consumer

È necessario configurare uno specifico gruppo di consumer per ogni input dell'hub IoT di Analisi di flusso. Quando un processo contiene un self-join o ha più input, è possibile che qualche input venga letto da più lettori downstream. Questa situazione influisce sul numero di lettori in un singolo gruppo di consumer. Per evitare di superare il limite di cinque lettori imposto da Hub IoT di Azure per ogni gruppo di consumer di ciascuna partizione, è consigliabile definire un gruppo di consumer per ogni processo di Analisi di flusso.

Configurare un hub IoT come input del flusso dei dati

La tabella seguente contiene la descrizione delle proprietà disponibili nel pannello Nuovo input del portale di Azure quando si configura un hub IoT come input.

Proprietà Descrizione
Alias di input Nome descrittivo che viene usato nella query del processo per fare riferimento a questo input.
Hub IoT Nome dell'hub IoT da usare come input.
Endpoint Endpoint per l'hub IoT.
Nome criteri di accesso condiviso Criteri di accesso condiviso che consentono di accedere all'hub IoT. Tutti i criteri di accesso condiviso dispongono di un nome e di autorizzazioni impostati, nonché di chiavi di accesso.
Chiave criteri di accesso condiviso Chiave di accesso condiviso usata per autorizzare l'accesso all'hub IoT.
Gruppo di consumer (facoltativa) Gruppo di consumer da usare per inserire dati dall'hub IoT. Se non è specificato alcun gruppo di consumer, un processo di Analisi di flusso usa quello predefinito. È consigliabile usare un gruppo di consumer diverso per ogni processo di Analisi di flusso.
Formato di serializzazione eventi Formato di serializzazione (JSON, CSV o Avro) del flusso dei dati in ingresso.
Codifica L'unico formato di codifica attualmente supportato è UTF-8.

Quando i dati provengono da un hub IoT, è possibile accedere ai campi di metadati seguenti nella query di Analisi di flusso:

Proprietà Descrizione
EventProcessedUtcTime Data e ora di elaborazione dell'evento.
EventEnqueuedUtcTime Data e ora di ricezione dell'evento da parte dell'hub IoT.
PartitionId ID di partizione in base zero per l'adattatore di input.
IoTHub.MessageId ID usato per correlare la comunicazione bidirezionale nell'hub IoT.
IoTHub.CorrelationId ID usato nelle risposte dei messaggi e nei feedback nell'hub IoT.
IoTHub.ConnectionDeviceId ID di autenticazione usato per inviare questo messaggio. Questo valore viene riportato nei messaggi servicebound dall'hub IoT.
IoTHub.ConnectionDeviceGenerationId ID di generazione del dispositivo autenticato che è stato usato per inviare questo messaggio. Questo valore viene riportato nei messaggi servicebound dall'hub IoT.
IoTHub.EnqueuedTime Ora in cui il messaggio è stato ricevuto dall'hub IoT.
IoTHub.StreamId Proprietà di evento personalizzato aggiunta dal dispositivo mittente.

Creare un input del flusso dei dati dall'archiviazione BLOB

Per gli scenari con grandi quantità di dati non strutturati da archiviare nel cloud, l'archiviazione BLOB di Azure offre una soluzione scalabile e conveniente. I dati nell'archiviazione BLOB sono in genere considerati dati inattivi, ma possono essere elaborati come flusso dei dati da Analisi di flusso. Uno scenario tipico per gli input di archiviazione BLOB con Analisi di flusso consiste nell'elaborazione dei log. In questo scenario i dati di telemetria sono stati acquisiti da un sistema e devono essere analizzati ed elaborati per estrarre dati significativi.

Il timestamp predefinito degli eventi dell'archiviazione BLOB in Analisi di flusso è il timestamp dell'ultima modifica del BLOB, ovvero BlobLastModifiedUtcTime. Per elaborare i dati come flusso usando un timestamp nel payload dell'evento, è necessario usare la parola chiave TIMESTAMP BY.

Gli input in formato CSV richiedono una riga di intestazione per definire i campi per il set di dati. Inoltre, tutti i campi delle righe di intestazione devono essere univoci.

Nota

Analisi di flusso di Azure non supporta l'aggiunta di contenuto a un file di BLOB esistente. Analisi di flusso di Azure visualizza ogni file una sola volta e tutte le modifiche apportate al file dopo che il processo ha letto i dati non vengono elaborate. La procedura consigliata consiste nel caricare simultaneamente tutti i dati per un file di BLOB e quindi aggiungere gli altri eventi più nuovi in un nuovo file di BLOB diverso.

Configurare l'archiviazione BLOB come input del flusso dei dati

La tabella seguente contiene la descrizione delle proprietà disponibili nel pannello Nuovo input del portale di Azure quando si configura l'archiviazione BLOB come input.

Proprietà Descrizione
Alias di input Nome descrittivo che viene usato nella query del processo per fare riferimento a questo input.
Account di archiviazione Nome dell'account di archiviazione in cui si trovano i file BLOB.
Chiave dell'account di archiviazione Chiave privata associata all'account di archiviazione.
Contenitore Contenitore per l'input del servizio BLOB. I contenitori forniscono un raggruppamento logico per gli oggetti BLOB archiviati nel servizio BLOB di Microsoft Azure. Quando si carica un oggetto BLOB nel servizio Archiviazione BLOB di Azure, è necessario specificare un contenitore per tale BLOB.
Modello percorso (facoltativa) Percorso del file usato per trovare gli oggetti BLOB nel contenitore specificato. All'interno del percorso è possibile specificare una o più istanze delle tre variabili seguenti: {date}, {time} o {partition}

Esempio 1: cluster1/logs/{date}/{time}/{partition}

Esempio 2: cluster1/logs/{date}

Il carattere * non è un valore consentito per il prefisso del percorso. Sono consentiti solo Caratteri BLOB di Azure validi.
Formato data (facoltativa) Formato della data in base al quale vengono organizzati i file, se si usa la variabile date nel percorso. Esempio: YYYY/MM/DD
Formato ora (facoltativa) Formato dell'ora in base al quale vengono organizzati i file, se si usa la variabile time nel percorso. L'unico valore attualmente supportato è HH.
Formato di serializzazione eventi Formato di serializzazione (JSON, CSV o Avro) per i flussi dei dati in ingresso.
Codifica Per CSV e JSON, l'unico formato di codifica attualmente supportato è UTF-8.

Quando i dati provengono da un'origine di archiviazione BLOB, è possibile accedere ai campi di metadati seguenti nella query di Analisi di flusso:

Proprietà Descrizione
BlobName Nome del BLOB di input da cui proviene l'evento.
EventProcessedUtcTime Data e ora di elaborazione dell'evento in Analisi di flusso.
BlobLastModifiedUtcTime Data e ora dell'ultima modifica del BLOB.
PartitionId ID di partizione in base zero per l'adattatore di input.

Ad esempio, tramite questi campi, è possibile scrivere una query simile alla seguente:

SELECT
    BlobName,
    EventProcessedUtcTime,
    BlobLastModifiedUtcTime
FROM Input

Ottenere aiuto

Per ulteriore assistenza, provare il Forum di Analisi dei flussi di Azure.

Passaggi successivi

Sono state apprese le opzioni di connessione dei dati in Azure per i processi di Analisi di flusso. Per altre informazioni su Analisi di flusso, vedere: