Trasmettere dati come input in Analisi di flussoStream data as input into Stream Analytics

Analisi di flusso si integra perfettamente con i flussi dei dati di Azure come input da tre tipi di risorse:Stream Analytics has first-class integration with Azure data streams as inputs from three kinds of resources:

Queste risorse di input possono trovarsi nella stessa sottoscrizione del processo di Analisi di flusso o in una sottoscrizione diversa.These input resources can live in the same Azure subscription as your Stream Analytics job or a different subscription.

CompressioneCompression

Analisi di flusso supporta la compressione tra tutte le origini di input del flusso dei dati.Stream Analytics supports compression across all data stream input sources. I tipi di riferimento attualmente supportati sono: Nessuno, GZip e Deflate.Currently supported reference types are: None, GZip, and Deflate compression. Il supporto per la compressione non è disponibile per i dati di riferimento.Support for compression is not available for reference data. Se il formato di input è dati Avro compressi, viene gestito in modo trasparente.If the input format is Avro data that is compressed, it's handled transparently. Non è necessario specificare il tipo di compressione con la serializzazione Avro.You don't need to specify compression type with Avro serialization.

Creare, modificare o testare gli inputCreate, edit, or test inputs

È possibile usare il portale di Azure per creare nuovi input e visualizzare o modificare gli input esistenti nel processo di streaming.You can use the Azure portal to create new inputs and view or edit existing inputs on your streaming job. È anche possibile testare le connessioni di input e testare le query dai dati di esempio.You can also test input connections and test queries from sample data. Quando si scrive una query, si elencano gli input nella clausola FROM.When you write a query, you will list the input in the FROM clause. È possibile ottenere l'elenco degli input disponibili dalla pagina Query del portale.You can get the list of available inputs from the Query page in the portal. Per usare più input, è possibile usare il comando JOIN per unirli oppure scrivere più query SELECT.If you wish to use multiple inputs, you can JOIN them or write multiple SELECT queries.

Trasmettere dati da Hub eventiStream data from Event Hubs

Hub eventi di Azure offre una tecnologia di inserimento altamente scalabile per eventi di pubblicazione-sottoscrizione.Azure Event Hubs provides highly scalable publish-subscribe event ingestors. 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.An event hub can collect millions of events per second, so that you can process and analyze the massive amounts of data produced by your connected devices and applications. Hub eventi e Analisi di flusso in combinazione offrono una soluzione end-to-end per l'analisi in tempo reale.Together, Event Hubs and Stream Analytics provide an end-to-end solution for real-time analytics. Hub eventi consente di inserire eventi in Azure in tempo reale e i processi di Analisi di flusso sono in grado di elaborare tali eventi in tempo reale.Event Hubs lets you feed events into Azure in real-time, and Stream Analytics jobs can process those events in real-time. È ad esempio possibile inviare clic sul Web, letture di sensori o eventi di log online agli hub eventiFor example, you can send web clicks, sensor readings, or online log events to Event Hubs. 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.You can then create Stream Analytics jobs to use Event Hubs as the input data streams for real-time filtering, aggregating, and correlation.

Il timestamp EventEnqueuedUtcTime si riferisce all'arrivo di un evento nell'hub eventi ed è il timestamp predefinito degli eventi provenienti da Hub eventi verso Analisi di flusso.EventEnqueuedUtcTime is the timestamp of an event's arrival in an event hub and is the default timestamp of events coming from Event Hubs to Stream Analytics. Per elaborare i dati come flusso usando un timestamp nel payload dell'evento, è necessario usare la parola chiave TIMESTAMP BY.To process the data as a stream using a timestamp in the event payload, you must use the TIMESTAMP BY keyword.

Gruppi di consumerConsumer groups

