TumblingWindow(TPayload)-Methode (CepStream(TPayload), TimeSpan, DateTime, WindowInputPolicy, HoppingWindowOutputPolicy)
Transformiert einen Datenstrom in einen Fensterdatenstrom, wobei jedes Element ein CepWindow ist. Ein rollierendes Fenster ist eine besondere Art von springendem Fenster, bei dem die Fenstergröße und die Abschnittgröße gleich sind. Sie können auch eine Ausrichtungszeit als Referenz für den Startzeitpunkt des Fensters angeben.
Namespace: Microsoft.ComplexEventProcessing.Linq
Assembly: Microsoft.ComplexEventProcessing (in Microsoft.ComplexEventProcessing.dll)
Syntax
public static CepWindowStream<CepWindow<TPayload>> TumblingWindow<TPayload>(
this CepStream<TPayload> source,
TimeSpan windowSize,
DateTime alignment,
WindowInputPolicy inputPolicy,
HoppingWindowOutputPolicy outputPolicy
)
Typparameter
- TPayload
Der Typ der Eingabeereignisnutzlast.
Parameter
- source
Typ: Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TPayload> ) > ) >
Der CepStream, auf den der TumblingWindow-Vorgang angewendet wird.
- windowSize
Typ: System. . :: . .TimeSpan
Die Länge und Abschnittgröße des Fensters.
- alignment
Typ: System. . :: . .DateTime
Der Bezugszeitpunkt zum Ausrichten von Fensterstartzeiten.
- inputPolicy
Typ: Microsoft.ComplexEventProcessing.Linq. . :: . .WindowInputPolicy
Gibt an, wie Ereignisse geändert werden, bevor sie in den Fenstervorgang eingefügt werden.
- outputPolicy
Typ: Microsoft.ComplexEventProcessing.Linq. . :: . .HoppingWindowOutputPolicy
Gibt an, wie Ausgabeereignisse des Fenstervorgangs geändert werden.
Rückgabewert
Typ: Microsoft.ComplexEventProcessing.Linq. . :: . .CepWindowStream< (Of < ( <'CepWindow< (Of < ( <'TPayload> ) > ) >> ) > ) >
Ein Fensterdatenstrom, auf den Aggregate, Rangfolgen oder benutzerdefinierte Vorgänge angewendet werden können.
Hinweis zur Verwendung
In Visual Basic und C# können Sie die Methode als Instanzenmethode für jedes Objekt vom Typ CepStream< (Of < ( <'TPayload> ) > ) > aufrufen. Wenn Sie Instanzmethodensyntax zum Aufruf dieser Methode verwenden, vernachlässigen Sie den ersten Parameter. Weitere Informationen finden Sie unter https://msdn.microsoft.com/de-de/library/bb384936(v=sql.105) oder https://msdn.microsoft.com/de-de/library/bb383977(v=sql.105).
Hinweise
Weitere Informationen finden Sie unter Verwenden von Ereignisfenstern und Springende Fenster.
Beispiele
var tumblingAgg = from w in inputStream.TumblingWindow(TimeSpan.FromHours(1),
HoppingWindowOutputPolicy.ClipToWindowEnd)
select new { sum = w.Sum(e => e.i) };
Die Ausrichtung des springenden (oder rollierenden) Fensters ist ein optionaler Parameter. Im folgenden Beispiel beginnt und endet jedes Fenster um 09:00 Uhr UTC.
var snapshotAgg = from w in inputStream.TumblingWindow(
TimeSpan.FromHours(24),
new DateTime(TimeSpan.FromHours(9).Ticks, DateTimeKind.Utc),
HoppingWindowOutputPolicy.ClipToWindowEnd)
select new { sum = w.Sum(e => e.i) };