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队列,所有你要处理的记录都在某个分区中有序,特殊记录也是分区有序的情况下才能使用这种方法生成水位线

相关推荐
前端程序猿之路1 分钟前
30天大模型学习之Day 2:Prompt 工程基础系统
大数据·人工智能·学习·算法·语言模型·prompt·ai编程
创客匠人老蒋6 分钟前
从“经验驱动”到“系统智能”:实体门店经营的结构性升级
大数据·人工智能
安达发公司8 分钟前
安达发|APS自动排产排程排单软件:让汽车零部件厂排产不“卡壳”
大数据·人工智能·汽车·aps高级排程·aps排程软件·aps自动排产排程排单软件
DKunYu23 分钟前
3.远程操作
大数据·git·elasticsearch·搜索引擎·gitee
2301_8002561136 分钟前
【数据库】查找距离最近的电影院 pgSQL 存储过程片段
大数据·数据库·excel
杰克逊的日记38 分钟前
规控算法(规划 + 控制算法)
大数据·算法·云计算·it
Ydwlcloud41 分钟前
2026年1月云服务器优惠活动全解析:聪明选云的新策略
大数据·服务器·人工智能·云计算
AI Echoes44 分钟前
LangChain 语义文档分割器与其他文档分割器的使用
大数据·人工智能·python·langchain·agent
易天ETU1 小时前
2026年光模块市场分析与预见
大数据·运维·网络·人工智能·光模块·光通信
Ydwlcloud1 小时前
2026年1月华为云国际促销活动期间如何省钱?
大数据·服务器·人工智能·华为云·云计算