flink生成水位线记录方式--基于特殊记录的水位线生成器

背景

在flink基于事件的时间处理中,水位线记录的生成是一个很重要的环节,本文就来记录下几种水位线记录的生成方式的其中一种:基于特殊记录的水位线生成器

基于特殊记录的水位线生成器

我们发送的事件中,如果带有某条特殊记录的元素代表了某种进度的标识的话,我们可以基于这条特殊的记录生成水位线,这样我们当收到这条特殊记录时就知道这个记录的时间戳之前的记录都已经全部收到了,也就是可以基于这条特殊记录发出水位线了。代码如下所示:

java 复制代码
public class SpecialRecordWaterMark extends AssignerWithPunctuateWaterMarks{

public long extractTimeStamp(event Event, previousTs long){
// 抽取记录的时间戳
 return event.getTimeStamp();
}

public WaterMark checkAndGetNextWaterMark(event Event, extractedTs long){
if(event is '特殊记录'){
	//发出水位线,这里的delay可以为0,也可以为比如一分钟等数值
	return new WaterMark(extractedTs - delay)
}else{
//不发出水位线记录
}
}
}

总结

基于特殊记录的水位线生成器的最大问题时,flink是并行处理输入记录的,你如何能确保特殊记录是比正常记录后处理的?我能想到的场景是比如kafka队列,所有你要处理的记录都在某个分区中有序,特殊记录也是分区有序的情况下才能使用这种方法生成水位线

相关推荐
ha_lydms26 分钟前
AnalyticDB导入MaxCompute数据的几种方式
大数据·数据仓库·阿里云·dataworks·maxcompute·odps·analyticdb
拓端研究室33 分钟前
专题:2025电商行业洞察报告:数字化、订阅电商、内容营销、B2B|附200+份报告PDF、数据、可视化模板汇总下载
大数据·人工智能
毕设源码-钟学长43 分钟前
【开题答辩全过程】以 基于大数据的化妆品推荐系统为例,包含答辩的问题和答案
大数据
sheji34161 小时前
【开题答辩全过程】以 基于大数据的健康评估管理系统的设计与实现为例,包含答辩的问题和答案
大数据
豌豆学姐1 小时前
123 口播数字人 API 接入实战:附完整前后端开源项目
大数据·php·uniapp·开源软件
不爱吃糖的程序媛1 小时前
cJSON 适配 OpenHarmony PC 完整指南
大数据·elasticsearch·搜索引擎
TDengine (老段)1 小时前
快速掌握时序数据库 + TDengine 学习指南
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
hengcaib1 小时前
美瑞莎携手未来数据集团:大健康赛道的 “数智化” 新探索
大数据·人工智能
小小王app小程序开发1 小时前
盲盒小程序一番赏特殊玩法超细分拆解:从底层逻辑到落地细节
大数据·小程序
智能化咨询2 小时前
(99页PPT)智慧景区一体化建设方案(附下载方式)
大数据·数据库