Class BoundedOutOfOrdernessTimestampExtractor<T>
- java.lang.Object
-
- org.apache.flink.streaming.api.functions.timestamps.BoundedOutOfOrdernessTimestampExtractor<T>
-
- All Implemented Interfaces:
Serializable,org.apache.flink.api.common.eventtime.TimestampAssigner<T>,org.apache.flink.api.common.functions.Function,AssignerWithPeriodicWatermarks<T>,TimestampAssigner<T>
public abstract class BoundedOutOfOrdernessTimestampExtractor<T> extends Object implements AssignerWithPeriodicWatermarks<T>
This is aAssignerWithPeriodicWatermarksused to emit Watermarks that lag behind the element with the maximum timestamp (in event time) seen so far by a fixed amount of time,t_late. This can help reduce the number of elements that are ignored due to lateness when computing the final result for a given window, in the case where we know that elements arrive no later thant_lateunits of time after the watermark that signals that the system event-time has advanced past their (event-time) timestamp.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description BoundedOutOfOrdernessTimestampExtractor(Duration maxOutOfOrderness)BoundedOutOfOrdernessTimestampExtractor(Time maxOutOfOrderness)Deprecated.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract longextractTimestamp(T element)Extracts the timestamp from the given element.longextractTimestamp(T element, long previousElementTimestamp)Assigns a timestamp to an element, in milliseconds since the Epoch.WatermarkgetCurrentWatermark()Returns the current watermark.longgetMaxOutOfOrdernessInMillis()
-
-
-
Constructor Detail
-
BoundedOutOfOrdernessTimestampExtractor
@Deprecated public BoundedOutOfOrdernessTimestampExtractor(Time maxOutOfOrderness)
Deprecated.
-
BoundedOutOfOrdernessTimestampExtractor
public BoundedOutOfOrdernessTimestampExtractor(Duration maxOutOfOrderness)
-
-
Method Detail
-
getMaxOutOfOrdernessInMillis
public long getMaxOutOfOrdernessInMillis()
-
extractTimestamp
public abstract long extractTimestamp(T element)
Extracts the timestamp from the given element.- Parameters:
element- The element that the timestamp is extracted from.- Returns:
- The new timestamp.
-
getCurrentWatermark
public final Watermark getCurrentWatermark()
Description copied from interface:AssignerWithPeriodicWatermarksReturns the current watermark. This method is periodically called by the system to retrieve the current watermark. The method may returnnullto 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().- Specified by:
getCurrentWatermarkin interfaceAssignerWithPeriodicWatermarks<T>- Returns:
Null, if no watermark should be emitted, or the next watermark to emit.- See Also:
Watermark,ExecutionConfig.getAutoWatermarkInterval()
-
extractTimestamp
public final long extractTimestamp(T element, long previousElementTimestamp)
Description copied from interface:TimestampAssignerAssigns a timestamp to an element, in milliseconds since the Epoch.The method is passed the previously assigned timestamp of the element. That previous timestamp may have been assigned from a previous assigner, by ingestion time. If the element did not carry a timestamp before, this value is
Long.MIN_VALUE.- Specified by:
extractTimestampin interfaceorg.apache.flink.api.common.eventtime.TimestampAssigner<T>- Specified by:
extractTimestampin interfaceTimestampAssigner<T>- Parameters:
element- The element that the timestamp will be assigned to.previousElementTimestamp- The previous internal timestamp of the element, or a negative value, if no timestamp has been assigned yet.- Returns:
- The new timestamp.
-
-