public class CustomWatermarkExtractor extends Object implements AssignerWithPeriodicWatermarks<KafkaEvent>
AssignerWithPeriodicWatermarks
, that simply assumes that the input stream
records are strictly ascending.
Flink also ships some built-in convenience assigners, such as the BoundedOutOfOrdernessTimestampExtractor
and AscendingTimestampExtractor
NO_TIMESTAMP
Constructor and Description |
---|
CustomWatermarkExtractor() |
Modifier and Type | Method and Description |
---|---|
long |
extractTimestamp(KafkaEvent event,
long previousElementTimestamp)
Assigns a timestamp to an element, in milliseconds since the Epoch.
|
Watermark |
getCurrentWatermark()
Returns the current watermark.
|
public long extractTimestamp(KafkaEvent event, long previousElementTimestamp)
TimestampAssigner
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
.
extractTimestamp
in interface TimestampAssigner<KafkaEvent>
event
- 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.@Nullable public Watermark getCurrentWatermark()
AssignerWithPeriodicWatermarks
null
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()
.
getCurrentWatermark
in interface AssignerWithPeriodicWatermarks<KafkaEvent>
Null
, if no watermark should be emitted, or the next watermark to emit.Watermark
,
ExecutionConfig.getAutoWatermarkInterval()
Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.