清除 DataStream 中的 Flink 水印状态
Clear Flink watermark state in DataStream
是否可以清除 DataStream 中的当前水印?
一个月的水印输入示例,不允许迟到:
[
{ timestamp: '10/2018' },
{ timestamp: '11/2018' },
{ timestamp: '11/2018', clearState: true },
{ timestamp: '9/2018' }
]
通常情况下,'9/2018' 记录会因为迟到而被丢弃。当看到 clearState
消息时,有没有办法以编程方式重置水印状态?
水印不应该倒退——不确定会发生什么,在实践中这是一个坏主意。但是,有多种方法可以适应延迟数据。
如果您正在使用 window API,一旦 window 的允许迟到期满,Flink 将清除任何 window 状态。如果您想要比这更多的控制权,请考虑使用 ProcessFunction
,这将 allow/require 您明确地管理状态(和计时器)。
是否可以清除 DataStream 中的当前水印?
一个月的水印输入示例,不允许迟到:
[
{ timestamp: '10/2018' },
{ timestamp: '11/2018' },
{ timestamp: '11/2018', clearState: true },
{ timestamp: '9/2018' }
]
通常情况下,'9/2018' 记录会因为迟到而被丢弃。当看到 clearState
消息时,有没有办法以编程方式重置水印状态?
水印不应该倒退——不确定会发生什么,在实践中这是一个坏主意。但是,有多种方法可以适应延迟数据。
如果您正在使用 window API,一旦 window 的允许迟到期满,Flink 将清除任何 window 状态。如果您想要比这更多的控制权,请考虑使用 ProcessFunction
,这将 allow/require 您明确地管理状态(和计时器)。