论坛首页 综合技术论坛

数据库大数据统计的设计方案

浏览 30271 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2010-08-30  

需要对一个大数据量(数量级在亿级别)的表,进行数据统计。

我想到要对数据库表进行水平切分。

为了后面方便描述,我先假设表里有三个字段,一个是用户的ID,一个是交易的金额,一个是交易的时间。

但问题是,比如我的统计要求是:要根据指定用户ID,以及一定交易时间区间(比如当前时间之前1个月内),用户金额的汇总达到一定数额的,我需要获取满足这些条件的用户ID列表。

假设设计水平切分,可以根据用户创建创建先后进行切分(其实针对前面描述的统计要求,根据用户的ID进行切分会更好。但考虑到有些统计项不包括用户ID,所以没有选择根据用户ID进行切分)。

当我们对数据完成切分之后,问题就出在对每个切片进行统计这里,因为我不知道其他的切片里,该用户的金额是多少,所以在对每一个切片进行统计的时候,无法判断是否满足统计条件(金额大于指定的值)。

所以就导致了要对每个切片里所有用户做group,然后再汇总每个切片的统计结果。

 

有没有什么更好的解决思路?

   发表时间:2010-08-31   最后修改:2010-08-31
对不起,小孩玩的。
0 请登录后投票
   发表时间:2010-08-31  
对不起,小孩玩的。
0 请登录后投票
   发表时间:2010-09-02  
做个月轧就成了,银行要是都这样算,早死机了
0 请登录后投票
   发表时间:2010-09-02  
ray_linn 写道
做个月轧就成了,银行要是都这样算,早死机了

移动有上百亿条数据的表,一样有数据库可以统计。看你投多少钱了。
0 请登录后投票
   发表时间:2010-09-02  
大表按时间表分区,再加张中间表,每天或每月定时统计一下写入中间表。
1 请登录后投票
   发表时间:2010-09-02  
首先,需要说明的是,我们统计的不是增量的数据,是不包含历史数据的。(如果还要统计历史数据,那就更没折了)
其次,按照目前的数据计算,大概统计需要统计8500万到9000万的数据。
考虑到今后的数据的增多,所以预计需要统计的数据量大概在3亿左右。
中间表也许是一个方案。
看那位大牛可以提出一个更好一点的方案。
非常感谢~
0 请登录后投票
   发表时间:2010-09-02  
离线的?如果是,可以试试hadoop
0 请登录后投票
   发表时间:2010-09-02  
forchenyun 写道
离线的?如果是,可以试试hadoop

也在考虑hadoop,但没有做过具体的测试。
现在正在用MySQL集群来做,想看看效率。

看你是杭州的,莫非是taobao系的?呵呵~
如果是,我知道你们就在使用hadoop,效率如何?还望指点一二。
0 请登录后投票
   发表时间:2010-09-02  
forchenyun 写道
离线的?如果是,可以试试hadoop


另外,数据是离线的。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics