事情是这样的,我们接到一个项目,帮一加公司做大数据中台,展示不同的报表。首先需要把客户现在生产库的数据同步到我们的开发库,数据同步我们使用的是datax,速度很快,近三年的数据大概在3亿左右。
数据展示中台最终选用了达芬奇数据可视化平台,数据同步过来以后我们按需要展示报表的不同维度对数据做不同处理,生成结果集,根据业务我们自己建了很多细化表以满足对报表的计算。
开发人员使用的存储过程处理数据,具体的业务逻辑大概是:具体的数据每个月会产生一个表,每天的数据量在20W-60W不等,需要通过逻辑计算每个月、每个店铺、每天的销量、利润等数据,要计算这些结果集又需要逻辑计算每条数据的价格、折扣等(这个数据都在不同的表,有些数据值可能不在数据库中,该公司财务线下通过手动计算统计的),初期需要对全量数据做计算,以后每天还会有20-60W的增量数据。
现在用存储过全量跑数据需要20多个小时,如果数据对不上检查、解决问题后还要重新跑,严重影响开发进度。也想过使用java的多线程来处理,但是时间紧急,而且不知道如何划分线程。请大神们提供有效可行的方案!!!!