flink kafka连接器0.10.0事件时间澄清和过程功能澄清

u91tlkcl  于 2021-06-25  发布在  Flink
关注(0)|答案(1)|浏览(273)

我正在为一个关于Flink的Kafka的消费者连接器事件时间的问题而挣扎。引用flink doc
由于ApacheKafka 0.10+,kafka的消息可以带有时间戳,指示事件发生的时间(请参阅ApacheFlink中的“事件时间”)或消息写入kafka代理的时间。
如果flink中的时间特征设置为timecharacteristic.eventtime(streamexecutionenvironment.setstreamtimecharacteristic(timecharacteristic.eventtime)),则flinkkafkaconsumer010将发出附有时间戳的记录。
Kafka消费者不会发出水印。
我想到了一些问题:
我怎么知道它的时间戳是发生的时间还是写给Kafka经纪人的时间?
如果使用者没有发出水印并且设置了timecharacteristic.eventtime,这是否意味着延迟几天的消息仍然可以进入并被处理?
主流程图不包含窗口函数,基本上如下所示:source(kafka)->filter->processfunction->sink。这是否意味着事件在被kafka连接器消费时被触发?
我目前使用kafka连接器0.10.0,timecharacteristic.eventtime集,并使用processfunction,每隔x分钟进行一次状态清理。然而,我收到一个奇怪的情况,ontimercontext包含从0开始的时间戳,当我启动flink程序时,它一直增长到当前时间戳,这是一个bug吗?
提前感谢所有的帮助者!

gfttwv5a

gfttwv5a1#

这取决于创建这些事件的Kafka制作者的配置。message.timestamp.type属性应设置为createtime或logappendtime。
flink应用程序负责创建水印;Kafka消费者会处理时间戳,但不会处理水印。不管事件有多晚,它仍然会进入你的管道。
对。
我不清楚这其中有什么奇怪的地方。

相关问题