Flink中的事件时间窗口不会触发

时间:2018-08-05 03:59:55

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

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

2 个答案:

答案 0 :(得分:2)

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

  1. 没有来源的数据
  2. 一种源并行机制没有数据
  3. 从记录中提取的时间字段应该是毫秒而不是秒。
  4. 数据覆盖的垃圾邮件时间应大于窗口大小,以延长事件时间。

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

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

答案 1 :(得分:0)

请确保您设置了def mse(y_true, y_pred): return K.mean(K.square(y_pred - y_true), axis=-1) model.compile(loss= (mse(y_true, y_pred)*(1-alpha) + gse(y_true, y_pred)*alpha), , ...)