È necessario configurare uno specifico gruppo di consumer per ogni input degli hub eventi di Analisi di flusso.You should configure each Stream Analytics event hub input to have its own consumer group. Quando un processo contiene un self-join o ha più input, è possibile che alcuni input vengano letti da più lettori downstream.When a job contains a self-join or has multiple inputs, some inputs might be read by more than one reader downstream. Questa situazione influisce sul numero di lettori in un singolo gruppo di consumer.This situation impacts the number of readers in a single consumer group. 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.To avoid exceeding the Event Hubs limit of five readers per consumer group per partition, it's a best practice to designate a consumer group for each Stream Analytics job. È definito anche un limite di 20 gruppi di consumer per ogni hub eventi.There is also a limit of 20 consumer groups per event hub. Per altre informazioni, vedere Risolvere i problemi di Analisi di flusso di Azure con i ricevitori dell'hub eventi.For more information, see Troubleshoot Azure Stream Analytics with Event Hub receivers.

Trasmettere dati da Hub eventiStream data from Event Hubs

La tabella seguente descrive le proprietà disponibili nella pagina Nuovo input del portale di Azure per lo streaming dell'input dei dati da un hub eventi:The following table explains each property in the New input page in the Azure portal to stream data input from an event hub:

ProprietàProperty DESCRIZIONEDescription
Alias di inputInput alias Nome descrittivo che viene usato nella query del processo per fare riferimento a questo input.A friendly name that you use in the job's query to reference this input.
SottoscrizioneSubscription Scegliere la sottoscrizione in cui esiste la risorsa di Hub eventi.Choose the subscription in which the Event hub resource exists.
Spazio dei nomi dell'hub eventiEvent Hub namespace Lo spazio dei nomi dell'hub eventi è un contenitore per un set di entità di messaggistica.The Event Hub namespace is a container for a set of messaging entities. Quando si crea un nuovo hub eventi, viene creato anche lo spazio dei nomi.When you create a new event hub, you also create the namespace.
Nome hub eventiEvent Hub name Nome dell'hub eventi da usare come input.The name of the event hub to use as input.
Nome criteri hub eventiEvent Hub policy name Criteri di accesso condiviso che consentono di accedere all'hub eventi.The shared access policy that provides access to the Event Hub. Tutti i criteri di accesso condiviso dispongono di un nome e di autorizzazioni impostati, nonché di chiavi di accesso.Each shared access policy has a name, permissions that you set, and access keys. Il valore di questa opzione viene inserito automaticamente, a meno che non si selezioni l'opzione per specificare le impostazioni dell'hub eventi manualmente.This option is automatically populated, unless you select the option to provide the Event Hub settings manually.
Gruppo di consumer dell'hub eventi (consigliata)Event Hub consumer group (recommended) È vivamente consigliato usare un gruppo di consumer distinto per ogni processo di Analisi di flusso.It is highly recommended to use a distinct consumer group for each Stream Analytics job. Questa stringa identifica il gruppo di consumer da usare per l'inserimento di dati dall'hub eventi.This string identifies the consumer group to use to ingest data from the event hub. Se non è specificato alcun gruppo di consumer, il processo di Analisi di flusso usa il gruppo di consumer $Default.If no consumer group is specified, the Stream Analytics job uses the $Default consumer group.
Formato di serializzazione eventiEvent serialization format Formato di serializzazione (JSON, CSV o Avro) del flusso dei dati in ingresso.The serialization format (JSON, CSV, or Avro) of the incoming data stream. Assicurarsi che il formato JSON sia allineato alla specifica e non includa uno 0 iniziale per i numeri decimali.Ensure the JSON format aligns with the specification and doesn’t include leading 0 for decimal numbers.
EncodingEncoding L'unico formato di codifica attualmente supportato è UTF-8.UTF-8 is currently the only supported encoding format.
Tipo di compressione eventiEvent compression type Il tipo di compressione usato per leggere il flusso dei dati in ingresso, ad esempio Nessuno (predefinito), GZip o Deflate.The compression type used to read the incoming data stream, such as None (default), GZip, or Deflate.

