Class TumblingEventTimeWindows

java.lang.Object
org.apache.flink.streaming.api.windowing.assigners.WindowAssigner<Object,TimeWindow>
org.apache.flink.streaming.api.windowing.assigners.TumblingEventTimeWindows
All Implemented Interfaces:
Serializable

@PublicEvolving public class TumblingEventTimeWindows extends WindowAssigner<Object,TimeWindow>
A WindowAssigner that windows elements into windows based on the timestamp of the elements. Windows cannot overlap.

For example, in order to window into windows of 1 minute:


 DataStream<Tuple2<String, Integer>> in = ...;
 KeyedStream<Tuple2<String, Integer>, String> keyed = in.keyBy(...);
 WindowedStream<Tuple2<String, Integer>, String, TimeWindow> windowed =
   keyed.window(TumblingEventTimeWindows.of(Duration.ofMinutes(1)));
 
See Also:
  • Constructor Details

    • TumblingEventTimeWindows

      protected TumblingEventTimeWindows(long size, long offset, WindowStagger windowStagger)
  • Method Details

    • assignWindows

      public Collection<TimeWindow> assignWindows(Object element, long timestamp, WindowAssigner.WindowAssignerContext context)
      Description copied from class: WindowAssigner
      Returns a Collection of windows that should be assigned to the element.
      Specified by:
      assignWindows in class WindowAssigner<Object,TimeWindow>
      Parameters:
      element - The element to which windows should be assigned.
      timestamp - The timestamp of the element.
      context - The WindowAssigner.WindowAssignerContext in which the assigner operates.
    • getDefaultTrigger

      public Trigger<Object,TimeWindow> getDefaultTrigger()
      Description copied from class: WindowAssigner
      Returns the default trigger associated with this WindowAssigner.

      1. If you override getDefaultTrigger(), the getDefaultTrigger() will be invoked and the getDefaultTrigger(StreamExecutionEnvironment env) won't be invoked. 2. If you don't override getDefaultTrigger(), the getDefaultTrigger(StreamExecutionEnvironment env) will be invoked in the default implementation of the getDefaultTrigger().

      Specified by:
      getDefaultTrigger in class WindowAssigner<Object,TimeWindow>
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • of

      public static TumblingEventTimeWindows of(Duration size)
      Creates a new TumblingEventTimeWindows WindowAssigner that assigns elements to time windows based on the element timestamp.
      Parameters:
      size - The size of the generated windows.
      Returns:
      The time policy.
    • of

      public static TumblingEventTimeWindows of(Duration size, Duration offset)
      Creates a new TumblingEventTimeWindows 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(Duration.ofHours(1), Duration.ofMinutes(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(Duration.ofDays(1), Duration.ofHours(-8)). The parameter of offset is Duration.ofHours(-8)) since UTC+08:00 is 8 hours earlier than UTC time.

      Parameters:
      size - The size of the generated windows.
      offset - The offset which window start would be shifted by.
    • of

      @PublicEvolving public static TumblingEventTimeWindows of(Duration size, Duration offset, WindowStagger windowStagger)
      Creates a new TumblingEventTimeWindows WindowAssigner that assigns elements to time windows based on the element timestamp, offset and a staggering offset, depending on the staggering policy.
      Parameters:
      size - The size of the generated windows.
      offset - The globalOffset which window start would be shifted by.
      windowStagger - The utility that produces staggering offset in runtime.
    • getWindowSerializer

      public org.apache.flink.api.common.typeutils.TypeSerializer<TimeWindow> getWindowSerializer(org.apache.flink.api.common.ExecutionConfig executionConfig)
      Description copied from class: WindowAssigner
      Returns a TypeSerializer for serializing windows that are assigned by this WindowAssigner.
      Specified by:
      getWindowSerializer in class WindowAssigner<Object,TimeWindow>
    • isEventTime

      public boolean isEventTime()
      Description copied from class: WindowAssigner
      Returns true if elements are assigned to windows based on event time, false otherwise.
      Specified by:
      isEventTime in class WindowAssigner<Object,TimeWindow>