flink生成水位线记录方式--周期性水位线生成器

背景

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

周期性水位线生成器

1.1 BoundedOutOfOrdernessTimeStampExtractor 他会接收一个表示最大延迟的参数,比如1分钟,意味着如果到达的元素的事件时间和之前到达的元素的最大时间戳小于1分钟,那么还可以对这个元素进行正常的处理,例如归入正常的窗口中等待处理等,如果超过1分钟,那么这个元素本应参与的计算已经完成并发出结果,这个元素现在就是属于迟到元素。这个生成器的代码和下面代码类似:

java 复制代码
public class SelfAssigner extends AssignerWithPeriodicWaterMark{
public static long delay = 60000; //1分钟
public long maxTs=0;//已经到达的元素的最大时间戳

public long extractTimeStamp(Event event){
maxTs = Max(maxTs, event.getTimeStamp);
return event.getTimeStamp();
}

public long getCurrentWaterMark(){
	return maxTs - delay;//具有1分钟容忍度的水位线
}
}

1.2 直接使用assignAsendingTimeStamp分配器生成水位线,它适用于输入的事件的时间戳是单调递增的,他会使用当前的事件的时间戳生成水位线记录

注意事项

你是否有个疑问,如果我一个自定义的水位线生成器发出一个比之前曾经发出的水位线记录的时间戳更小的水位线会有什么影响?答案是 flink会忽略掉,这就没有你想继续往下问的水位线回退所引发的一系列问题了

相关推荐
-今昭-5 分钟前
AnsibleVault加密配置及zabbix部署
大数据·elasticsearch·搜索引擎
水无痕simon12 分钟前
6、六大工作模式-2
java·rabbitmq
2601_963870211 小时前
【计算机毕业设计】基于Spring Boot的非遗文创产品交易平台的设计与实现
java·spring boot·后端
lv__pf1 小时前
Spring之AOP底层源码解析(下)【TL spring14】
java·后端·spring
瑞通软件源头厂家1 小时前
酒店管理软件如何实现动态定价:功能解析与运作机制
大数据·创业创新
水无痕simon1 小时前
5、六大工作模式-1
java
KhalilRuan2 小时前
UnityCsReference——笔记
java·开发语言·笔记
OceanBase数据库官方博客2 小时前
OceanBase Harness Engineering?AI 产品真正的瓶(技术解析与实践)
大数据·人工智能·oceanbase
何以解忧,唯有..2 小时前
SpringBoot 中 @Transactional 注解失效的 8 种常见场景与解决方案
java
IT学长编程2 小时前
计算机毕业设计 基于用户评论主题挖掘的旅游景点推荐系统 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
大数据·python·django·毕业设计·数据可视化分析·旅游景点推荐系统·基于用户评论主题挖掘