flink的计时器

背景

在flink中,我们经常使用ontimer计时器实现很多逻辑的功能,常见的比如某个传感器温度增加连续超过1分钟的告警输出等,本文就来简单记录下计时器的作用

计时器

ontimer的定义

java 复制代码
public void onTimer(long timestamp, OnTimerContext ctx, Collector<O> out)

timestamp: 触发定时器的事件/处理时间戳,这个时间是register定时器时指定的那个时间

ctx: 上下文对象,通过它可以访问水位线时间戳,处理时间时间戳,当前键值等

out:主输出,注意,ontimer定时器中也可以输出记录

基本上在定时器中我们能实现的逻辑和在process主逻辑中的一样

计时器局限性

我们只能在KeyedStream上,也就是键值分区数据流上注册计时器,如果你想要在DataStream上面使用,你需要首先把DataStream转换成KeyedStream,而转换的方式可以通过实现一个返回常数值的KeySelector来创建KeyedStream,但是一旦这样做,下游的算子的并行度相当于实际变成了1,性能会受到极大的影响.

相关推荐
SelectDB技术团队30 分钟前
顺丰科技:从 Presto 到 Doris 湖仓构架升级,提速 3 倍,降本 48%
大数据·数据库·数据仓库·信息可视化·数据分析·doris·实时分析
一只专注api接口开发的技术猿2 小时前
1688 API 自动化采集实践:商品详情实时数据接口开发与优化
大数据·运维·数据库·自动化
千叶真尹4 小时前
基于Flink的用户画像 OLAP 实时数仓统计分析
flink
静听山水5 小时前
Hive表JOIN性能问
大数据
完美世界的一天5 小时前
ES面试题系列「一」
大数据·elasticsearch·搜索引擎·面试·全文检索
Caron_xcb5 小时前
大数据基础——Ubuntu 安装
大数据·linux·ubuntu
好吃的肘子6 小时前
ElasticSearch入门详解
java·大数据·elasticsearch·搜索引擎·云原生
IvanCodes7 小时前
四、Hive DDL表定义、数据类型、SerDe 与分隔符核心
大数据·hive·hadoop
IvanCodes9 小时前
三、Hadoop1.X及其组件的深度剖析
大数据·hadoop·分布式
IvanCodes10 小时前
三、Hive DDL数据库操作
大数据·数据库·hive·hadoop