Apache flink 如果我在Flink 1.10中将时间特性设置为IngestionTime,是否需要设置assignTimestampsAndWatermarks?

Apache flink 如果我在Flink 1.10中将时间特性设置为IngestionTime,是否需要设置assignTimestampsAndWatermarks?,apache-flink,flink-streaming,Apache Flink,Flink Streaming,如果我将时间特征设置为InjectionTime,是否需要设置assignTimestampsAndWatermarks 假设我将流执行环境的时间特性设置为摄入时间,如下所示 streamExecutionEnvironment.setStreamTimeCharacteristic(TimeCharacteristic.IngestionTime) 我是否需要调用datastream.assignTimeStampAndWatermarks(AscendingTimestampExtracto

如果我将时间特征设置为InjectionTime,是否需要设置assignTimestampsAndWatermarks

假设我将流执行环境的时间特性设置为摄入时间,如下所示

streamExecutionEnvironment.setStreamTimeCharacteristic(TimeCharacteristic.IngestionTime)

我是否需要调用
datastream.assignTimeStampAndWatermarks(AscendingTimestampExtractor)


我认为只有当时间特征是事件时间时,
datastream.assignTimestampsAndWatermarks
才是必需的。不如果没有,我想知道如何在分布式环境中设置AscendingTimestampExtractor?是否有任何方法可以在不使用任何分布式锁的情况下添加单调递增的long(AscendingTimestampExtractor)?

否,在使用摄取时间时,无需调用
assignTimestampsAndWatermarks
。随着摄入时间的增加,Flink会自动分配时间戳和水印


此外,在进行水印时,不需要担心分布式锁定。每个本地实例根据其对本地流的了解在本地分配水印。对于
AscendingTimestampExtractor
来说,时间戳在每个实例中都是单调递增的就足够了。

是什么让你认为这在Flink 1.10中发生了变化?如果有些事情沟通不畅,最好能解决这个问题。