锁定老帖子 主题:数据库大数据统计的设计方案
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2010-08-30
需要对一个大数据量(数量级在亿级别)的表,进行数据统计。 我想到要对数据库表进行水平切分。 为了后面方便描述,我先假设表里有三个字段,一个是用户的ID,一个是交易的金额,一个是交易的时间。 但问题是,比如我的统计要求是:要根据指定用户ID,以及一定交易时间区间(比如当前时间之前1个月内),用户金额的汇总达到一定数额的,我需要获取满足这些条件的用户ID列表。 假设设计水平切分,可以根据用户创建创建先后进行切分(其实针对前面描述的统计要求,根据用户的ID进行切分会更好。但考虑到有些统计项不包括用户ID,所以没有选择根据用户ID进行切分)。 当我们对数据完成切分之后,问题就出在对每个切片进行统计这里,因为我不知道其他的切片里,该用户的金额是多少,所以在对每一个切片进行统计的时候,无法判断是否满足统计条件(金额大于指定的值)。 所以就导致了要对每个切片里所有用户做group,然后再汇总每个切片的统计结果。
有没有什么更好的解决思路? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-08-31
最后修改:2010-08-31
对不起,小孩玩的。
|
|
返回顶楼 | |
发表时间:2010-08-31
对不起,小孩玩的。
|
|
返回顶楼 | |
发表时间:2010-09-02
做个月轧就成了,银行要是都这样算,早死机了
|
|
返回顶楼 | |
发表时间:2010-09-02
ray_linn 写道 做个月轧就成了,银行要是都这样算,早死机了
移动有上百亿条数据的表,一样有数据库可以统计。看你投多少钱了。 |
|
返回顶楼 | |
发表时间:2010-09-02
大表按时间表分区,再加张中间表,每天或每月定时统计一下写入中间表。
|
|
返回顶楼 | |
发表时间:2010-09-02
首先,需要说明的是,我们统计的不是增量的数据,是不包含历史数据的。(如果还要统计历史数据,那就更没折了)
其次,按照目前的数据计算,大概统计需要统计8500万到9000万的数据。 考虑到今后的数据的增多,所以预计需要统计的数据量大概在3亿左右。 中间表也许是一个方案。 看那位大牛可以提出一个更好一点的方案。 非常感谢~ |
|
返回顶楼 | |
发表时间:2010-09-02
离线的?如果是,可以试试hadoop
|
|
返回顶楼 | |
发表时间:2010-09-02
forchenyun 写道 离线的?如果是,可以试试hadoop
也在考虑hadoop,但没有做过具体的测试。 现在正在用MySQL集群来做,想看看效率。 看你是杭州的,莫非是taobao系的?呵呵~ 如果是,我知道你们就在使用hadoop,效率如何?还望指点一二。 |
|
返回顶楼 | |
发表时间:2010-09-02
forchenyun 写道 离线的?如果是,可以试试hadoop
另外,数据是离线的。 |
|
返回顶楼 | |