liningnice 2020-11-19 10:14 采纳率: 0%
浏览 50

大数据迁移问题,数据涉及到很多的判断和运算,如何提升效率、减少时间

事情是这样的,我们接到一个项目,帮一加公司做大数据中台,展示不同的报表。首先需要把客户现在生产库的数据同步到我们的开发库,数据同步我们使用的是datax,速度很快,近三年的数据大概在3亿左右。

数据展示中台最终选用了达芬奇数据可视化平台,数据同步过来以后我们按需要展示报表的不同维度对数据做不同处理,生成结果集,根据业务我们自己建了很多细化表以满足对报表的计算。

开发人员使用的存储过程处理数据,具体的业务逻辑大概是:具体的数据每个月会产生一个表,每天的数据量在20W-60W不等,需要通过逻辑计算每个月、每个店铺、每天的销量、利润等数据,要计算这些结果集又需要逻辑计算每条数据的价格、折扣等(这个数据都在不同的表,有些数据值可能不在数据库中,该公司财务线下通过手动计算统计的),初期需要对全量数据做计算,以后每天还会有20-60W的增量数据。

现在用存储过全量跑数据需要20多个小时,如果数据对不上检查、解决问题后还要重新跑,严重影响开发进度。也想过使用java的多线程来处理,但是时间紧急,而且不知道如何划分线程。请大神们提供有效可行的方案!!!!

  • 写回答

1条回答 默认 最新

  • Leon.ENV 2020-11-20 16:49
    关注

    这个需求还挺复杂,不知道具体业务情况,这里只是本人的建议:

    1、关键是全量数据计算结果错误了需要重新计算,可以想想方法,能不能只需要补跑一小部分数据而不是全量数据,如:先对全量数据按照日期进行分片(假如按天分片),然后分别计算每个分片,最后合并所有分片的统计信息。如果发现某一天数据有误,只需要重新计算一个分片即可。具体按照什么字段来分片,需要根据具体业务来定。

    2、假如对全量数据分片后,就可以利用 java 的多线程处理每一个分片数据,最后再合并结果。

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料