当我使用flink事件时间窗口时,窗口不会触发。如何解决这个问题,有什么方法可以调试吗?
5m1hhzi41#
确定你正在设置 environment.setStreamTimeCharacteristic(TimeCharacteristic.EventTime) .
environment.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)
wecizke32#
当您使用事件时间窗口时,它可能是一个水印问题。窗口仅在水印取得进展时输出。事件时间未提前的原因有:源中没有数据其中一个源代码没有数据从记录中提取的时间字段应为毫秒而不是秒。数据应该覆盖比窗口大小更长的时间跨度,以提前事件时间。如果我们将事件时间更改为处理时间,窗口将输出。此外,我们可以通过检查web Jmeter 板[1]中的水印来监视事件时间,或者使用processfunction打印并调试它,processfunction可以查找当前水印。[1] https://ci.apache.org/projects/flink/flink-docs-master/monitoring/debugging_event_time.html#monitoring-当前事件时间
2条答案
按热度按时间5m1hhzi41#
确定你正在设置
environment.setStreamTimeCharacteristic(TimeCharacteristic.EventTime)
.wecizke32#
当您使用事件时间窗口时,它可能是一个水印问题。窗口仅在水印取得进展时输出。事件时间未提前的原因有:
源中没有数据
其中一个源代码没有数据
从记录中提取的时间字段应为毫秒而不是秒。
数据应该覆盖比窗口大小更长的时间跨度,以提前事件时间。
如果我们将事件时间更改为处理时间,窗口将输出。此外,我们可以通过检查web Jmeter 板[1]中的水印来监视事件时间,或者使用processfunction打印并调试它,processfunction可以查找当前水印。
[1] https://ci.apache.org/projects/flink/flink-docs-master/monitoring/debugging_event_time.html#monitoring-当前事件时间