清除DataStream中的Flink水印状态

时间:2018-11-05 22:45:20

标签: bigdata apache-flink flink-streaming

是否可以清除DataStream中的当前水印?

一个月的水印输入示例,不允许延迟:

[
  { timestamp: '10/2018' },
  { timestamp: '11/2018' },
  { timestamp: '11/2018', clearState: true },
  { timestamp: '9/2018' }
]

通常,'9/2018'记录会因为太晚而被抛出。看到clearState消息时,是否可以通过编程方式重置水印状态?

1 个答案:

答案 0 :(得分:1)

水印不应该倒退-不确定会发生什么,实际上,这是一个坏主意。但是,有多种方法可以容纳最新数据。

如果您使用的是窗口API,则一旦允许的延迟时间到期,Flink将清除任何窗口状态。如果您想控制的更多,请考虑使用ProcessFunction,它将允许/要求您显式管理状态(和计时器)。