public class TumblingWindowAssigner extends WindowAssigner<TimeWindow> implements InternalTimeWindowAssigner
WindowAssigner
that windows elements into fixed-size windows based on the timestamp of
the elements. Windows cannot overlap.Modifier | Constructor and Description |
---|---|
protected |
TumblingWindowAssigner(long size,
long offset,
boolean isEventTime) |
Modifier and Type | Method and Description |
---|---|
Collection<TimeWindow> |
assignWindows(RowData element,
long timestamp)
Given the timestamp and element, returns the set of windows into which it should be placed.
|
TypeSerializer<TimeWindow> |
getWindowSerializer(ExecutionConfig executionConfig)
Returns a
TypeSerializer for serializing windows that are assigned by this WindowAssigner . |
boolean |
isEventTime()
Returns
true if elements are assigned to windows based on event time, false
otherwise. |
static TumblingWindowAssigner |
of(java.time.Duration size)
Creates a new
TumblingWindowAssigner WindowAssigner that assigns elements to
time windows based on the element timestamp. |
String |
toString() |
TumblingWindowAssigner |
withEventTime() |
TumblingWindowAssigner |
withOffset(java.time.Duration offset)
Creates a new
TumblingWindowAssigner WindowAssigner that assigns elements to
time windows based on the element timestamp and offset. |
TumblingWindowAssigner |
withProcessingTime() |
open
protected TumblingWindowAssigner(long size, long offset, boolean isEventTime)
public Collection<TimeWindow> assignWindows(RowData element, long timestamp)
WindowAssigner
assignWindows
in class WindowAssigner<TimeWindow>
element
- The element to which windows should be assigned.timestamp
- The timestamp of the element when WindowAssigner.isEventTime()
returns true, or
the current system time when WindowAssigner.isEventTime()
returns false.public TypeSerializer<TimeWindow> getWindowSerializer(ExecutionConfig executionConfig)
WindowAssigner
TypeSerializer
for serializing windows that are assigned by this WindowAssigner
.getWindowSerializer
in class WindowAssigner<TimeWindow>
public boolean isEventTime()
WindowAssigner
true
if elements are assigned to windows based on event time, false
otherwise.isEventTime
in class WindowAssigner<TimeWindow>
public String toString()
toString
in class WindowAssigner<TimeWindow>
public static TumblingWindowAssigner of(java.time.Duration size)
TumblingWindowAssigner
WindowAssigner
that assigns elements to
time windows based on the element timestamp.size
- The size of the generated windows.public TumblingWindowAssigner withOffset(java.time.Duration offset)
TumblingWindowAssigner
WindowAssigner
that assigns elements to
time windows based on the element timestamp and offset.
For example, if you want window a stream by hour,but window begins at the 15th minutes of
each hour, you can use of(Time.hours(1),Time.minutes(15))
,then you will get time
windows start at 0:15:00,1:15:00,2:15:00,etc.
Rather than that,if you are living in somewhere which is not using UTC±00:00 time, such as
China which is using UTC+08:00,and you want a time window with size of one day, and window
begins at every 00:00:00 of local time,you may use of(Time.days(1),Time.hours(-8))
.
The parameter of offset is Time.hours(-8))
since UTC+08:00 is 8 hours earlier than
UTC time.
offset
- The offset which window start would be shifted by.public TumblingWindowAssigner withEventTime()
withEventTime
in interface InternalTimeWindowAssigner
public TumblingWindowAssigner withProcessingTime()
withProcessingTime
in interface InternalTimeWindowAssigner
Copyright © 2014–2021 The Apache Software Foundation. All rights reserved.