Uitvoer van Service Bus-wachtrijen van Azure Stream Analytics

Service Bus-wachtrijen bieden een FIFO-berichtbezorging aan een of meer concurrerende consumenten. Berichten worden meestal ontvangen en verwerkt door de ontvangers in de tijdelijke volgorde waarin ze aan de wachtrij zijn toegevoegd. Elk bericht wordt ontvangen en verwerkt door slechts één berichtgebruiker.

In compatibiliteitsniveau 1.2 maakt Azure Stream Analytics gebruik van het AMQP-berichtenprotocol (Advanced Message Queueing Protocol) om te schrijven naar Service Bus-wachtrijen en -onderwerpen. Met AMQP kunt u platformoverschrijdende, hybride toepassingen bouwen met behulp van een open standaardprotocol.

Uitvoerconfiguratie

De volgende tabel bevat de eigenschapsnamen en de bijbehorende beschrijvingen voor het maken van een wachtrijuitvoer.

Eigenschapsnaam Omschrijving
Uitvoeralias Een beschrijvende naam die wordt gebruikt in query's om de queryuitvoer naar deze Service Bus-wachtrij te leiden.
Service Bus-naamruimte Een container voor een set berichtenentiteiten.
Wachtrijnaam De naam van de Service Bus-wachtrij.
Naam van wachtrijbeleid Wanneer u een wachtrij maakt, kunt u ook beleid voor gedeelde toegang maken op het tabblad Configureren van de wachtrij. Elk beleid voor gedeelde toegang heeft een naam, machtigingen die u instelt en toegangssleutels.
Wachtrijbeleidssleutel De gedeelde toegangssleutel die wordt gebruikt om toegang tot de Service Bus-naamruimte te verifiëren.
Serialisatie-indeling voor gebeurtenissen De serialisatie-indeling voor uitvoergegevens. JSON, CSV en Avro worden ondersteund.
Codering Voor CSV en JSON is UTF-8 momenteel de enige ondersteunde coderingsindeling.
Scheidingsteken Alleen van toepassing op CSV-serialisatie. Stream Analytics ondersteunt een aantal algemene scheidingstekens voor het serialiseren van gegevens in CSV-indeling. Ondersteunde waarden zijn komma's, puntkomma's, spatiebalk, tabblad en verticale balk.
Format Alleen van toepassing op JSON-type. Regel gescheiden geeft aan dat de uitvoer is opgemaakt door elk JSON-object gescheiden door een nieuwe regel. Als u Regel gescheiden selecteert, wordt de JSON één object tegelijk gelezen. De hele inhoud zelf zou geen geldige JSON zijn. Matrix geeft aan dat de uitvoer is opgemaakt als een matrix van JSON-objecten.
Eigenschapskolommen Optioneel. Door komma's gescheiden kolommen die moeten worden gekoppeld als gebruikerseigenschappen van het uitgaande bericht in plaats van de nettolading. Meer informatie over deze functie vindt u in de sectie Aangepaste metagegevenseigenschappen voor uitvoer.
Kolommen voor systeemeigenschap Optioneel. Sleutel-waardeparen van systeemeigenschappen en bijbehorende kolomnamen die moeten worden gekoppeld aan het uitgaande bericht in plaats van de nettolading.

Het aantal partities is gebaseerd op de Service Bus-SKU en de grootte. Partitiesleutel is een unieke geheel getalwaarde voor elke partitie.

Partitionering

Partitionering wordt automatisch gekozen. Het aantal partities is gebaseerd op de Service Bus-SKU en de grootte. De partitiesleutel is een unieke geheel getalwaarde voor elke partitie. Het aantal schrijvers van uitvoer is hetzelfde als het aantal partities in de uitvoerwachtrij.

Grootte van uitvoerbatch

De maximale berichtgrootte is 256 kB per bericht voor de Standard-laag en 1 MB voor de Premium-laag. Zie Service Bus-limieten voor meer informatie. Gebruik één gebeurtenis per bericht om te optimaliseren.

Eigenschappen van aangepaste metagegevens voor uitvoer

U kunt querykolommen als gebruikerseigenschappen toevoegen aan uitgaande berichten. Deze kolommen gaan niet naar de nettolading. De eigenschappen zijn aanwezig in de vorm van een woordenlijst in het uitvoerbericht. De sleutel is de kolomnaam en waarde is de kolomwaarde in de woordenlijst met eigenschappen. Alle Stream Analytics-gegevenstypen worden ondersteund, behalve Record en Matrix.

In het volgende voorbeeld worden de velden DeviceId toegevoegd aan DeviceStatus de metagegevens.

  1. Gebruik de volgende query:

    select *, DeviceId, DeviceStatus from iotHubInput
    
  2. Configureren DeviceId,DeviceStatus als eigenschapskolommen in de uitvoer.

    Property columns

De volgende afbeelding is van de verwachte eigenschappen van het uitvoerbericht die zijn geïnspecteerd in EventHub met behulp van Service Bus Explorer.

Event custom properties

Systeemeigenschappen

U kunt querykolommen als systeemeigenschappen toevoegen aan uw uitgaande servicebuswachtrij of onderwerpberichten.

Deze kolommen gaan niet naar de nettolading in plaats daarvan dat de bijbehorende ServiceBusMessage-systeemeigenschap wordt gevuld met de querykolomwaarden. Deze systeemeigenschappen worden ondersteund - MessageId, ContentType, Label, PartitionKey, ReplyTo, SessionId, CorrelationId, To, ForcePersistence, TimeToLive, ScheduledEnqueueTimeUtc.

Tekenreekswaarden van deze kolommen worden geparseerd als bijbehorend type systeemeigenschapswaarde en eventuele parseerfouten worden behandeld als gegevensfouten. Dit veld wordt geleverd als een JSON-objectindeling. Details over deze indeling zijn als volgt:

  • Omgeven door accolades {}.
  • Geschreven in sleutel-/waardeparen.
  • Sleutels en waarden moeten tekenreeksen zijn.
  • De sleutel is de naam van de systeemeigenschap en de waarde is de naam van de querykolom.
  • Sleutels en waarden worden gescheiden door een dubbele punt.
  • Elk sleutel-waardepaar wordt gescheiden door een komma.

Dit laat zien hoe u deze eigenschap gebruikt :

  • Query: select *, column1, column2 INTO queueOutput FROM iotHubInput
  • Kolommen van systeemeigenschap: { "MessageId": "column1", "PartitionKey": "column2"}

Hiermee stelt u de berichten in de MessageId Service Bus-wachtrij met column1de waarden van de servicebus in en wordt PartitionKey ingesteld met column2de waarden.

Volgende stappen