@Documented @Retention(value=RUNTIME) @Target(value=METHOD) @Experimental(value=SPLITTABLE_DO_FN) public static @interface DoFn.TruncateRestriction
DoFninto a bounded one. This method is invoked when a pipeline is being drained.
This method is used to perform truncation of the restriction while it is not actively being processed.
@Nullable TruncateResult<RestrictionT> truncateRestriction(<arguments>);
This method must satisfy the following constraints:
DoFn.Elementannotation, then it will be passed the current element being processed; the argument must be of type
InputT. Note that automatic conversion of
DoFn.FieldAccessparameters are currently unsupported.
DoFn.Restrictionannotation, then it will be passed the current restriction being processed; the argument must be of type
DoFn.Timestampannotation, then it will be passed the timestamp of the current element being processed; the argument must be of type
RestrictionTracker, then it will be passed a tracker that is initialized for the current
DoFn.Restriction. The argument must be of the exact type
BoundedWindow, then it will be passed the window of the current element. When applied by
ParDothe subtype of
BoundedWindowmust match the type of windows on the input
PCollection. If the window is not accessed a runner may perform additional optimizations.
PaneInfo, then it will be passed information about the current triggering pane.
PipelineOptions, then it will be passed the options for the current pipeline.
Returns a truncated restriction representing a bounded amount of work that must be processed
before the pipeline can be drained or
null if no work is necessary.
The default behavior when a pipeline is being drained is that
restrictions process entirely while
restrictions process till a checkpoint is possible. Splittable
DoFns should only
provide this method if they want to change this default behavior.