2016-05-23 10 views
0

Der Fall: Wir haben eine 1-Tages-Aggregation Fenster, die den Gesamtwert von Event-Hub summieren (1, 2, 3 ... jede Minute einen Wert senden), setzen wir die Ausgabe zu einem Blob namens 1dayresult. Jetzt wollen wir die Blob-Daten als eine weitere 1-Wochen-Aggregationseingabe erhalten, jede Woche wollen wir die Daten aus dem Blob holen und berechnen, also können wir das 1-Tag-Ergebnis-Blob als Eingabe für die 1-Wochen-Aggregation setzen? Wir wissen, dass wir die Fenstereinheit auf 7 Tage setzen können, aber wir denken, dass dies die Performance verlangsamen wird, denn wenn wir das 1 Tag Ergebnis Blob als Eingabe verwenden, brauchen wir nur 7 Werte, aber wenn wir das 7 Tage Fenster verwenden, werden wir es bekommen mehr als 7 * 24 * 60 Werte und dann die Berechnung. Wir wollen auch eine Monat Aggregation haben, aber die maximale Größe des Fensters beträgt 7 Tage. So, wie man es erreicht?Wie mache ich den Ausgang als weiteren Eingang?

Antwort

1

Sie können die WITH-Anweisung verwenden, um mehrere Unterabfragen miteinander zu "verketten", wobei die nächste Unterabfrage die Ausgabe der vorherigen als Eingabe verwenden kann. Werfen Sie einen Blick auf diese doc

Wie Sie jedoch angemerkt haben, kann es manchmal effizienter sein, Zwischenergebnisse im Blob-Speicher oder einem anderen Event-Hub zu erhalten. Sie können denselben Speicherort sowohl als Eingabe als auch als Ausgabe definieren, und eine Unterabfrage kann ausgegeben werden, während eine andere liest.

Die maximale Größe von Fenstern in Azure Stream Analytics beträgt in der Tat 7 Tage. Für größere Fensterberechnungen mit größeren Mengen von historischen Daten ist es möglicherweise besser, ein Produkt wie Azure Data Factory zu verwenden.

Verwandte Themen