Freigeben über


Fensterfunktionen (Azure Stream Analytics)

In Anwendungen, die Echtzeitereignisse verarbeiten, ist es üblich, setbasierte Berechnungen (Aggregation) oder andere Vorgänge über Teilmengen von Ereignissen durchzuführen, die innerhalb eines bestimmten Zeitraums liegen. Da das Konzept der Zeit eine grundlegende Notwendigkeit für komplexe Ereignisverarbeitungssysteme ist, müssen Sie über eine einfache Möglichkeit verfügen, mit der Zeitkomponente der Abfragelogik im System zu arbeiten. In Azure Stream Analytics werden diese Teilmengen von Ereignissen über Fenster definiert, um Gruppierungen nach Zeit darzustellen. In diesem Artikel werden Fenster und deren Definition beschrieben, die unterstützten Fenstertypen identifiziert und erläutert, wie Sie Fenster mit verschiedenen Operatoren verwenden können.

Grundlegendes zu Fenstern

Ein Fenster enthält Ereignisdaten entlang einer Zeitachse und ermöglicht es Ihnen, verschiedene Operationen mit den Ereignissen innerhalb dieses Fensters auszuführen. Angenommen, Sie möchten die Werte von Nutzlastfeldern in einem bestimmten Fenster addieren, wie in der folgenden Abbildung dargestellt.

Datenstromanalyse-Abfragesprache – rollierendes Fenster

Jeder Fenstervorgang gibt ein Ereignis am Ende des Fensters aus. Die Fenster von Azure Stream Analytics werden zur Startzeit des Fensters geöffnet und zur Endzeit des Fensters geschlossen. Wenn Sie beispielsweise ein 5-Minuten-Fenster von 12:00 Uhr bis 12:05 Uhr haben, sind alle Ereignisse mit einem Zeitstempel größer als 12:00 Uhr und bis einschließlich Zeitstempel 12:05 Uhr in diesem Fenster enthalten. Die Ausgabe des Fensters ist ein einzelnes Ereignis basierend auf der Aggregatfunktion, die mit einem Zeitstempel gleich der Endzeit des Fensters verwendet wird. Der Zeitstempel des Ausgabeereignisses des Fensters kann in der SELECT-Anweisung mithilfe der System.Timestamp()-Eigenschaft mithilfe eines Alias projiziert werden. Alle Fenster richten sich automatisch auf die nullte Stunde aus. Beispielsweise richtet sich ein fünfminütiges rollierendes Fenster an (12:00-12:05] , (12:05-12:10], ... usw. aus.

Nach einem Fenstervorgang unterscheidet sich der Zeitstempel eines Ereignisses vom ursprünglichen Ereigniszeit-Attribut (entweder die Ankunftszeit oder die spalte, die mit TIMESTAMP BY verwendet wird). Auf den aktuellen, aktualisierten Zeitstempel eines Ereignisses kann immer mit system.timestamp()zugegriffen werden.

Hinweis

Alle Fenster sollte in einer GROUP BY-Klausel verwendet werden.

Es gibt fünf Arten von Fenstern:

  1. Rollierendes Fenster (Azure Stream Analytics)

  2. Springendes Fenster (Azure Stream Analytics)

  3. Gleitendes Fenster (Azure Stream Analytics)

  4. Sitzungsfenster (Azure Stream Analytics)

  5. Momentaufnahmefenster (Azure Stream Analytics)

Die maximale Größe des Fensters in allen Fällen beträgt 7 Tage.

Sie können über mehrere Zeitfenster in derselben GROUP BY-Anweisung mithilfe der Windows-Funktion (Azure Stream Analytics) aggregieren.

Weitere Informationen

Integrierte Funktionen (Azure Stream Analytics)
Aggregatfunktionen (Azure Stream Analytics)
Analytische Funktionen (Azure Stream Analytics)
Arrayfunktionen (Stream Analytics)
Konvertierungsfunktionen (Azure Stream Analytics)
Datums- und Uhrzeitfunktionen (Azure Stream Analytics)
Datensatzfunktionen (Azure Stream Analytics)