在很多业务系统中,往往涉及报表数据统计的功能,这些统计功能往往根据不同的行业、不同的分析角度而进行,不过,其相同点都是对业务明细数据根据需求进行各种统计汇总组合。这些功能在业务数据量较少的前期,一般没什么性能问题,但随着时间、业务的发展,数据量越来越多,而之前的一些速度很快的报表功能会变得越来越慢。这些现象估计有比较多人员在实际中碰到,所以,现在想看看各位日常中是如何解决这种问题的,最好包括从明细数据的组织、报表结果的数据如何组织、功能架构的原理逻辑等一系列的角度说明下。
另外,在数据仓库、数据挖掘等领域,数据量那么大,类似上述的现象问题又是如何解决的? 欢迎大家将实际中的上述类似问题的解决方案分享下,谢谢!ps:
可用分不多,倾我所能了。
另外,在数据仓库、数据挖掘等领域,数据量那么大,类似上述的现象问题又是如何解决的? 欢迎大家将实际中的上述类似问题的解决方案分享下,谢谢!ps:
可用分不多,倾我所能了。
你的这个问题,已经是数据仓库的概念了。
我们是把数据从在线事务数据库中提取出来,形成data warehouse, 以供报表分析工具使用。在提取中设置不同的维度来实现。所以仍建议你先看一下数据仓库的概念。
而我现在要问的,只是一些业务应用系统中一些业务简单的汇总统计功能罢了,难道一个小业务系统,也要专门去搞一个DW来处理,有点太过了吧?
奇怪了,难道你们平时的系统都没有统计功能模块的(例如一些统计报表之类的)?我只是想了解下你们平时在这方面怎么处理的,不会是为了一个系统中某个小统计功能而去搞个DW吧?
对大型的表,可根据需要定时将数据从表中取出,放到另外一个表中,专门供查询用,不影响事务的进行。
数据量再大的话,可以定期从数据库备份数据到另外一个数据库,查询这个数据库了。
如果再大的话,那就用DM和DW,用专门的DTS工具抽取数据,进行重新组织和处理了,就是所谓的数据仓库系统了。
1、收集数据。能够根据需要,方便的生成收集数据的页面。(带导出excel表格)(当然要有用户管理、授权的功能)
2、储存数据。
3、分析数据。
楼主 看你讲内容就知道你走入了一个误区;
一个系统肯定有它能承受能力设计,在设计系统时候就应该对业务量和数据量有所评估。
当业务量和数据量开始飙升或者差不多超过系统能承受压力时候,我们必须改善或者修改系统架构来解决,不是增加一两个表就可以解决了。当报表速度慢了,我们首先是检查问题出现原因。是SQL 不优化?还是系统数据量太大超过我们估算?是否服务器配置不好等等。
若SQL 不好,可以优化;若数据量太大,之前没有考虑数据量到,只能临时增加一些机制来快速解决,如:每个月对某些特定数据进行统计;若服务器不好,就要求买;出现问题原因很多;但可以总结为:系统使用初中期出现的问题,一般都是SQL不优化 和 对系统数据量评估不足。到了系统使用后期就是数据量爆炸性增加,系统需要修改架构。
其实你后面提到的那些点,都是在我前面问的解决方案的一部分,你这些方面都是从大的角度去论述。
如果要细一点,我觉得可以如下:
1、物理组织上:
分表(区)、同库、分库、分服务器等;
2、处理逻辑上:
直接查询、采用一般固定式的中间表、采用基于数据仓库的数据中间表(易扩展)等;
3、其它:
表字段数据类型优化、数据表关系设计优化、索引优化、SQL写法优化、硬件资源的优化、任务调度的资源均衡等;
我感觉要想以后不遭罪,必须先期受点累,其实最重要的还是多看看大型企业或机关的信息系统,如银行、电信、铁路等用的系统,可能你就会在数据仓库管理方便上一个很大的台阶!