Freigeben über


Event Hubs-Ausgabe aus Azure Stream Analytics

Der Azure Event Hubs-Dienst ist ein hochgradig skalierbares Veröffentlichungsabonnentereignis ingestor. Es kann Millionen von Ereignissen pro Sekunde sammeln. Eine Verwendung eines Event Hubs als Ausgabe ist, wenn die Ausgabe eines Stream Analytics-Auftrags zur Eingabe eines anderen Streamingauftrags wird. Informationen zur maximalen Nachrichtengröße und Zur Optimierung der Batchgröße finden Sie im Abschnitt zur Batchgröße der Ausgabe .

Ausgabekonfiguration

Die folgende Tabelle enthält die Parameter, die zum Konfigurieren von Datenströmen aus Event Hubs als Ausgabe erforderlich sind.

Eigenschaftsname Beschreibung
Ausgabealias Ein Anzeigename, der in Abfragen verwendet wird, um die Abfrageausgabe an diesen Event Hub zu leiten.
Event Hub-Namespace Ein Container für eine Reihe von Nachrichtenentitäten. Wenn Sie einen neuen Event Hub erstellt haben, haben Sie auch einen Event Hub-Namespace erstellt.
Event Hub-Name Der Name der Event Hub-Ausgabe.
Name der Event Hub-Richtlinie Die Richtlinie für den freigegebenen Zugriff, die Sie auf der Registerkarte " Konfigurieren " des Ereignishubs erstellen können. Jede Richtlinie für den freigegebenen Zugriff verfügt über einen Namen, berechtigungen, die Sie festlegen, und Zugriffstasten.
Event Hub-Richtlinienschlüssel Der gemeinsam genutzte Zugriffsschlüssel, der zum Authentifizieren des Zugriffs auf den Event Hub-Namespace verwendet wird.
Partitionsschlüsselspalte Dies ist optional. Eine Spalte, die den Partitionsschlüssel für die Event Hub-Ausgabe enthält.
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 DIE JSON-Serialisierung. 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.

Partitionierung

Die Partitionierung variiert je nach Partitionsausrichtung. Wenn der Partitionsschlüssel für die Event Hub-Ausgabe gleich an dem vorgelagerten (vorherigen) Abfrageschritt ausgerichtet ist, entspricht die Anzahl der Autoren der Anzahl der Partitionen in der Event Hub-Ausgabe. Jeder Writer verwendet die EventHubSender-Klasse , um Ereignisse an die spezifische Partition zu senden. Wenn der Partitionsschlüssel für die Event Hub-Ausgabe nicht am upstream (vorherigen) Abfrageschritt ausgerichtet ist, entspricht die Anzahl der Autoren der Anzahl der Partitionen in diesem vorherigen Schritt. Jeder Writer verwendet die SendBatchAsync-Klasse in EventHubClient , um Ereignisse an alle Ausgabepartitionen zu senden.

Ausgabebatchgröße

Die maximale Nachrichtengröße beträgt 256 KB oder 1 MB pro Nachricht. Weitere Informationen finden Sie unter Event Hubs-Grenzwerte. Wenn die Eingabe-/Ausgabepartitionierung nicht ausgerichtet ist, wird jedes Ereignis einzeln in EventData einem Batch mit bis zu der maximalen Nachrichtengröße verpackt und gesendet. Dies geschieht auch, wenn benutzerdefinierte Metadateneigenschaften verwendet werden. Wenn die Eingabe-/Ausgabepartitionierung ausgerichtet ist, werden mehrere Ereignisse in eine einzelne EventData Instanz verpackt, bis zur maximalen Nachrichtengröße und gesendet.

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 einem Event Hub mithilfe des Service Bus Explorers überprüft werden.

Benutzerdefinierte Ereigniseigenschaften

Genau nach Lieferung

Genau einmal, sobald die Übermittlung in der Event Hubs-Ausgabe standardmäßig unterstützt wird. Unabhängig von Ihrer Eingabe garantiert Stream Analytics keinen Datenverlust oder keine Duplikate in einer Event Hubs-Ausgabe, bei allen vom Benutzer initiierten Neustarts von der letzten Ausgabezeit, hindern Sie Duplikate daran, erstellt zu werden. Dies vereinfacht die Streamingpipeline erheblich, da sie keine Deduplizierungslogik überwachen, implementieren und beheben muss.

Nächste Schritte