Quando i dati provengono da un input del flusso di Hub eventi, è possibile accedere ai campi di metadati seguenti nella query di Analisi di flusso:When your data comes from an Event Hub stream input, you have access to the following metadata fields in your Stream Analytics query:

ProprietàProperty DESCRIZIONEDescription
EventProcessedUtcTimeEventProcessedUtcTime Data e ora di elaborazione dell'evento in Analisi di flusso.The date and time that the event was processed by Stream Analytics.
EventEnqueuedUtcTimeEventEnqueuedUtcTime Data e ora di ricezione dell'evento da parte di Hub eventi.The date and time that the event was received by Event Hubs.
PartitionIdPartitionId ID di partizione in base zero per l'adattatore di input.The zero-based partition ID for the input adapter.

Ad esempio, tramite questi campi, è possibile scrivere una query simile alla seguente:For example, using these fields, you can write a query like the following example:

SELECT
    EventProcessedUtcTime,
    EventEnqueuedUtcTime,
    PartitionId
FROM Input

Nota

Quando si usa Hub eventi come un endpoint delle route dell'hub IoT, è possibile accedere ai metadati dell'hub IoT usando la funzione GetMetadataPropertyValue.When using Event Hub as an endpoint for IoT Hub Routes, you can access to the IoT Hub medadata using the GetMetadataPropertyValue function.

Dati del flusso dall'hub IoTStream data from IoT Hub

Hub IoT di Azure è un servizio di inserimento di eventi di pubblicazione-sottoscrizione altamente scalabile ottimizzato per scenari IoT.Azure Iot Hub is a highly scalable publish-subscribe event ingestor optimized for IoT scenarios.

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.The default timestamp of events coming from an IoT Hub in Stream Analytics is the timestamp that the event arrived in the IoT Hub, which is EventEnqueuedUtcTime. Per elaborare i dati come flusso usando un timestamp nel payload dell'evento, è necessario usare la parola chiave TIMESTAMP BY.To process the data as a stream using a timestamp in the event payload, you must use the TIMESTAMP BY keyword.

Gruppi di consumerConsumer groups

È necessario configurare uno specifico gruppo di consumer per ogni input dell'hub IoT di Analisi di flusso.You should configure each Stream Analytics IoT Hub input to have its own consumer group. Quando un processo contiene un self-join o ha più input, è possibile che qualche input venga letto da più lettori downstream.When a job contains a self-join or when it has multiple inputs, some input might be read by more than one reader downstream. Questa situazione influisce sul numero di lettori in un singolo gruppo di consumer.This situation impacts the number of readers in a single consumer group. 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.To avoid exceeding the Azure IoT Hub limit of five readers per consumer group per partition, it's a best practice to designate a consumer group for each Stream Analytics job.

Configurare un hub IoT come input del flusso dei datiConfigure an IoT Hub as a data stream input

La tabella seguente contiene la descrizione delle proprietà disponibili nella pagina Nuovo input del portale di Azure quando si configura un hub IoT come input del flusso.The following table explains each property in the New input page in the Azure portal when you configure an IoT Hub as a stream input.

