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

相关推荐
无代码专家2 小时前
设备巡检数字化解决方案:构建高效闭环管理体系
java·大数据·人工智能
天远数科2 小时前
Node.js 原生加密指南:详解 Crypto 模块对接天远银行卡黑名单接口
大数据·api
expect7g2 小时前
Paimon Branch --- 流批一体化之二
大数据·后端·flink
天远云服2 小时前
高并发风控实践:AES 加密与银行卡风险标签清洗的 Go 语言实现
大数据·api
无级程序员2 小时前
datasophon中dolpinscheduler的自定义配置common.properties不生效问题解决
大数据
珠海西格电力2 小时前
零碳园区基础架构协同规划:能源-建筑-交通-数字系统的衔接逻辑
大数据·人工智能·智慧城市·能源
weixin_537217063 小时前
AI 智能体如何利用文件系统进行上下文工程
大数据·人工智能
见识星球3 小时前
名企校招攻略
大数据·python
路边草随风3 小时前
starrocks compaction 进度问题定位
大数据·sql
档案宝档案管理3 小时前
核心功能揭秘——档案管理系统如何破解档案管理难题?
大数据·数据库·安全·档案·档案管理