报表统计—个人踩坑记录
前提
第一次接触报表统计,踩坑内容:
1.数据量及其的大(怕是我没有见过世面~)
2.存储位置不合理,导致数据筛选等困难(不仅位置不合理,还没有索引)
3.报表工具使用存在问题,导致数据缓存占满部署文件夹,导致启动服务异常
4.在接触此之前,并没有使用过mongo和hive等大数据存储中间件。
第一个使用的坑
数据来源问题不说,该坑是统计点击频次(类似于),是通过点击的日志数据进行的数据分析,但是我发现这个数据存在了mongo表里、数据量过亿(3亿)并且只有一个时间索引,看完之后心态直接爆炸。对于并没有使用过Mongo的我,只能去看之前人写的,并进行修改,之前他们用的是mongo的聚合查询,我也是按部就班,但是,数据量导致我的查询,内存溢出以及查寻时间过长等问题。
第一个解决方案
1.将数据定时迁移至备库,并且只迁移使用内容,在迁移的过程中建立索引(这个操作是为了不影响生产环境以及对mongo建立索引)
2.1操作之后数据在多条件的情况下是可以查出数据(有分组等操作)
3.通过定时任务调用方法,通过循环类型查询,将Mongo查询结果保存起来。
通过以上操作获取了所有类型的汇总结果~~~~
第二个使用的坑
报表工具本身使用了hsql ,估计是将加载的数据写入了,然后定时清理过时的数据,但是由于我的数据量过大加载过于频繁,导致还未到清理时间,就把分给工具的总空间占满了,单单扩容都无效。
第二个使用的解决方案
1.转移了软件本身,换了个更大的空间。
2.将清理时间缩小。
只要程序不崩溃,定时执行清理即可(除非磁盘无法承载1个最大表数据数*2的空间,那是真应该扩容了)。