论坛首页 Java企业应用论坛

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

浏览 43184 次
精华帖 (5) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-25   最后修改:2009-02-25
建议你去找一下数据仓库的解决方案看看。

如果按以前的操作型系统来做,估计你会很痛苦!
0 请登录后投票
   发表时间:2009-02-25  
不用存储过程想效率提高?我想不出好的办法。正如前面有位兄弟说的,不用存储过程说明数据和效率不够大。
15g是明细,多建几个聚集表,报表查的多数都是聚集数据,以空间换时间。
数据仓库就别掺和了,其实都一样的。除非用数据仓库数据库
0 请登录后投票
   发表时间:2009-02-25  
sdh5724 写道
存储过程从任何角度都是不利的。

我们说, 业务绑在数据库上, 非常不利于开发。 特别是变化比较大的应用。 大规模的数据尽量避免join等复发操作。 另外分阶段, 利用晚上空闲时间统计阶段性数据。 避免一次长时间跨度的计算。


你说的任何角度都是哪些角度啊,存储过程被你说的一文不值
0 请登录后投票
   发表时间:2009-02-25  
tedeyang 写道
yinjh 写道
其实,这么大的数据量时,概率论已经可以充分发挥作用了,
你只需要做抽样的统计就可以了
比如只统计1/10甚至1/100的记录
每条记录有一个字段,在生成记录是是1-10000随机数,并在上面做索引
对这个字段用where ,就可以抽样统计了
然后把抽样统计结果放大相应的倍数

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



确实是一个思路,不过我怕到时候用户每次报表图片都会大同小异,那不久惨了。
0 请登录后投票
   发表时间:2009-02-25  
对数据的类型进行分析,前面说过了

对数据进行水平和垂直划分,

多见几个数据库,cluster,
加服务器,加内存,加cpu


。。。。

数据库

0 请登录后投票
   发表时间:2009-02-25  
如果数据是采集得到的,我想数据是binary,那末这部分数据就不应该放到数据库里。
0 请登录后投票
   发表时间:2009-02-25  
jizhan 写道
对于一个纯JAVA实现的项目,有如下一些需求,采取何种方案为好呢:
        并发的、大数据量的持久化(最少15G/天);
        大量的报表统计(对上面收集的各种数据做统计,时间跨度月、周、天....不等);
        第一时间反应要敏捷;
        关系数据库多变;
        并发用户访问量不大;
        这是一个产品型的项目;

对于以上这么一个需求,采取什么实现比较合理?这里的合理第一位为性能,然后才考虑可维护性、扩展性(首先、然后都很重要,不能太有偏向)。个人认为项目的可维护性和扩展性主要与程序的具体设计有关系,与采取什么样的持久化方案关系不大,这里要考虑的其实就一个性能问题。
    呵呵,以前主要做行业软件,初次接触产品型的开发,也很少碰到这么大的数据量,感觉比较紧张,恭请各位赐教......
   


1。关系数据库多变?关系数据库真的多变么?如果数据库多变,应该是业务多变了?一个系统难道业务经常变化?如果一个业务经常变化的系统又怎能作为产品型项目?我感觉你应该是想说报表内容经常变化,至少目前可能还不是很确定吧!

2。不要把所有的事情都交给数据库。
  15g/天的数据真正能在报表里面用到的项又有哪些呢?根据报表需要,形成临时文件,每次针对临时文件进行操作。形成最终的报表结果。然后把最终的报表结果存放到数据库里面。这样每次的查询,只需要查询最终的结果

3。适当的空余时间。比方说,最新的数据只能到前一天。即:今天只能查询到昨天为止的最新结果

4。由于并发数量不大,什么时候进行计算不是关键。随时都可以。不过要考虑在数据采集清闲的时候。

5。适当的备份临时文件。比方说备份前1个月的数据。可以进行压缩备份。

至少我们在处理平均1天1个地区3t日志文件就是这样子处理的。而且没有任何的问题。做法大概就是这样。没有用hadoop。就是纯粹的java 和 shell。



0 请登录后投票
   发表时间:2009-02-25  
如果不做多维度的数据分析的话,可以不用OLAP!
这种大数据量的统计应用,只要将物化视图(Oracle)灵活用好,并集成一个专业的报表引擎基本上都可以很好的搞定,我们就是将JasperReport集成到我们的应用中,目前看效果不错!
0 请登录后投票
   发表时间:2009-02-25  
longlongriver 写道
如果不做多维度的数据分析的话,可以不用OLAP!
这种大数据量的统计应用,只要将物化视图(Oracle)灵活用好,并集成一个专业的报表引擎基本上都可以很好的搞定,我们就是将JasperReport集成到我们的应用中,目前看效果不错!

补充一点,SQL语句或存储过程的构造也非常重要!直接影响执行效率!
0 请登录后投票
   发表时间:2009-02-25  
1。可以参考一下数据仓库相关知识,建相应的模型。
2。不但要关注入库,同时还要关注删除数据,以及多久入库一次。
3。如果每天入库一次,且24小时内入数据以及删数据不能完成的话,
   考虑能不能变成多个数据集市,分到多台服务器上去。
0 请登录后投票
论坛首页 Java企业应用版

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