Flink实例(五十六):自定义时间和窗口的操作符(十一)TimestampAssigner接口 (二)生成水印的三个重载方法

本文介绍了Apache Flink中处理事件时间的关键概念——Timestamp和Watermark。通过TimestampExtractor接口的assignTimestamps方法,可以为数据流设置时间戳,尤其适合时间戳单调递增的情况。此外,还探讨了AssignerWithPeriodicWatermarks的两种使用方式,用于生成周期性水印,确保正确处理乱序事件。内容主要基于全事件时间视角。
摘要由CSDN通过智能技术生成

Timestamp 和Watermark 的概念: 

1. Timestamp和Watermark都是基于事件的时间字段生成的
2. Timestamp和Watermark是两个不同的东西,并且一旦生成都跟事件数据没有关系了(所有即使事件中不再包含生成Timestamp和Watermark的字段也没关系)
3. 事件数据和 Timestamp 一一对应(事件在流中传递以StreamRecord对象表示,value 和 timestamp 是它的两个成员变量)
4. Watermark 在生成之后与事件数据没有直接关系,Watermark 作为一个消息,和事件数据一样在流中传递(Watermark 和StreamRecord 具有相同的父类:StreamElement)
5. Timestamp 与 Watermark 在生成之后,会在下游window算子中做比较,判断事件数据是否是过期数据
6. 只有window算子才会用Watermark判断事件数据是否过期
Flink 在流上手动生成水印有三个重载的方法(忽略过期的一个)

 1 assignTimestamps(extractor: TimestampExtracto

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王知无(import_bigdata)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值