Freigeben über


Ausgabe von Service Bus-Warteschlangen aus Azure Stream Analytics

Servicebuswarteschlangen bieten eine FIFO-Nachrichtenübermittlung an einen oder mehrere konkurrierende Verbraucher an. In der Regel werden Nachrichten von den Empfängern in der zeitlichen Reihenfolge empfangen und verarbeitet, in der sie der Warteschlange hinzugefügt wurden. Jede Nachricht wird von nur einem Nachrichtenanwender empfangen und verarbeitet.

In Kompatibilitätsebene 1.2 verwendet Azure Stream Analytics das AMQP-Messagingprotokoll (Advanced Message Queueing Protocol) zum Schreiben in Service Bus-Warteschlangen und -Themen. MIT AMQP können Sie plattformübergreifende Hybridanwendungen mit einem offenen Standardprotokoll erstellen.

Ausgabekonfiguration

In der folgenden Tabelle sind die Eigenschaftennamen und ihre Beschreibungen zum Erstellen einer Warteschlangenausgabe aufgeführt.

Eigenschaftsname Beschreibung
Ausgabealias Ein Anzeigename, der in Abfragen verwendet wird, um die Abfrageausgabe in diese ServiceBus-Warteschlange zu leiten.
Namensraum Service Bus Ein Container für eine Reihe von Nachrichtenentitäten.
Warteschlangename Der Name der Service Bus Warteschlange.
Warteschlangenrichtlinienname Wenn Sie eine Warteschlange erstellen, können Sie auch freigegebene Zugriffsrichtlinien auf der Registerkarte " Konfigurieren " der Warteschlange erstellen. Jede Richtlinie für den freigegebenen Zugriff verfügt über einen Namen, berechtigungen, die Sie festlegen, und Zugriffstasten.
Warteschlangenrichtlinienschlüssel Der freigegebene Zugriffsschlüssel, der zum Authentifizieren des Zugriffs auf den Service Bus-Namespace verwendet wird.
Ereignisserialisierungsformat Das Serialisierungsformat für Ausgabedaten. JSON, CSV und Avro werden unterstützt.
Codieren Für CSV und JSON ist UTF-8 derzeit das einzige unterstützte Codierungsformat.
Trennzeichen Gilt nur für die CSV-Serialisierung. Stream Analytics unterstützt eine Reihe gängiger Trennzeichen zum Serialisieren von Daten im CSV-Format. Unterstützte Werte sind Komma, Semikolon, Leerzeichen, Tabstopps und vertikale Balken.
Format Gilt nur für JSON-Typ. Zeile getrennt gibt an, dass die Ausgabe formatiert wird, indem jedes JSON-Objekt durch eine neue Zeile getrennt ist. Wenn Sie "Zeile getrennt" auswählen, wird der JSON-Code jeweils ein Objekt gelesen. Der gesamte Inhalt selbst wäre kein gültiger JSON-Code. Array gibt an, dass die Ausgabe als Array von JSON-Objekten formatiert ist.
Eigenschaftenspalten Dies ist optional. Durch Trennzeichen getrennte Spalten, die anstelle der Nutzlast als Benutzereigenschaften der ausgehenden Nachricht angefügt werden müssen. Weitere Informationen zu diesem Feature finden Sie im Abschnitt Benutzerdefinierte Metadateneigenschaften für die Ausgabe.
Systemeigenschaftenspalten Dies ist optional. Schlüsselwertpaare von Systemeigenschaften und entsprechenden Spaltennamen, die an die ausgehende Nachricht angefügt werden müssen, anstelle der Nutzlast.

Die Anzahl der Partitionen basiert auf der ServiceBus-SKU und -Größe. Der Partitionsschlüssel ist ein eindeutiger ganzzahliger Wert für jede Partition.

Partitionierung

Die Partitionierung wird automatisch ausgewählt. Die Anzahl der Partitionen basiert auf der ServiceBus-SKU und -Größe. Der Partitionsschlüssel ist ein eindeutiger ganzzahliger Wert für jede Partition. Die Anzahl der Ausgabeautoren entspricht der Anzahl der Partitionen in der Ausgabewarteschlange.

Ausgabebatchgröße

Die maximale Nachrichtengröße beträgt 256 KB pro Nachricht für die Standardebene und 1 MB für die Premium-Stufe. Weitere Informationen finden Sie unter ServiceBus-Grenzwerte. Verwenden Sie zum Optimieren ein einzelnes Ereignis pro Nachricht.

Benutzerdefinierte Metadateneigenschaften für die Ausgabe

Sie können Abfragespalten als Benutzereigenschaften an Ihre ausgehenden Nachrichten anfügen. Diese Spalten gehen nicht in die Nutzlast ein. Die Eigenschaften sind in Form eines Wörterbuchs in der Ausgabemeldung vorhanden. Schlüssel ist der Spaltenname und -wert der Spaltenwert im Eigenschaftenwörterbuch. Alle Stream Analytics-Datentypen werden mit Ausnahme von Record und Array unterstützt.

Im folgenden Beispiel werden die Felder DeviceId und DeviceStatus den Metadaten hinzugefügt.

  1. Verwenden Sie die folgende Abfrage:

    select *, DeviceId, DeviceStatus from iotHubInput
    
  2. Konfigurieren Sie DeviceId,DeviceStatus als Eigenschaftenspalten in der Ausgabe.

    Eigenschaftenspalten

Die folgende Abbildung enthält die erwarteten Ausgabenachrichteneigenschaften, die in EventHub mithilfe des Service Bus-Explorers überprüft werden.

Benutzerdefinierte Ereigniseigenschaften

Systemeigenschaften

Sie können Abfragespalten als Systemeigenschaften an Ihre ausgehende Servicebuswarteschlange oder Themennachrichten anfügen.

Diese Spalten gehen nicht in die Nutzlast, sondern die entsprechende ServiceBusMessage-Systemeigenschaft wird mit den Abfragespaltenwerten aufgefüllt. Diese Systemeigenschaften werden unterstützt - MessageId, ContentType, Label, PartitionKey, ReplyTo, SessionId, CorrelationId, To, ForcePersistence, TimeToLive, ScheduledEnqueueTimeUtc.

Zeichenfolgenwerte dieser Spalten werden als entsprechender Systemeigenschaftswerttyp analysiert, und alle Analysefehler werden als Datenfehler behandelt. Dieses Feld wird als JSON-Objektformat bereitgestellt. Details zu diesem Format sind wie folgt:

  • Umgeben von geschweiften Klammern {}.
  • Geschrieben in Schlüssel-Wert-Paaren.
  • Schlüssel und Werte müssen Zeichenfolgen sein.
  • Der Schlüssel ist der Name der Systemeigenschaft und der Wert ist der Name der Abfragespalte.
  • Schlüssel und Werte werden durch einen Doppelpunkt getrennt.
  • Jedes Schlüssel-Wert-Paar wird durch ein Komma getrennt.

Dies zeigt, wie Diese Eigenschaft verwendet wird –

  • Abfrage: select *, column1, column2 INTO queueOutput FROM iotHubInput
  • Systemeigenschaftenspalten: { "MessageId": "column1", "PartitionKey": "column2"}

Dadurch werden die Nachrichten für MessageId Servicebuswarteschlangen mit column1den Werten 's und PartitionKey' mit column2den Werten festgelegt.

Nächste Schritte