同行分析优化

本文针对同行分析的业务场景,分析了现有方案的痛点,包括内存占用和计算资源浪费。提出了一种优化思路,通过在SQL中进行数据分块和巧妙的配对计算,避免全量内存加载和重复计算,实现不占内存和一键去重的目标。该方案在Spark中实现,具备良好的可扩展性。
摘要由CSDN通过智能技术生成

优化源于痛点(┬_┬)

有没有痛点取决于业务场景的需求;有多痛取决于当前方案对业务的契合度

让我们从业务场景①、当前方案②切入,联立①②来推导当前痛点③吧!

话不多说,开始分析

 

①业务场景:

1.同一时间段内出现在同一摄像头下的用户即为同行关系(不需要两个人同步出现在摄像头下,因为我司暂不支持在一张图片内一次性提取两个人,处理逻辑太麻烦了,还不如后面分析)

2.计算需要并行进行,每次计算一天的数据量,大约千万级

 

②当前方案:

将全部数据拉到内存,全局排序后按照时间段大小分块,然后通过滑动窗口进行计算,比如说时间段是10s,20.11.00到20.11.10为一个窗口,20.11.10到20.11.20为一个窗口,20.11.20到20.11.30为一个窗口,同一窗口直接判定同行,相邻窗口间需要计算确定是否同行,计算后还要每两个窗口之间去重

 

③当前痛点:

1.千万级数据拉到内存,会对内存造成一定压力,因为并不是只有这一个服务需要使用内存

2.计算过程大量重复,去重逻辑繁琐,浪费大量算力

 

那么问题来了,是否存在什么更合适的方案来解决这些痛点呢?

我想,是有的。

根据痛点③,反推我们的预期目标④;

根据目标④,尝试推导

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值