Flink 在非键控流上设置定时器

Flink set timer on non keyed stream

Flink可以在非keyed流上设置timer吗?

ProcessAllWindowFunction是个不错的选择。但它不能扩大并行性。必须是 1.

我正在寻找可以设置定时器的非键控过程函数。

Flink 的计时器仅在键控进程函数中可用。

这个问题的标准答案是继续对流进行键控,添加一个包含随机数的字段用作键(如果还没有合适的方法来实现键选择器)。

如果您不能忍受网络洗牌的费用,对于事件时间计时器,您可以实现一个自定义运算符,在其 processWatermark 方法中实现您的逻辑。

如果您正在寻找处理时间计时器,您可以自己动手。

你可以 keyBy(_ => None) 或 keyBy() 一个常量并仍然使用定时器