bus di servizio output delle code da Analisi di flusso di Azure

Le code del bus di servizio consentono un recapito dei messaggi di tipo FIFO a uno o più consumer concorrenti. In genere, i messaggi vengono ricevuti ed elaborati dai destinatari nell'ordine temporale in cui sono stati aggiunti alla coda. Ogni messaggio viene ricevuto ed elaborato da un solo consumer di messaggi.

Nel livello di compatibilità 1.2, Analisi di flusso di Azure usa il protocollo di messaggistica Advanced Message Queueing Protocol (AMQP) per la scrittura in code e argomenti del bus di servizio. AMQP consente di creare applicazioni ibride multipiattaforma usando un protocollo aperto standard.

Configurazione di output

La tabella seguente elenca i nomi delle proprietà e la relativa descrizione per la creazione di un output della coda.

Nome proprietà Descrizione
Alias di output Nome descrittivo usato nelle query per indirizzare l'output delle query a questa coda del bus di servizio.
Spazio dei nomi bus di servizio Contenitore per un set di entità di messaggistica.
Nome coda Nome della coda del bus di servizio.
Nome criteri coda Quando si crea una coda, è anche possibile creare criteri di accesso condiviso nella scheda Configura della coda. Ogni criterio di accesso condiviso ha un nome, autorizzazioni impostate e chiavi di accesso.
Chiave criteri coda Chiave di accesso condiviso usata per autenticare l'accesso allo spazio dei nomi del bus di servizio di Azure.
Formato di serializzazione eventi Formato di serializzazione per i dati di output. Sono supportati i formati JSON, CSV e Avro.
Codifica Al momento UTF-8 è l'unico formato di codifica supportato per i formati CSV e JSON.
Delimitatore Applicabile solo per la serializzazione CSV. Analisi di flusso supporta una serie di delimitatori comuni per la serializzazione dei dati in formato CSV. I valori supportati sono virgola, punto e virgola, spazio, tabulazione e barra verticale.
Formattazione Applicabile solo per il tipo JSON. Separato da righe specifica che l'output viene formattato separando ciascun oggetto JSON con una nuova riga. Se si seleziona Separato da righe, JSON viene letto un oggetto alla volta. L'intero contenuto non è di per sé un oggetto JSON valido. Matrice specifica che l'output viene formattato come matrice di oggetti JSON.
Colonne delle proprietà (Facoltativo). Colonne delimitate da virgole che devono essere associate come proprietà utente del messaggio in uscita anziché del payload. Altre informazioni su questa funzionalità sono illustrate nella sezione Proprietà dei metadati personalizzati per l'output.
Colonne delle proprietà di sistema (Facoltativo). Coppie chiave-valore delle proprietà di sistema e nomi di colonna corrispondenti che devono essere allegati al messaggio in uscita anziché al payload.

Il numero di partizioni è basato sullo SKU e sulle dimensioni del bus di servizio. La chiave di partizione è un valore intero univoco per ogni partizione.

Partizionamento

Il partizionamento viene scelto automaticamente. Il numero di partizioni è basato sullo SKU e sulle dimensioni del bus di servizio. La chiave di partizione è un valore intero univoco per ogni partizione. Il numero di writer di output corrisponde al numero di partizioni nella coda di output.

Dimensione del batch di output

La dimensione massima del messaggio è di 256 KB per messaggio per il livello Standard e 1 MB per il livello Premium. Per altre informazioni, vedere limiti bus di servizio. Per ottimizzare, usare un singolo evento per messaggio.

Proprietà dei metadati personalizzati per l'output

È possibile aggiungere colonne di query come proprietà utente ai messaggi in uscita. Queste colonne non vengono inserite nel payload. Le proprietà sono presenti sotto forma di dizionario nel messaggio di output. Key è il nome della colonna e value è il valore della colonna nel dizionario delle proprietà. Sono supportati tutti i tipi di dati di Analisi di flusso, ad eccezione di record e matrice.

Nell'esempio seguente i campi DeviceId e DeviceStatus vengono aggiunti ai metadati.

  1. Usa la query seguente:

    select *, DeviceId, DeviceStatus from iotHubInput
    
  2. Configurare DeviceId,DeviceStatus come colonne delle proprietà nell'output.

    Property columns

L'immagine seguente è costituita dalle proprietà del messaggio di output previste esaminate in EventHub usando bus di servizio Explorer.

Event custom properties

Proprietà di sistema

È possibile aggiungere colonne di query come proprietà di sistema ai messaggi in uscita di code o argomenti del bus di servizio.

Queste colonne non vengono inserite nel payload, ma la proprietà di sistema ServiceBusMessage corrispondente viene popolata con i valori della colonna di query. Sono supportate le proprietà di sistema seguenti: MessageId, ContentType, Label, PartitionKey, ReplyTo, SessionId, CorrelationId, To, ForcePersistence, TimeToLive, ScheduledEnqueueTimeUtc.

I valori stringa di queste colonne vengono analizzati come tipo di valore della proprietà di sistema corrispondente e gli eventuali errori di analisi vengono considerati come errori di dati. Questo campo viene fornito come formato oggetto JSON. I dettagli su questo formato sono i seguenti:

  • Racchiuso tra parentesi graffe {}.
  • Scritto in coppie chiave/valore.
  • Chiavi e valori devono essere stringhe.
  • Key è il nome della proprietà di sistema e value è il nome della colonna della query.
  • Chiavi e valori sono separati da due punti.
  • Ogni coppia chiave/valore è separata da una virgola.

Di seguito, viene illustrato come usare questa proprietà:

  • Query: select *, column1, column2 INTO queueOutput FROM iotHubInput
  • Colonne delle proprietà di sistema: { "MessageId": "column1", "PartitionKey": "column2"}

Viene impostato MessageId nei messaggi della coda del bus di servizio con i valori di column1 e PartitionKey viene impostato con i valori di column2.

Passaggi successivi