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



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

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

streamExecutionEnvironment.setStreamTimeCharacteristic(TimeCharacteristic.IngestionTime);

我需要打datastream.assignTimestampsAndWatermarks(AscendingTimestampExtractor)吗?

我认为只有当时间特性是事件时间时,datastream.assignTimestampsAndWatermarks才是强制性的。不如果没有,我想知道如何在分布式环境中设置AscendingTimestampExtractor?有没有办法在没有任何分布式锁的情况下添加单调递增的long(AscendingTimestampExtractor(?

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

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

相关内容

  • 没有找到相关文章

最新更新