Flink - 小小优化

本文探讨了在Flink任务中处理时间戳的优化策略,包括按天、小时和分钟对时间进行归一化的方法,并提供了计算时间戳之间相差天数的逻辑。此外,还介绍了Keyed优化的重要性,建议限制key的数量并使用清理策略处理过期key,以提高性能。
摘要由CSDN通过智能技术生成

时间优化

业务数据中的时间一般都是秒级或者毫秒级别的时间戳。比如:1605429248

在我们的flink任务中,对时间的使用比较多的,在平时使用的过程中,对时间处理上的优化有点小小的建议

1.对时间做key by时(timeLong 标示时间戳:1605429248):

  • 周一 00:00:00 :time - (time - (-28800 - (86400 * 3)) + 604800L) % 604800L
  • 天:(timeLong + 28800) / 86400 
  • 小时:timeLong/3600
  • 分钟:timeLong/60

2.判断两个时间戳相差天数,如 1614095700(2021-02-23 23:55:00) 和 1614102900(2021-02-24 01:55:00),相差一天,可以做算术逻辑处理

int diffDay = (1614102900+28800)/86400 - (1614095700+28800)/86400

 

Keyed 优化

key的数量尽量是有限的。如果key的数量无限,可以使用Hash,然后取余。将key存入state中,使用清理策略,将过去的key做处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值