ProprietàProperty DESCRIZIONEDescription
Alias di inputInput alias Nome descrittivo che viene usato nella query del processo per fare riferimento a questo input.A friendly name that you use in the job's query to reference this input.
SottoscrizioneSubscription Scegliere la sottoscrizione in cui esiste la risorsa dell'hub IoT.Choose the subscription in which the IoT Hub resource exists.
Hub IoTIoT Hub Nome dell'hub IoT da usare come input.The name of the IoT Hub to use as input.
EndpointEndpoint Endpoint per l'hub IoT.The endpoint for the IoT Hub.
Nome criteri di accesso condivisoShared access policy name Criteri di accesso condiviso che consentono di accedere all'hub IoT.The shared access policy that provides access to the IoT Hub. Tutti i criteri di accesso condiviso dispongono di un nome e di autorizzazioni impostati, nonché di chiavi di accesso.Each shared access policy has a name, permissions that you set, and access keys.
Chiave criteri di accesso condivisoShared access policy key Chiave di accesso condiviso usata per autorizzare l'accesso all'hub IoT.The shared access key used to authorize access to the IoT Hub. Il valore di questa opzione viene inserito automaticamente, a meno che non si selezioni l'opzione per specificare le impostazioni dell'hub IoT manualmente.This option is automatically populated in unless you select the option to provide the Iot Hub settings manually.
Gruppo di consumerConsumer group È vivamente consigliato usare un gruppo di consumer differente per ogni processo di Analisi di flusso.It is highly recommended that you use a different consumer group for each Stream Analytics job. Il gruppo di consumer viene usato per inserire dati dall'hub IoT.The consumer group is used to ingest data from the IoT Hub. Analisi di flusso usa il gruppo di consumer $Default se non diversamente specificato.Stream Analytics uses the $Default consumer group unless you specify otherwise.
Formato di serializzazione eventiEvent serialization format Formato di serializzazione (JSON, CSV o Avro) del flusso dei dati in ingresso.The serialization format (JSON, CSV, or Avro) of the incoming data stream. Assicurarsi che il formato JSON sia allineato alla specifica e non includa uno 0 iniziale per i numeri decimali.Ensure the JSON format aligns with the specification and doesn’t include leading 0 for decimal numbers.
EncodingEncoding L'unico formato di codifica attualmente supportato è UTF-8.UTF-8 is currently the only supported encoding format.
Tipo di compressione eventiEvent compression type Il tipo di compressione usato per leggere il flusso dei dati in ingresso, ad esempio Nessuno (predefinito), GZip o Deflate.The compression type used to read the incoming data stream, such as None (default), GZip, or Deflate.

Quando si usano i dati di flusso provenienti da un hub IoT, è possibile accedere ai campi di metadati seguenti nella query di Analisi di flusso:When you use stream data from an IoT Hub, you have access to the following metadata fields in your Stream Analytics query:

ProprietàProperty DESCRIZIONEDescription
EventProcessedUtcTimeEventProcessedUtcTime Data e ora di elaborazione dell'evento.The date and time that the event was processed.
EventEnqueuedUtcTimeEventEnqueuedUtcTime Data e ora di ricezione dell'evento da parte dell'hub IoT.The date and time that the event was received by the IoT Hub.
PartitionIdPartitionId ID di partizione in base zero per l'adattatore di input.The zero-based partition ID for the input adapter.
IoTHub.MessageIdIoTHub.MessageId ID usato per correlare la comunicazione bidirezionale nell'hub IoT.An ID that's used to correlate two-way communication in IoT Hub.
IoTHub.CorrelationIdIoTHub.CorrelationId ID usato nelle risposte dei messaggi e nei feedback nell'hub IoT.An ID that's used in message responses and feedback in IoT Hub.
IoTHub.ConnectionDeviceIdIoTHub.ConnectionDeviceId ID di autenticazione usato per inviare questo messaggio.The authentication ID used to send this message. Questo valore viene riportato nei messaggi servicebound dall'hub IoT.This value is stamped on servicebound messages by the IoT Hub.
IoTHub.ConnectionDeviceGenerationIdIoTHub.ConnectionDeviceGenerationId ID di generazione del dispositivo autenticato che è stato usato per inviare questo messaggio.The generation ID of the authenticated device that was used to send this message. Questo valore viene riportato nei messaggi servicebound dall'hub IoT.This value is stamped on servicebound messages by the IoT Hub.
IoTHub.EnqueuedTimeIoTHub.EnqueuedTime Ora in cui il messaggio è stato ricevuto dall'hub IoT.The time when the message was received by the IoT Hub.
IoTHub.StreamIdIoTHub.StreamId Proprietà di evento personalizzato aggiunta dal dispositivo mittente.A custom event property added by the sender device.

