Class TumblingWindowAssigner
- java.lang.Object
-
- org.apache.flink.table.runtime.operators.window.assigners.WindowAssigner<TimeWindow>
-
- org.apache.flink.table.runtime.operators.window.assigners.TumblingWindowAssigner
-
- All Implemented Interfaces:
Serializable,InternalTimeWindowAssigner
public class TumblingWindowAssigner extends WindowAssigner<TimeWindow> implements InternalTimeWindowAssigner
AWindowAssignerthat windows elements into fixed-size windows based on the timestamp of the elements. Windows cannot overlap.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedTumblingWindowAssigner(long size, long offset, boolean isEventTime)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Collection<TimeWindow>assignWindows(org.apache.flink.table.data.RowData element, long timestamp)Given the timestamp and element, returns the set of windows into which it should be placed.org.apache.flink.api.common.typeutils.TypeSerializer<TimeWindow>getWindowSerializer(org.apache.flink.api.common.ExecutionConfig executionConfig)Returns aTypeSerializerfor serializing windows that are assigned by thisWindowAssigner.booleanisEventTime()Returnstrueif elements are assigned to windows based on event time,falseotherwise.static TumblingWindowAssignerof(java.time.Duration size)Creates a newTumblingWindowAssignerWindowAssignerthat assigns elements to time windows based on the element timestamp.StringtoString()TumblingWindowAssignerwithEventTime()TumblingWindowAssignerwithOffset(java.time.Duration offset)Creates a newTumblingWindowAssignerWindowAssignerthat assigns elements to time windows based on the element timestamp and offset.TumblingWindowAssignerwithProcessingTime()-
Methods inherited from class org.apache.flink.table.runtime.operators.window.assigners.WindowAssigner
open
-
-
-
-
Method Detail
-
assignWindows
public Collection<TimeWindow> assignWindows(org.apache.flink.table.data.RowData element, long timestamp)
Description copied from class:WindowAssignerGiven the timestamp and element, returns the set of windows into which it should be placed.- Specified by:
assignWindowsin classWindowAssigner<TimeWindow>- Parameters:
element- The element to which windows should be assigned.timestamp- The timestamp of the element whenWindowAssigner.isEventTime()returns true, or the current system time whenWindowAssigner.isEventTime()returns false. The timestamp value is mapping to UTC milliseconds for splitting windows simply.
-
getWindowSerializer
public org.apache.flink.api.common.typeutils.TypeSerializer<TimeWindow> getWindowSerializer(org.apache.flink.api.common.ExecutionConfig executionConfig)
Description copied from class:WindowAssignerReturns aTypeSerializerfor serializing windows that are assigned by thisWindowAssigner.- Specified by:
getWindowSerializerin classWindowAssigner<TimeWindow>
-
isEventTime
public boolean isEventTime()
Description copied from class:WindowAssignerReturnstrueif elements are assigned to windows based on event time,falseotherwise.- Specified by:
isEventTimein classWindowAssigner<TimeWindow>
-
toString
public String toString()
- Specified by:
toStringin classWindowAssigner<TimeWindow>
-
of
public static TumblingWindowAssigner of(java.time.Duration size)
Creates a newTumblingWindowAssignerWindowAssignerthat assigns elements to time windows based on the element timestamp.- Parameters:
size- The size of the generated windows.- Returns:
- The time policy.
-
withOffset
public TumblingWindowAssigner withOffset(java.time.Duration offset)
Creates a newTumblingWindowAssignerWindowAssignerthat 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 GMT+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 isTime.hours(-8))since UTC+08:00 is 8 hours earlier than UTC time.- Parameters:
offset- The offset which window start would be shifted by.- Returns:
- The time policy.
-
withEventTime
public TumblingWindowAssigner withEventTime()
- Specified by:
withEventTimein interfaceInternalTimeWindowAssigner- Returns:
- an InternalTimeWindowAssigner which in event time mode.
-
withProcessingTime
public TumblingWindowAssigner withProcessingTime()
- Specified by:
withProcessingTimein interfaceInternalTimeWindowAssigner- Returns:
- an InternalTimeWindowAssigner which in processing time mode.
-
-