public static enum PaneInfo.Timing extends java.lang.Enum<PaneInfo.Timing>
A window may fire multiple panes, and the timing of those panes generally follows the
EARLY* ON_TIME? LATE*. Generally a pane is considered:
EARLYif the system cannot be sure it has seen all data which may contribute to the pane's window.
ON_TIMEif the system predicts it has seen all the data which may contribute to the pane's window.
LATEif the system has encountered new data after predicting no more could arrive. It is possible an
ON_TIMEpane has already been emitted, in which case any following panes are considered
AfterWatermark.pastEndOfWindow() trigger may produce an
WindowFn's, windows may be merged to produce new windows that satisfy
their own instance of the above regular expression. The only guarantee is that once a window
produces a final pane, it will not be merged into any new windows.
The predictions above are made using the mechanism of watermarks.
We can state some properties of
ON_TIME panes, but first need some
DoFn.WindowedContext.outputWithTimestamp(OutputT, org.joda.time.Instant)in any
DoFn, and it uses the same
Window.withAllowedLateness(org.joda.time.Duration)argument value on all windows (or uses the default of
Then in simple pipelines:
ON_TIMEpane can never cause a later computation to generate a
LATEpane. (If it did, it would imply a later computation's input watermark progressed ahead of an earlier stage's output watermark, which by design is not possible.)
ON_TIMEpane is emitted as soon as possible after the input watermark passes the end of the pane's window.
ON_TIME. And a
LATEpane cannot contain locally on-time elements.
However, note that:
ON_TIMEpane may contain locally late elements. It may even contain only locally late elements. Provided a locally late element finds its way into an
ON_TIMEpane its lateness becomes unobservable.
LATEpane does not necessarily cause any following computation panes to be marked as
|Enum Constant and Description|
Pane was fired before the input watermark had progressed after the end of the window.
Pane was fired after the output watermark had progressed past the end of the window.
Pane was fired by a
This element was not produced in a triggered pane and its relation to input and output watermarks is unknown.
|Modifier and Type||Method and Description|
Returns the enum constant of this type with the specified name.
Returns an array containing the constants of this enum type, in the order they are declared.
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
public static final PaneInfo.Timing EARLY
public static final PaneInfo.Timing ON_TIME
AfterWatermark.pastEndOfWindow()trigger because the input watermark progressed after the end of the window. However the output watermark has not yet progressed after the end of the window. Thus it is still possible to assign a timestamp to the element representing this pane which cannot be considered locally late by any following computation.
public static final PaneInfo.Timing LATE
public static final PaneInfo.Timing UNKNOWN
public static PaneInfo.Timing values()
for (PaneInfo.Timing c : PaneInfo.Timing.values()) System.out.println(c);
public static PaneInfo.Timing valueOf(java.lang.String name)
name- the name of the enum constant to be returned.
java.lang.IllegalArgumentException- if this enum type has no constant with the specified name
java.lang.NullPointerException- if the argument is null