Trasmettere dati dall'archiviazione BLOBStream data from Blob storage

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.For scenarios with large quantities of unstructured data to store in the cloud, Azure Blob storage offers a cost-effective and scalable solution. I dati nell'archiviazione BLOB vengono generalmente considerati come dati inattivi, tuttavia i dati BLOB possono essere elaborati come flusso dei dati da Analisi di flusso.Data in Blob storage is usually considered data at rest; however, blob data can be processed as a data stream by Stream Analytics.

L'elaborazione dei log è uno scenario di uso comune per l'uso degli input di archiviazione BLOB con Analisi di flusso.Log processing is a commonly used scenario for using Blob storage inputs with Stream Analytics. In questo scenario i file di dati di telemetria sono stati acquisiti da un sistema e devono essere analizzati ed elaborati per estrarre dati significativi.In this scenario, telemetry data files have been captured from a system and need to be parsed and processed to extract meaningful data.

Il timestamp predefinito degli eventi dell'archiviazione BLOB in Analisi di flusso è il timestamp dell'ultima modifica del BLOB, ovvero BlobLastModifiedUtcTime.The default timestamp of Blob storage events in Stream Analytics is the timestamp that the blob was last modified, which is BlobLastModifiedUtcTime. Per elaborare i dati come flusso usando un timestamp nel payload dell'evento, è necessario usare la parola chiave TIMESTAMP BY.To process the data as a stream using a timestamp in the event payload, you must use the TIMESTAMP BY keyword.

Gli input in formato CSV richiedono una riga di intestazione per definire i campi per il set di dati e tutti i campi della riga di intestazione devono essere univoci.CSV-formatted inputs require a header row to define fields for the data set, and all header row fields must be unique.

Analisi di flusso attualmente non supporta la deserializzazione di messaggi AVRO generati dall'endpoint personalizzato del contenitore di Archiviazione di Azure dell'hub IoT o di acquisizione di Hub eventi.Stream Analytics currently does not support deserializing AVRO messages generated by Event Hub capture or IoT Hub Azure Storage Container custom endpoint.

Nota

Analisi di flusso di Azure non supporta l'aggiunta di contenuto a un file di BLOB esistente.Stream Analytics does not support adding content to an existing blob file. 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.Stream Analytics will view each file only once, and any changes that occur in the file after the job has read the data are not processed. 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.Best practice is to upload all the data for a blob file at once and then add additional newer events to a different, new blob file.

Configurare l'archiviazione BLOB come input del flussoConfigure Blob storage as a stream input

La tabella seguente contiene la descrizione delle proprietà disponibili nella pagina Nuovo input del portale di Azure quando si configura l'archiviazione BLOB come input del flusso.The following table explains each property in the New input page in the Azure portal when you configure Blob storage as a stream input.

