发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA
1 2 下一页 Go 2

数据表每天五千四百万数据,,如何汇总

              
2015-01-05 15:46
赞助商链接

mysql数据表table1每天5千4百万数据,十张分表(或者五十张分表),目前还未确定分表数,
数据量是确定了,根据表中四个字段(c1,c2,c3,c4)汇总,四个字段相同就可合为一条,累加金额。
目前的处理方式是使用java, 不考虑存储过程(公司限制,分表太多,存储过程不利于维护)

方案一,在内存中计算判断,累加,在内存中保存汇总结果, 因为数据量太大, 不是很合适。
方案二, 批量取出(如五千条),一批批汇总, 将结果插入临时表中。再进行汇总。
方案三, 将四个字段的某个字段作为分表维度, 这样子的结果就是,每个表中的汇总结果都会各自独立,不需要再次汇总, 缺点是 每张表的数据量可能不平均。 (所有数据汇总完后,最多会有6万条汇总结果。)

汇总完后,最后还有个处理过程就是,汇总结果表table2中的主键id 需要回填进 table1 对应的记录(为了表明table1的记录汇总到了table2中的某条记录)。

个人认为几张方案都不是很合适。

论坛大神有其他好的方案么。

2015-01-05 15:52

很适合用Map/reduce,不过做起来可能要来回倒数据到hadoop中。

2015-01-05 16:58

2015-01-05 15:52 "@banq"的内容
很适合用Map/reduce,不过做起来可能要来回倒数据到hadoop中。 ...


不用hadoop, 单纯依靠数据库和多线程 自己写代码处理, 性能是不是永远满足 不了要求?

因为现在几十万条数据测下来都感觉很吃力,时间上难以接受

不用hadoop, 单纯依靠数据库和多线程 自己写代码处理, 性能是不是永远满足 不了要求?

因为现在几十万条数据测下来都感觉很吃力,时间上难以接受

2015-01-06 08:48

2015-01-05 16:58 "@tecentID52E46"的内容
不用hadoop, 单纯依靠数据库和多线程 自己写代码处理, 性能是不是永远满足 不了要求 ...


可能属于重新发明轮子,你可以借此学习Map/reduce算法。hadoop成熟稳定,见:http://www.cnblogs.com/liqizhou/archive/2012/05/16/2503458.html

2015-01-06 11:22

fork-join框架

2Go 1 2 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com