论坛首页 Java企业应用论坛

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

浏览 43183 次
精华帖 (5) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-24  
jizhan 写道
对于一个纯JAVA实现的项目,有如下一些需求,采取何种方案为好呢:
        并发的、大数据量的持久化(最少15G/天);
        大量的报表统计(对上面收集的各种数据做统计,时间跨度月、周、天....不等);
        第一时间反应要敏捷;
        关系数据库多变;
        并发用户访问量不大;
        这是一个产品型的项目;

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


单看这份需求就自相矛盾!

并发的、大数据量的持久化(最少15G/天) vs 并发用户访问量不大
不知道这个15G/天的数据怎么来的?

关系数据库多变 vs 这是一个产品型的项目
合起来就是多变的产品 ...




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

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


单看这份需求就自相矛盾!

并发的、大数据量的持久化(最少15G/天) vs 并发用户访问量不大
不知道这个15G/天的数据怎么来的?

关系数据库多变 vs 这是一个产品型的项目
合起来就是多变的产品 ...





貌似lz的问题不在报表上
0 请登录后投票
   发表时间:2009-02-24   最后修改:2009-02-24
stephen830 写道
jizhan 写道
对于一个纯JAVA实现的项目,有如下一些需求,采取何种方案为好呢:
        并发的、大数据量的持久化(最少15G/天);
        大量的报表统计(对上面收集的各种数据做统计,时间跨度月、周、天....不等);
        第一时间反应要敏捷;
        关系数据库多变;
        并发用户访问量不大;
        这是一个产品型的项目;

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


单看这份需求就自相矛盾!

并发的、大数据量的持久化(最少15G/天) vs 并发用户访问量不大
不知道这个15G/天的数据怎么来的?

关系数据库多变 vs 这是一个产品型的项目
合起来就是多变的产品 ...





挺有意思,还是我没说清楚:
    项目定时并发的到不同地方去采集数据然后对数据进行处理。该产品是管理类型的东西,使用的用户群是有范围界定的;
    用来存储数据的数据库不定,随着客户的需求可以支持目前主流的大部分数据库;

    还有我前面犯了个错,项目要统计各种报表,对检索出的数据有一些处理,所以用存储过程应该有用处,只是一般的存储过程可能与具体的关系数据库有关,所以不太想使用这个东西(存储过程)

0 请登录后投票
   发表时间:2009-02-24  

挺有意思,还是我没说清楚:
    项目定时并发的到不同地方去采集数据然后对数据进行处理。该产品是管理类型的东西,使用的用户群是有范围界定的;
    用来存储数据的数据库不定,随着客户的需求可以支持目前主流的大部分数据库;

    还有我前面犯了个错,项目要统计各种报表,对检索出的数据有一些处理,所以用存储过程应该有用处,只是一般的存储过程可能与具体的关系数据库有关,所以不太想使用这个东西(存储过程)




即使不用存储过程, 大数据量的报表输出, 为了性能, 都应该是尽量用对数据库友好的复杂 sql 语句完成, 很有可能会写成数据库相关的.

0 请登录后投票
   发表时间:2009-02-24  
项目定时并发的到不同地方去采集数据然后对数据进行处理
----这就是说,这是一个数据集成项目,很少或基本没有录入系统
该产品是管理类型的东西,使用的用户群是有范围界定的
----似乎是指该系统主要为管理决策人员使用,很可能在过程中遇极其变态的用户需求

结论: 感觉象是比较典型的OLAP需求....用OLTP的思路,恐怕会遇到N多问题,效率上,伸缩性上,方案上...
随便拉拉^_^
0 请登录后投票
   发表时间:2009-02-24  
不必太在意数据库绑定
这部分完全可以通过灵活的设计来避免过硬的绑死
0 请登录后投票
   发表时间:2009-02-24  
BI啊!!
0 请登录后投票
   发表时间:2009-02-24  
并发的、大数据量的持久化(最少15G/天);
能说说都是些什么数据吗?每天能有15G,很是好奇
0 请登录后投票
   发表时间:2009-02-24  
前端做数据库适配器,后端分段存储统计临时文件,文件格式自行优化,不要用数据库。

有点技术含量的地方就在这个临时文件上,其他都是体力活。

也就这种15G/天的小流量应用可以考虑用java了...

我们3路高速视频处理每秒就要处理100M,直接使用8G内存缓存.这样的需求,java就不用考虑了。你们这个需求,用java唯一好的一点就是数据库适配器能直接用jdbc...
0 请登录后投票
   发表时间:2009-02-24  
其实,这么大的数据量时,概率论已经可以充分发挥作用了,
你只需要做抽样的统计就可以了
比如只统计1/10甚至1/100的记录
每条记录有一个字段,在生成记录是是1-10000随机数,并在上面做索引
对这个字段用where ,就可以抽样统计了
然后把抽样统计结果放大相应的倍数
0 请登录后投票
论坛首页 Java企业应用版

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