1

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

4

2 回答 2

5

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

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

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

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

于 2018-08-05T04:58:06.213 回答
2

确保您正在设置environment.setStreamTimeCharacteristic(TimeCharacteristic.EventTime).

于 2018-08-06T10:28:50.667 回答