Flink的时间语义 -- 通俗介绍(包含零点漂移问题)

"时间" 对于flink来说是非常重要的,大致可以分成两大类:事件时间和处理时间(flink的时间语义)

 

事件事件:一个数据产生的事件(比如2.30分下单操作,事件时间就为2.30分)

处理时间:flink拿到数据,开始处理,指数据正在被处理的时刻

 

为什么会有这两种时间?

        因为数据在网络中传输是具有延迟的,或因某些别的外部原因等。通俗例子,买了牛奶,不一定当天喝。买牛奶这个事件发生的时间为事件时间。喝牛奶这个时间为处理时间。

 

零点漂移

        前一天23:59:59发送过来的数据,但是由于延迟发送到了下一天的分区,这条数据就具有偏差(离线数仓经典问题)。对于flink,具有事件时间,这个时间点是比较重要的,是保证计算结果准确的重要因素

 

那这两种时间语义哪个更重要呢?

        在实际生产应用中,事件时间语义可能更为常见。一般情况下,业务日志数据中都会记录数据生成的时间戳(timestamp),它就可以作为事件时间判断的基础。

        在flink1.12版本开始,就将事件时间作为默认的时间语义了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值