我使用flink-1.13 sql。我有一个kafka表,像
create my_table(
id string,
event_time timestamp(3)
watermark for time as ...
)
我想把每10分钟的消息像滚动窗口一样分组,另外我想重新计算1小时内的延迟消息。我知道的一种方法是使用像
这样的udfselect count(1) from my_table
where event_time >= '1 hour ago'
group by ten_minutes_udf(event_time)
但是这种方式的flink状态永远不会过期,我找不到合适的窗口TVF聚合来做它
还有别的方法吗?
在Flink 1.14中增加了current_watermark()
功能,可用于检测和操作延迟事件。
在1.13之前,有一个实验性的table.exec.emit.allow-lateness
配置选项,可以用于(现在遗留的)窗口操作(而不是窗口tvf)。