Apache Flink窗口订单


0

使用apacheflink,我想创建一个流式窗口,它按Kafka事件中存储的时间戳排序。 root据下面的文章,这是没有实现的。

https://cwiki.apache.org/conference/display/FLINK/Time+and+Order+in+Streams

然而,这篇文章的日期是2015年7月,现在已经快一年了。这个功能是否实现了,有人能给我指出任何相关的文档和/或示例吗。

2 答案


0

apacheflink支持基于事件时间戳的流窗口。

为了支持事件时间,必须从每个事件中提取时间戳(长值)。此外,您需要支持所谓的 watermark,这是处理具有无序时间戳的事件所必需的。

给定一个具有提取时间戳的流,您可以定义一个窗口化和,如下所示:

val stream: DataStream[(String, Int)] = ...
val windowCnt = stream
  .keyBy(0) // partition stream on first field (String)
  .timeWindow(Time.minutes(1)) // window in extracted timestamp by 1 minute
  .sum(1) // sum the second field (Int)

事件时间和窗口在文档(这里和这里)和一些博客文章(这里、这里、这里和这里)中有详细的 explain。


0

按时间戳排序仍然不支持开箱即用,但您可以 root据元素中的时间戳进行窗口化。我们称此事件为时间窗口。请看这里:https://ci.apache.org/projects/flink/flink-docs-master/api/streaming/windows.html。


我来回答

写文章

提问题

面试题