Class DynamicProcessingTimeSessionWindows<T>

  • Type Parameters:
    T - The type of the input elements
    All Implemented Interfaces:
    Serializable

    @PublicEvolving
    public class DynamicProcessingTimeSessionWindows<T>
    extends org.apache.flink.streaming.api.windowing.assigners.MergingWindowAssigner<T,​org.apache.flink.streaming.api.windowing.windows.TimeWindow>
    A WindowAssigner that windows elements into sessions based on the current processing time. Windows cannot overlap.

    For example, in order to window into windows with a dynamic time gap:

    
     DataStream<Tuple2<String, Integer>> in = ...;
     KeyedStream<String, Tuple2<String, Integer>> keyed = in.keyBy(...);
     WindowedStream<Tuple2<String, Integer>, String, TimeWindows> windowed =
       keyed.window(DynamicProcessingTimeSessionWindows.withDynamicGap({@link SessionWindowTimeGapExtractor }));
     
    See Also:
    Serialized Form
    • Constructor Detail

      • DynamicProcessingTimeSessionWindows

        protected DynamicProcessingTimeSessionWindows​(SessionWindowTimeGapExtractor<T> sessionWindowTimeGapExtractor)
    • Method Detail

      • assignWindows

        public Collection<org.apache.flink.streaming.api.windowing.windows.TimeWindow> assignWindows​(T element,
                                                                                                     long timestamp,
                                                                                                     org.apache.flink.streaming.api.windowing.assigners.WindowAssigner.WindowAssignerContext context)
        Specified by:
        assignWindows in class org.apache.flink.streaming.api.windowing.assigners.WindowAssigner<T,​org.apache.flink.streaming.api.windowing.windows.TimeWindow>
      • getDefaultTrigger

        public org.apache.flink.streaming.api.windowing.triggers.Trigger<T,​org.apache.flink.streaming.api.windowing.windows.TimeWindow> getDefaultTrigger()
        Specified by:
        getDefaultTrigger in class org.apache.flink.streaming.api.windowing.assigners.WindowAssigner<T,​org.apache.flink.streaming.api.windowing.windows.TimeWindow>
      • withDynamicGap

        public static <T> DynamicProcessingTimeSessionWindows<T> withDynamicGap​(SessionWindowTimeGapExtractor<T> sessionWindowTimeGapExtractor)
        Creates a new SessionWindows WindowAssigner that assigns elements to sessions based on the element timestamp.
        Parameters:
        sessionWindowTimeGapExtractor - The extractor to use to extract the time gap from the input elements
        Returns:
        The policy.
      • getWindowSerializer

        public org.apache.flink.api.common.typeutils.TypeSerializer<org.apache.flink.streaming.api.windowing.windows.TimeWindow> getWindowSerializer​(org.apache.flink.api.common.ExecutionConfig executionConfig)
        Specified by:
        getWindowSerializer in class org.apache.flink.streaming.api.windowing.assigners.WindowAssigner<T,​org.apache.flink.streaming.api.windowing.windows.TimeWindow>
      • isEventTime

        public boolean isEventTime()
        Specified by:
        isEventTime in class org.apache.flink.streaming.api.windowing.assigners.WindowAssigner<T,​org.apache.flink.streaming.api.windowing.windows.TimeWindow>
      • mergeWindows

        public void mergeWindows​(Collection<org.apache.flink.streaming.api.windowing.windows.TimeWindow> windows,
                                 org.apache.flink.streaming.api.windowing.assigners.MergingWindowAssigner.MergeCallback<org.apache.flink.streaming.api.windowing.windows.TimeWindow> c)
        Merge overlapping TimeWindows.
        Specified by:
        mergeWindows in class org.apache.flink.streaming.api.windowing.assigners.MergingWindowAssigner<T,​org.apache.flink.streaming.api.windowing.windows.TimeWindow>