Flink 实战系列No Watermark (Watermarks are only available if EventTime is used)

Posted JasonLee实时计算

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink 实战系列No Watermark (Watermarks are only available if EventTime is used)相关的知识,希望对你有一定的参考价值。

No Watermark (Watermarks are only available if EventTime is used)

问题背景

在 Flink 消费 kafka 的数据,经过一个 map 算子,然后调用 assignTimestampsAndWatermarks 生成 Watermark 后,然后 keyby + window,设置了 ContinuousEventTimeTrigger 5 秒钟触发一次窗口的计算,但是发现窗口一直没有触发计算,大家记住一点,只要是在 EventTime 语义下,窗口不触发的,基本上都是因为 Watermark 的问题。最后查看 Flink UI 对应算子的 Watermark 信息显示为 No Watermark (Watermarks are only available if EventTime is used) 如下图所示:

问题分析

先来看下这句话的意思是说没有 Watermark ,Watermark 只有在使用 EventTime 的时候才可用,我这里使用的就是 EventTime 时间语义啊,并且还通过 assignTimestampsAndWatermarks 生成了 Watermark,那这里为什么没有呢?首先我们应该知道 Watermark 在传递的时候有一个规则,那就是

以上是关于Flink 实战系列No Watermark (Watermarks are only available if EventTime is used)的主要内容,如果未能解决你的问题,请参考以下文章

Flink详解系列之五--水位线(watermark)

Flink 源码解读系列 DataStream 带 Watermark 生成的时间戳分配器

Flink 源码解读系列 DataStream 带 Watermark 生成的时间戳分配器

Flink 源码解读

Flink 源码解读

Flink 源码解读