是否可以清除DataStream中的当前水印?
一个月的水印输入示例,不允许延迟:
[
{ timestamp: '10/2018' },
{ timestamp: '11/2018' },
{ timestamp: '11/2018', clearState: true },
{ timestamp: '9/2018' }
]
通常,'9/2018'记录会因为太晚而被抛出。看到clearState
消息时,是否可以通过编程方式重置水印状态?
答案 0 :(得分:1)
水印不应该倒退-不确定会发生什么,实际上,这是一个坏主意。但是,有多种方法可以容纳最新数据。
如果您使用的是窗口API,则一旦允许的延迟时间到期,Flink将清除任何窗口状态。如果您想控制的更多,请考虑使用ProcessFunction
,它将允许/要求您显式管理状态(和计时器)。