【问题标题】:Event time window in Flink does not triggerFlink 中的事件时间窗口不触发
【发布时间】:2018-08-05 03:59:55
【问题描述】:

当我使用 flink 事件时间窗口时,窗口不会触发。如何解决问题,有什么方法可以调试?

【问题讨论】:

    标签: apache-flink flink-streaming flink-sql


    【解决方案1】:

    当您使用事件时间窗口时,可能是水印问题。该窗口仅在水印取得进展时输出。活动时间未提前有一些原因:

    1. 来源中没有数据
    2. 其中一个源并行没有数据
    3. 从记录中提取的时间字段应该是毫秒而不是秒。
    4. 数据应覆盖比窗口大小更长的时间跨度以提前事件时间。

    如果我们将事件时间更改为处理时间,窗口将输出。此外,我们可以通过检查 Web Dashboard [1] 中的水印来监控事件时间,或者使用可以查找当前水印的 ProcessFunction 对其进行打印调试。

    [1]https://ci.apache.org/projects/flink/flink-docs-master/monitoring/debugging_event_time.html#monitoring-current-event-time

    【讨论】:

    • 嗨,你能澄清一下你上面提到的#2(“源并行度之一没有数据)是什么意思吗?这是一个 Flink 错误吗?如果这是预期的行为,我没有在任何地方都可以看到它。谢谢!
    • @karthitect 嗨,这不是 Flink 错误。这里有一些描述:ci.apache.org/projects/flink/flink-docs-stable/dev/…
    • 谢谢。因此,如果我弄错了,请纠正我 - 如果我们使用派生自 AssignerWithPeriodicWatermarks 的分配器,这将不是问题?
    【解决方案2】:

    确保您设置的是environment.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-09
      相关资源
      最近更新 更多