是否可以清除DataStream中的当前水印?
示例输入长达一个月的水印,不允许延迟:
[
{ timestamp: '10/2018' },
{ timestamp: '11/2018' },
{ timestamp: '11/2018', clearState: true },
{ timestamp: '9/2018' }
]通常情况下,“9/2018”的记录会被抛出,因为现在已经很晚了。是否有一种方法可以在看到clearState消息时以编程方式重置水印状态?
发布于 2018-11-06 12:30:24
水印不应该倒退--它会发生什么,这是个未知数,而在实践中,这是个坏主意。然而,有各种方法可以容纳迟来的数据。
如果您使用的是window API,则在允许的窗口延迟过期后,Flink将清除任何窗口状态。如果您需要更多的控制,请考虑使用ProcessFunction,它将允许/要求您显式地管理状态(和定时器)。
https://stackoverflow.com/questions/53163364
复制相似问题