优化源于痛点(┬_┬)
有没有痛点取决于业务场景的需求;有多痛取决于当前方案对业务的契合度
让我们从业务场景①、当前方案②切入,联立①②来推导当前痛点③吧!
话不多说,开始分析
①业务场景:
1.需要计算时间和空间都在一定范围内的数据对,数据来源可能有多种类型,人、车、码等
2.计算需要并行进行,每次计算一天的数据量,大约亿级
②当前方案:
先按照前文的同行从时间上划分,然后按照geohash从空间上划分,在边界点处理上用的是先计算好所有数据的geohash映射,然后广播到所有节点
③当前痛点:
1.计算空间范围大的时候映射map会爆炸
2.计算过程大量重复,去重逻辑繁琐,浪费大量算力
那么问题来了,是否存在什么更合适的方案来解决这些痛点呢?
我想,是有的。
根据痛点③,反推我们的预期目标④;
根据目标④,尝试推导出优化思路⑤;
落地思路⑤,成为最终的优化方案⑥
④预期目标
1.不整串行计算,全程并行
2.避免重复计算,一键去重
⑤优化思路
1.直接在sql里分好片
2.从数学上逻辑推导来解决