Einführung in die Stream Analytics-Windowing-FunktionenIntroduction to Stream Analytics windowing functions

Bei Szenarien mit „Time Streaming“ ist das Durchführen von Vorgängen für die Daten in temporalen Fenstern ein häufiges Muster.In time-streaming scenarios, performing operations on the data contained in temporal windows is a common pattern. Stream Analytics verfügt über native Unterstützung für Windowing-Funktionen, sodass Entwickler komplexe Streaming-Verarbeitungsaufträge mit sehr geringem Aufwand erstellen können.Stream Analytics has native support for windowing functions, enabling developers to author complex stream processing jobs with minimal effort.

Sie können zwischen vier Arten von temporalen Fenstern wählen: Rollierend, Springend, Gleitend und Sitzung.There are four kinds of temporal windows to choose from: Tumbling, Hopping, Sliding, and Session windows. Sie verwenden die Fensterfunktionen in der GROUP BY-Klausel der Abfragesyntax in Ihren Stream Analytics-Aufträgen.You use the window functions in the GROUP BY clause of the query syntax in your Stream Analytics jobs.

Für alle Windowing-Vorgänge werden am Ende des Fensters Ergebnisse ausgegeben.All the windowing operations output results at the end of the window. Die Ausgabe des Fensters ist ein einzelnes Ereignis, das auf der verwendeten Aggregatfunktion basiert.The output of the window will be single event based on the aggregate function used. Das Ausgabeereignis verfügt über den Zeitstempel vom Ende des Fensters, und alle Fensterfunktionen werden mit einer festen Länge definiert.The output event will have the time stamp of the end of the window and all window functions are defined with a fixed length.

Stream Analytics-Fensterfunktionen – Konzepte

Rollierendes FensterTumbling window

Rollierende Fensterfunktionen werden verwendet, um einen Datenstrom in einzelne Zeitsegmente zu unterteilen und dafür eine Funktion durchzuführen, z.B. wie im Beispiel unten.Tumbling window functions are used to segment a data stream into distinct time segments and perform a function against them, such as the example below. Die wichtigsten Unterscheidungsmerkmale eines rollierenden Fensters sind, dass sie wiederholt werden, sich nicht überlappen und ein Ereignis nicht zu mehr als einem rollierenden Fenster gehören kann.The key differentiators of a Tumbling window are that they repeat, do not overlap, and an event cannot belong to more than one tumbling window.

Stream Analytics – Rollierendes Fenster

Springendes FensterHopping window

Bei den Funktionen von springenden Fenstern wird für einen festen Zeitraum ein Sprung nach vorn durchgeführt.Hopping window functions hop forward in time by a fixed period. Sie können sich dies wie rollierende Fenster vorstellen, die sich überlappen können, damit die Ereignisse mehr als einem Resultset für springende Fenster angehören können.It may be easy to think of them as Tumbling windows that can overlap, so events can belong to more than one Hopping window result set. Um ein springendes Fenster an ein rollierendes Fenster anzugleichen, passen Sie die Sprunggröße an die Fenstergröße an.To make a Hopping window the same as a Tumbling window, specify the hop size to be the same as the window size.

Stream Analytics – Springendes Fenster

Gleitendes FensterSliding window

Bei Schiebefensterfunktionen wird im Gegensatz zu rollierenden oder springenden Fenstern nur dann ein Ereignis produziert, wenn ein Ereignis eintritt.Sliding window functions, unlike Tumbling or Hopping windows, produce an output only when an event occurs. Jedes Fenster verfügt über mindestens ein Ereignis, und das Fenster wird fortlaufend um „€“ (Epsilon) nach vorn verschoben.Every window will have at least one event and the window continuously moves forward by an € (epsilon). Wie bei springenden Fenstern auch, können Ereignisse zu mehr als einem gleitenden Fenster gehören.Like hopping windows, events can belong to more than one sliding window.

Stream Analytics – Gleitendes Fenster

Sitzungsfenster (Vorschau)Session window (Preview)

Mit Funktionen für Sitzungsfenster werden Ereignisse gruppiert, die zu ähnlichen Zeiten eingehen. Zeiträume, in denen keine Daten anfallen, werden herausgefiltert.Session window functions group events that arrive at similar times, filtering out periods of time where there is no data. Es werden drei Hauptparameter verwendet: Timeout, maximale Dauer und Partitionierungsschlüssel (optional).It has three main parameters: timeout, maximum duration, and partitioning key (optional).

Stream Analytics – Sitzungsfenster

Ein Sitzungsfenster beginnt, wenn das erste Ereignis eintritt.A session window begins when the first event occurs. Wenn ein anderes Ereignis innerhalb des angegebenen Zeitlimits für das letzte erfasste Ereignis eintritt, wird das Fenster erweitert, damit es das neue Ereignis enthält.If another event occurs within the specified timeout from the last ingested event, then the window extends to include the new event. Falls innerhalb des Zeitlimits keine Ereignisse eintreten, wird das Fenster zum Zeitlimit-Endzeitpunkt geschlossen.Otherwise if no events occur within the timeout, then the window is closed at the timeout.

Wenn innerhalb des angegebenen Zeitraums weiter Ereignisse eintreten, wird das Sitzungsfenster so lange erweitert, bis die maximale Dauer erreicht ist.If events keep occurring within the specified timeout, the session window will keep extending until maximum duration is reached. Die Überprüfungsintervalle für die maximale Dauer werden auf die gleiche Größe wie die angegebene maximale Dauer festgelegt.The maximum duration checking intervals are set to be the same size as the specified max duration. Wenn die maximale Dauer beispielsweise 10 beträgt, werden die Überprüfungen, ob für das Fenster die maximale Dauer überschritten wird, nach dem Muster t = 0, 10, 20, 30 usw. durchgeführt.For example, if the max duration is 10, then the checks on if the window exceed maximum duration will happen at t = 0, 10, 20, 30, etc.

Wenn ein Partitionsschlüssel angegeben wird, werden die Ereignisse nach dem Schlüssel gruppiert, und das Sitzungsfenster wird auf jede Gruppe separat angewendet.When a partition key is provided, the events are grouped together by the key and session window is applied to each group independently. Diese Partitionierung ist für Fälle nützlich, in denen Sie unterschiedliche Sitzungsfenster für unterschiedliche Benutzer oder Geräte benötigen.This partitioning is useful for cases where you need different session windows for different users or devices.

Nächste SchritteNext steps