Flink 1.10 设置时间特征为 IngestionTime 是否需要设置 assignTimestampsAndWatermarks?
Do I need to set assignTimestampsAndWatermarks if I set my time characteristic to IngestionTime in Flink 1.10?
如果我将时间特征设置为 IngestionTime,是否需要设置 assignTimestampsAndWatermarks?
假设我将流执行环境的时间特征设置为摄取时间如下
streamExecutionEnvironment.setStreamTimeCharacteristic(TimeCharacteristic.IngestionTime);
我需要打电话给 datastream.assignTimestampsAndWatermarks(AscendingTimestampExtractor)
吗?
我以为只有时间特征是事件时间,datastream.assignTimestampsAndWatermarks
才是必须的。不?如果没有,我想知道如何在分布式环境中设置 AscendingTimestampExtractor
?有什么方法可以在没有任何分布式锁的情况下添加单调递增的 long(AscendingTimestampExtractor)?
不,使用摄取时间时不需要调用 assignTimestampsAndWatermarks
。使用摄取时间,Flink 会自动分配时间戳和水印。
另外,在加水印的时候再也不用担心分布式锁了。每个本地实例根据其对本地流的了解在本地分配水印。对于 AscendingTimestampExtractor
,时间戳在每个实例中单调递增就足够了。
如果我将时间特征设置为 IngestionTime,是否需要设置 assignTimestampsAndWatermarks?
假设我将流执行环境的时间特征设置为摄取时间如下
streamExecutionEnvironment.setStreamTimeCharacteristic(TimeCharacteristic.IngestionTime);
我需要打电话给 datastream.assignTimestampsAndWatermarks(AscendingTimestampExtractor)
吗?
我以为只有时间特征是事件时间,datastream.assignTimestampsAndWatermarks
才是必须的。不?如果没有,我想知道如何在分布式环境中设置 AscendingTimestampExtractor
?有什么方法可以在没有任何分布式锁的情况下添加单调递增的 long(AscendingTimestampExtractor)?
不,使用摄取时间时不需要调用 assignTimestampsAndWatermarks
。使用摄取时间,Flink 会自动分配时间戳和水印。
另外,在加水印的时候再也不用担心分布式锁了。每个本地实例根据其对本地流的了解在本地分配水印。对于 AscendingTimestampExtractor
,时间戳在每个实例中单调递增就足够了。