Interface WatermarkStrategyWithPeriodicWatermarks<T>
-
- Type Parameters:
T
- The type of the elements to which this assigner assigns timestamps.
- All Superinterfaces:
Serializable
,TimestampAssigner<T>
,TimestampAssignerSupplier<T>
,WatermarkGeneratorSupplier<T>
,WatermarkStrategy<T>
- All Known Implementing Classes:
AscendingTimestampExtractor
,BoundedOutOfOrdernessTimestampExtractor
,PeriodicWatermarkAssignerWrapper
@Internal public interface WatermarkStrategyWithPeriodicWatermarks<T> extends WatermarkStrategy<T>, TimestampAssigner<T>
TheWatermarkStrategyWithPeriodicWatermarks
assigns event time timestamps to elements, and generates low watermarks that signal event time progress within the stream. These timestamps and watermarks are used by functions and operators that operate on event time, for example event time windows.Use this class to generate watermarks in a periodical interval. At most every
i
milliseconds (configured viaExecutionConfig.getAutoWatermarkInterval()
), the system will call thegetCurrentWatermark()
method to probe for the next watermark value. The system will generate a new watermark, if the probed value is non-null and has a timestamp larger than that of the previous watermark (to preserve the contract of ascending watermarks).The system may call the
getCurrentWatermark()
method less often than everyi
milliseconds, if no new elements arrived since the last call to the method.Timestamps and watermarks are defined as
longs
that represent the milliseconds since the Epoch (midnight, January 1, 1970 UTC). A watermark with a certain valuet
indicates that no elements with event timestampsx
, wherex
is lower or equal tot
, will occur any more.- See Also:
Watermark
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.flink.api.common.eventtime.TimestampAssignerSupplier
TimestampAssignerSupplier.Context, TimestampAssignerSupplier.SupplierFromSerializableTimestampAssigner<T>
-
Nested classes/interfaces inherited from interface org.apache.flink.api.common.eventtime.WatermarkGeneratorSupplier
WatermarkGeneratorSupplier.Context
-
-
Field Summary
-
Fields inherited from interface org.apache.flink.api.common.eventtime.TimestampAssigner
NO_TIMESTAMP
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default TimestampAssigner<T>
createTimestampAssigner(TimestampAssignerSupplier.Context context)
Instantiates aTimestampAssigner
for assigning timestamps according to this strategy.default WatermarkGenerator<T>
createWatermarkGenerator(WatermarkGeneratorSupplier.Context context)
Instantiates a WatermarkGenerator that generates watermarks according to this strategy.Watermark
getCurrentWatermark()
Returns the current watermark.-
Methods inherited from interface org.apache.flink.api.common.eventtime.TimestampAssigner
extractTimestamp
-
Methods inherited from interface org.apache.flink.api.common.eventtime.WatermarkStrategy
getAlignmentParameters, withIdleness, withTimestampAssigner, withTimestampAssigner, withWatermarkAlignment, withWatermarkAlignment
-
-
-
-
Method Detail
-
getCurrentWatermark
@Nullable Watermark getCurrentWatermark()
Returns the current watermark. This method is periodically called by the system to retrieve the current watermark. The method may returnnull
to indicate that no new Watermark is available.The returned watermark will be emitted only if it is non-null and its timestamp is larger than that of the previously emitted watermark (to preserve the contract of ascending watermarks). If the current watermark is still identical to the previous one, no progress in event time has happened since the previous call to this method. If a null value is returned, or the timestamp of the returned watermark is smaller than that of the last emitted one, then no new watermark will be generated.
The interval in which this method is called and Watermarks are generated depends on
ExecutionConfig.getAutoWatermarkInterval()
.- Returns:
Null
, if no watermark should be emitted, or the next watermark to emit.- See Also:
Watermark
,ExecutionConfig.getAutoWatermarkInterval()
-
createTimestampAssigner
default TimestampAssigner<T> createTimestampAssigner(TimestampAssignerSupplier.Context context)
Description copied from interface:WatermarkStrategy
Instantiates aTimestampAssigner
for assigning timestamps according to this strategy.- Specified by:
createTimestampAssigner
in interfaceTimestampAssignerSupplier<T>
- Specified by:
createTimestampAssigner
in interfaceWatermarkStrategy<T>
-
createWatermarkGenerator
default WatermarkGenerator<T> createWatermarkGenerator(WatermarkGeneratorSupplier.Context context)
Description copied from interface:WatermarkStrategy
Instantiates a WatermarkGenerator that generates watermarks according to this strategy.- Specified by:
createWatermarkGenerator
in interfaceWatermarkGeneratorSupplier<T>
- Specified by:
createWatermarkGenerator
in interfaceWatermarkStrategy<T>
-
-