论坛首页 Java企业应用论坛

讨论:大数据量的报表统计,性能作为第一考虑采取何种方案好

浏览 43178 次
精华帖 (5) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-25  
jizhan 写道
tedeyang 写道
yinjh 写道
其实,这么大的数据量时,概率论已经可以充分发挥作用了,
你只需要做抽样的统计就可以了
比如只统计1/10甚至1/100的记录
每条记录有一个字段,在生成记录是是1-10000随机数,并在上面做索引
对这个字段用where ,就可以抽样统计了
然后把抽样统计结果放大相应的倍数

思路挺有意思,不过大概不实用,这类报表一般都要求非常非常精确,像税务清算报表就是差一分就要比对出来。



确实是一个思路,不过我怕到时候用户每次报表图片都会大同小异,那不久惨了。


每次报表图片都会大同小异的问题很好解决

对于汇总数据,我们经常看到5.2万吨之类的统计数据,区分不出是5.21万吨还是5.22万吨
把结果数据“台阶化”就可以了
(四舍五入(数据/D))*D就可以了
如果不想让最后的位数都是0,D就不要用整数
先抽样统计几次,看看误差,再选取合适的D,让2次统计不一样的概率充分小就可以了。

对于百分比数据结果或者平均数结果,抽样会很精确的,只需要在小数点后面多少位四舍五入就可以了。尽量多设计这样的统计分析。

另外,还以从业务逻辑上找点借口,如“退单”或者“作废交易回冲”之类的来糊弄一下

另外,在系统规格说明书上写上一句,“各种统计结果相对误差小于0.1%”,用户平时不会注意,也不会给自己留后患的。
0 请登录后投票
   发表时间:2009-02-25  
其实就一个数据仓库的需求,中间表是关键。。。

要求支持多个主流数据库系统;

这个需求比较郁闷,其实Oracle在大规模数据库上面试很有优势的,例如,实态视图在数据仓库里面用得很多。。。
0 请登录后投票
   发表时间:2009-02-25  
为什么是纯Java呢?我第一眼看上去好像应该有个数据库才对啊!
0 请登录后投票
   发表时间:2009-02-25  
这样的东西我建议你使用商业智能工具,商业智能工具可以处理以T为单位的数据量。

首先进行维度建模,构造立方体模型,然后用ETL工具抽取和整理数据,最后用报表工具展现报表。你说的几种报表全都支持,而且速度很快。
0 请登录后投票
   发表时间:2009-02-26  
数据仓库+BI
专门干这个用的,要是自己做这两个东西,需要专家呀。
0 请登录后投票
   发表时间:2009-02-26  
cats_tiger 写道
数据仓库+BI
专门干这个用的,要是自己做这两个东西,需要专家呀。


对这些玩意就有个大致认识,没有专家啊
0 请登录后投票
   发表时间:2009-02-26  
在系统空闲时(或者在晚上用计划任务)先生成统计用的中间表,对数据进行汇总聚集,出报表的时候直接在中间表上进行统计,中间表可以分多层,对固定的报表可以预生成.当然,这个统计不实时,可以规定系统今天只能看到至昨天的数据.中间表也可以不放在业务系统的同一服务器上的.
0 请登录后投票
   发表时间:2009-02-26  
我们大概是这样做的,每次统计近一年的数据,按照天来归档记录。这样每年的数据大概是365条记录。报表从统计数据库中直接取统计好的数据即可。

当然也可以划分的更细致一些,一天的数据根据不同的要求,比如按照人,在分成N条记录。
0 请登录后投票
   发表时间:2009-02-26  
用xml数据库吧。
0 请登录后投票
   发表时间:2009-02-26   最后修改:2009-02-26
zyp731 写道
用xml数据库吧。


xml数据库?你确定个东西对大量的数据处理有有优势么?对这个东西不了解,思维还停留在XML对大数据量的表现上的劣势上
0 请登录后投票
论坛首页 Java企业应用版

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