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

相关推荐
C++、Java和Python的菜鸟5 小时前
第2章 项目前置课-代码版本控制Git
大数据·elasticsearch·搜索引擎
Sammyyyyy6 小时前
如何在不停项目不停机的情况下切换AI大模型
大数据·人工智能
circuitsosk7 小时前
跨境电商智能化实战:AI如何赋能客服自动回复、广告智能投放与供应链预测
大数据·人工智能·python·langchain·智能客服
数智化管理手记8 小时前
海量数据如何沉淀有效数据资产?数据标准化治理方案如何搭建?
java·大数据·人工智能
刀客Doc8 小时前
即时零售不只是多一个渠道,品牌开始重做终端生意
大数据·数据库
湘美书院--湘美谈教育8 小时前
湘美书院主理人谈AI文学:提示词与Skill的与时俱进
大数据·人工智能·安全·自动化·生活
weixin_549808369 小时前
人力资源数字化转型:从工具堆叠到AI原生架构的组织级跃迁路径
大数据·人工智能
l0001099 小时前
图书馆静谧环境构建:主流声学品牌产品与服务梳理
大数据·人工智能·声音
ACP广源盛1392462567310 小时前
蚂蚁百灵 Ling‑3.0‑flash 开源 + 昇腾 0‑Day 原生适配@ACP#GSV9001E 在国产算力矩阵中的机会与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件
微三云-张梅12 小时前
东莞企业做GEO:AI信任体系的三个建设层级
大数据·人工智能·微三云geo·东莞系统开发·东莞geo