2017-09-12 2 views
1

Wenn mein Verständnis stimmt, wird nur die Instanz eines Stream-Analysejobs gleichzeitig ausgeführt. Und nachdem es mit dem aktuellen Satz von Ereignissen fertig ist, wird der nächste Satz von Ereignissen vom Ereignis-Hub gezogen. Also wenn es sequenziell ist.So erreichen Sie die Parallelität in Azure Stream Analytics

Wenn die Verarbeitung 20 Millisekunden dauert, müssen andere Ereignisse auf diese vielen Millisekunden warten. Ich habe mich nur gefragt, ob diese sequentielle Operation in der Produktionslast ausreicht?

Ich kenne PartitionBy-Klausel, aber da wir IoT-Hub verwenden, können wir PartitionId/PartitionKey nicht verwenden.

Vielen Dank im Voraus

Antwort

1

Alle Nachrichten mit dem gleichen deviceId auf derselben PartitionID gesendet. Wenn Ihre Abfrage immer nur eine deviceId betrachtet, können Sie weiterhin partitionId verwenden und jede Partition unabhängig voneinander verarbeiten. Beispiele hierfür sind Abfragen mit Auswahl, Nur Abfragen filtern und Aggregate, die im Schlüssel eine Gerätekennung enthalten.

Wenn Ihre Abfragen mehrere Geräte-IDs gleichzeitig anzeigen (z. B. die Gesamtzahl der Nachrichten in einem Fenster), haben Sie zwei Möglichkeiten. Sie können partielle Aggregate zuerst parallel ausführen und sie dann kombinieren, um globale Aggregate zu erhalten. Oder verwenden Sie einfach eine Abfrage ohne Partition nach.

Auch Azure stream analytics erhält keine Nachrichten nacheinander die Art von Verzögerungen, die Sie in der Frage erwähnt.

Verwandte Themen