ProprietàProperty DESCRIZIONEDescription
Alias di inputInput alias Nome descrittivo che viene usato nella query del processo per fare riferimento a questo input.A friendly name that you use in the job's query to reference this input.
SottoscrizioneSubscription Scegliere la sottoscrizione in cui esiste la risorsa dell'hub IoT.Choose the subscription in which the IoT Hub resource exists.
Account di archiviazioneStorage account Nome dell'account di archiviazione in cui si trovano i file BLOB.The name of the storage account where the blob files are located.
Chiave dell'account di archiviazioneStorage account key Chiave privata associata all'account di archiviazione.The secret key associated with the storage account. Il valore di questa opzione viene inserito automaticamente, a meno che non si selezioni l'opzione per specificare le impostazioni dell'archiviazione BLOB manualmente.This option is automatically populated in unless you select the option to provide the Blob storage settings manually.
ContenitoreContainer Contenitore per l'input del servizio BLOB.The container for the blob input. I contenitori forniscono un raggruppamento logico per gli oggetti BLOB archiviati nel servizio BLOB di Microsoft Azure.Containers provide a logical grouping for blobs stored in the Microsoft Azure Blob service. Quando si carica un oggetto BLOB nel servizio Archiviazione BLOB di Azure, è necessario specificare un contenitore per tale BLOB.When you upload a blob to the Azure Blob storage service, you must specify a container for that blob. È possibile scegliere il contenitore Usa esistente o Crea nuovo per creare un nuovo contenitore.You can choose either Use existing container or Create new to have a new container created.
Modello percorso (facoltativa)Path pattern (optional) Percorso del file usato per trovare gli oggetti BLOB nel contenitore specificato.The file path used to locate the blobs within the specified container. All'interno del percorso è possibile specificare una o più istanze delle tre variabili seguenti: {date}, {time} o {partition}Within the path, you can specify one or more instances of the following three variables: {date}, {time}, or {partition}

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

Esempio 2: cluster1/logs/{date}Example 2: cluster1/logs/{date}

Il carattere * non è un valore consentito per il prefisso del percorso.The * character is not an allowed value for the path prefix. Sono consentiti solo Caratteri BLOB di Azure validi.Only valid Azure blob characters are allowed. Non includere i nomi di contenitori o di file.No not include container names or file names.
Formato data (facoltativa)Date format (optional) Formato della data in base al quale vengono organizzati i file, se si usa la variabile date nel percorso.If you use the date variable in the path, the date format in which the files are organized. Esempio: YYYY/MM/DDExample: YYYY/MM/DD
Formato ora (facoltativa)Time format (optional) Formato dell'ora in base al quale vengono organizzati i file, se si usa la variabile time nel percorso.If you use the time variable in the path, the time format in which the files are organized. Al momento, l'unico valore supportato è HH per le ore.Currently the only supported value is HH for hours.
Formato di serializzazione eventiEvent serialization format Formato di serializzazione (JSON, CSV o Avro) del flusso dei dati in ingresso.The serialization format (JSON, CSV, or Avro) of the incoming data stream. Assicurarsi che il formato JSON sia allineato alla specifica e non includa uno 0 iniziale per i numeri decimali.Ensure the JSON format aligns with the specification and doesn’t include leading 0 for decimal numbers.
EncodingEncoding Per CSV e JSON, l'unico formato di codifica attualmente supportato è UTF-8.For CSV and JSON, UTF-8 is currently the only supported encoding format.
CompressioneCompression Il tipo di compressione usato per leggere il flusso dei dati in ingresso, ad esempio Nessuno (predefinito), GZip o Deflate.The compression type used to read the incoming data stream, such as None (default), GZip, or Deflate.

Quando i dati provengono da un'origine di archiviazione BLOB, è possibile accedere ai campi di metadati seguenti nella query di Analisi di flusso:When your data comes from a Blob storage source, you have access to the following metadata fields in your Stream Analytics query:

ProprietàProperty DESCRIZIONEDescription
BlobNameBlobName Nome del BLOB di input da cui proviene l'evento.The name of the input blob that the event came from.
EventProcessedUtcTimeEventProcessedUtcTime Data e ora di elaborazione dell'evento in Analisi di flusso.The date and time that the event was processed by Stream Analytics.
BlobLastModifiedUtcTimeBlobLastModifiedUtcTime Data e ora dell'ultima modifica del BLOB.The date and time that the blob was last modified.
PartitionIdPartitionId ID di partizione in base zero per l'adattatore di input.The zero-based partition ID for the input adapter.

Ad esempio, tramite questi campi, è possibile scrivere una query simile alla seguente:For example, using these fields, you can write a query like the following example:

SELECT
    BlobName,
    EventProcessedUtcTime,
    BlobLastModifiedUtcTime
FROM Input

Passaggi successiviNext steps