apache-flink - apache flink 窗口顺序

标签 apache-flink flink-streaming

使用 Apache Flink,我想创建一个按 Kafka 事件中存储的时间戳排序的流窗口。根据以下文章,这尚未实现。

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

不过,这篇文章的日期是 2015 年 7 月,现在已经快一年过去了。此功能是否已实现?有人可以向我指出任何相关文档和/或示例吗?

最佳答案

Apache Flink 支持基于事件时间戳的流窗口。 在 Flink 中,这个概念称为事件时间。

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

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

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)

文档( herehere )以及几篇博客文章( herehereherehere )中详细解释了事件时间和窗口。

关于apache-flink - apache flink 窗口顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37809811/

相关文章:

apache-flink - Apache 弗林克 : How can I create a parallel JDBC InputFormat?

scala - 当processElement依赖于广播数据时,如何在flink中对BroadcastProcessFunction进行单元测试

java - Apache 弗林克 : How to implement a SourceFunction?

hadoop - 如何在 Flink 独立集群上的 Flink 作业中使用两个 Kerberos key 表(用于 Kafka 和 Hadoop HDFS)?

apache-flink - Flink流: Data stream that gets controlled by control stream

hadoop - 无法将点/检查点flink状态保存到AWS S3存储桶

apache-flink - Flink Standalone Cluster (v1.4.2) 中运行多个 Flink 程序

apache-flink - Flink Streaming : The different between TriggerResult. FIRE 和 TriggerResult.FIRE_AND_PURGE

apache-flink - Apache 弗林克 : Sorting dataset and creating DataStream from multiple input files with Event times

java - Flink Joined Streams 与 Evictor 中的不同输出