通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  新兵

注册:2016-9-271
跳转到指定楼层
1#
发表于 2019-3-8 19:43:11 |只看该作者 |倒序浏览
本帖最后由 huming000 于 2019-3-8 23:24 编辑

探讨的场景:
1、数据源:取出大量指标或其他需要计算统计的原始数据文件(txt、csv等类型),几十或几百个甚至更多,当前这个例子为小时级的小区指标文件;
2、存在的问题:很难在短时间内对大量的数据计算出所需要的结果;
需求:取出每个月,每个小区<最大RRC连接数>的最大的三天数据和其对应的其他指标;(迭代分组取TOPN的问题)
即:
第一次分组计算:取出每个小区每天24小时中,哪个时段的<最大RRC连接数>的值最大,并记录下这个时段(即自忙时);
第二次分组计算:以第一次分组结算的结果,作为数据源,取每个月中,每个小区<最大RRC连接数>最大的前三天对应的指标数据;
3、解决方案:
1.png
对于数据量比较大的场景,使用单机关系型数据库实现迭代分组的功能,耗时较长,有兴趣的朋友可以尝试一下,oracle里面的开窗函数可以解决此类场景的问题,但是具体性能如何,没有尝试过。单机mysql貌似没有能够有高性能的解决方案,我自己尝试过好几种写法,都无法避免索引失效导致的全表扫描问题;但无论如何,文件导入数据库的过程必然耗费大量时间。
4、业务流程:
2.png
5、代码过程落地:
3.png
4.png
6:源码:
源码.rar (183.82 KB, 下载次数: 17)

7:视频说明:https://v.youku.com/v_show/id_XNDA5MDM5MDM0OA==.html?spm=a2h3j.8428770.3416059.1








3.png (120.02 KB, 下载次数: 0)

3.png

源码.rar

183.12 KB, 下载次数: 10

举报本楼

本帖有 5 个回帖,您需要登录后才能浏览 登录 | 注册
您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-11-23 18:17 , Processed in 0.113365 second(s), 18 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部