Flink中的全局聚合流数据

时间:2016-04-07 05:11:04

标签: apache-flink flink-streaming

我目前正在使用Flink 1.0编写聚合用例,作为用例的一部分,我需要计算过去10分钟记录的api的数量。

我可以轻松地使用keyBy(“api”)然后应用10分钟的窗口和doe sum(count)操作。

但问题是我的数据可能会出现故障,所以我需要一些方法在10分钟的窗口内获取api的数量..

例如:如果相同的api日志来自2个不同的窗口,我应该得到一个全局计数,即2,而不是两个单独的记录,每个窗口的计数为1。

我也不想要增量计数,即每个具有相同键的记录多次显示,计数等于增量值。

我希望记录显示一次全局计数,例如Spark中的updateStateByKey()。

我们可以这样做吗?

1 个答案:

答案 0 :(得分:0)

You should have a look at Flink's event-time feature which produces consistent results for out-of-order streams. Event-time means that Flink will process data depending on timestamps that are part of the events and not depending on the machines wall-clock time.

If you you event-time (with appropriate watermarks). Flink will use automatically handle events that arrive out-of-order.