如何实现上亿级数据的精准计数?

面对亿级别数据的计数挑战,本文介绍了闲鱼团队采用的一种结合离线批处理和在线实时增量统计的方法。通过离线将数据同步到离线库进行批处理,结合在线KV存储记录增量数据,实现毫秒级响应的精准计数,有效支撑业务需求。
摘要由CSDN通过智能技术生成

背景

关系型数据库在执行计数任务时,其执行效率会随着数据量级的增长而降低;当数据量达到亿级别时,计数任务的执行效率已经低到令人不忍直视。在闲鱼团队的关系系统中,我们采用了这样一种方式来实现亿级别数据的毫秒级计数。

挑战

闲鱼现有的业务场景中,用户收藏宝贝、关注他人的数据量,已经达到亿级别。传统的关系型数据库如mysql,在执行有条件的count命令时,效率较低,在数据量较大的场景下,无法有效支撑线上业务的要求。

640?wx_fmt=png如上图,在亿级别数据量级的关系型数据库存储中按分表key执行count操作,光是响应时长这一个属性就已经远远无法满足线上业务的要求,更不要说频繁执行这种性能较低的查询语句对数据库性能的影响。 业内针对海量数据的计数场景,通常采用的解决方案有计数器和定时离线计算两种。两种方式各有优劣:

640?wx_fmt=png本文提出了一种基于离线批处理+在线增量统计的设计方案,将复杂耗时的数据库计数操作,替换为多次KV存储的读取和对接操作,在线上业务场景中实现了QPS峰值时响应保持在毫秒级别(10ms以内),成功率也始终接近100%的效果,有力的支撑了业务的开展。

方案

本文提出的计数方案,简而言之,就是定时的将数据全量同步到离线库中进行批处理,实时在线上对增量数据保持统计,最终合并

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值