Class MergingWindowSet<W extends org.apache.flink.streaming.api.windowing.windows.Window>
- java.lang.Object
-
- org.apache.flink.datastream.impl.extension.window.operators.MergingWindowSet<W>
-
public class MergingWindowSet<W extends org.apache.flink.streaming.api.windowing.windows.Window> extends Object
Utility for keeping track of mergingWindowswhen using aMergingWindowAssignerin aWindowProcessOperator.Please refer to
MergingWindowSet. We do not use this directly because we are utilizing State V2, while it is based on State V1.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceMergingWindowSet.MergeFunction<W>Callback foraddWindow(Window, MergeFunction).
-
Constructor Summary
Constructors Constructor Description MergingWindowSet(org.apache.flink.streaming.api.windowing.assigners.MergingWindowAssigner<?,W> windowAssigner, org.apache.flink.runtime.state.v2.internal.InternalListState<?,org.apache.flink.runtime.state.VoidNamespace,org.apache.flink.api.java.tuple.Tuple2<W,W>> state)Restores aMergingWindowSetfrom the given state.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description WaddWindow(W newWindow, MergingWindowSet.MergeFunction<W> mergeFunction)Adds a newWindowto the set of in-flight windows.WgetStateWindow(W window)Returns the state window for the given in-flightWindow.voidpersist()Persist the updated mapping to the given state if the mapping changed since initialization.voidretireWindow(W window)Removes the given window from the set of in-flight windows.StringtoString()
-
-
-
Constructor Detail
-
MergingWindowSet
public MergingWindowSet(org.apache.flink.streaming.api.windowing.assigners.MergingWindowAssigner<?,W> windowAssigner, org.apache.flink.runtime.state.v2.internal.InternalListState<?,org.apache.flink.runtime.state.VoidNamespace,org.apache.flink.api.java.tuple.Tuple2<W,W>> state) throws Exception
Restores aMergingWindowSetfrom the given state.- Throws:
Exception
-
-
Method Detail
-
persist
public void persist() throws ExceptionPersist the updated mapping to the given state if the mapping changed since initialization.- Throws:
Exception
-
getStateWindow
public W getStateWindow(W window)
Returns the state window for the given in-flightWindow. The state window is theWindowin which we keep the actual state of a given in-flight window. Windows might expand but we keep to original state window for keeping the elements of the window to avoid costly state juggling.- Parameters:
window- The window for which to get the state window.
-
retireWindow
public void retireWindow(W window)
Removes the given window from the set of in-flight windows.- Parameters:
window- TheWindowto remove.
-
addWindow
public W addWindow(W newWindow, MergingWindowSet.MergeFunction<W> mergeFunction) throws Exception
Adds a newWindowto the set of in-flight windows. It might happen that this triggers merging of previously in-flight windows. In that case, the providedMergingWindowSet.MergeFunctionis called.This returns the window that is the representative of the added window after adding. This can either be the new window itself, if no merge occurred, or the newly merged window. Adding an element to a window or calling trigger functions should only happen on the returned representative. This way, we never have to deal with a new window that is immediately swallowed up by another window.
If the new window is merged, the
MergeFunctioncallback arguments also don't contain the new window as part of the list of merged windows.- Parameters:
newWindow- The newWindowto add.mergeFunction- The callback to be invoked in case a merge occurs.- Returns:
- The
Windowthat new newWindowended up in. This can also be the newWindowitself in case no merge occurred. - Throws:
Exception
-
-