商业智能系统数据库的规划

时间:2022-07-18 05:40:49

商业智能系统数据库的规划

摘要:信息化在中国经历数十年的发展,各企事业单位已经拥有了不同种类的成熟的基础信息系统,这些系统称为联机业务系统,如今根据自身发展的迫切需要,企业已经进入了商业智能(BI)分析的信息化阶段,商业智能所要解决的问题:如何充分利用这些分散在各个基础系统的信息,帮助企业更好的管理和决策以及为客户提供个性化的服务。商业智能系统与联机业务系统不一样,首先面临的问题是:数据量的急剧增长,联机业务系统也有,但是,联机业务系统通常的做法:定期会清理数据,而数据仓库系统里面通常至少保留数年的数据,所以膨胀的数据都要在数据仓库里面存储,比如以金融业的自然规律来讲:每年增40%的数据,如何设计和规划这些后台的数据,成为商业智能系统的设计的核心问题之一。本文提出的正是商业智能系统数据库的规划。

关键词:商业智能系统;BI;数据库的规划

中图分类号:TN915.5文献标识码:A文章编号:1007-9599 (2010) 11-0000-03

The Planning of Business Intelligence System Database

Jiang Shifeng

(Guangzhou Ke Teng Information Technology Co.,Ltd.Guangzhou528231,China)

Abstract:Information technology in China has experienced several decades of development,the enterprises already have the basis different types of information systems mature,these systems are called online business systems,and now an urgent need for the development according to their own enterprises have entered the business intelligence (BI) information analysis phase,business intelligence problems to be solved:how to take advantage of these scattered in various basic system information to help businesses better management and decision-making and provide personalized customer service.Business intelligence systems and online business system is different,first of all the problems are:the amount of data the rapid growth of online business systems has,however,online business systems,the usual practice:regularly clean up data,and data warehouse systems which are usually kept for at least a few years of data,so the expansion of data to be stored in a data repository,such as the financial sector in terms of natural law:40% annual increase in the data,how to design and planning of these background data,a business intelligence system,the core of the design problems.The proposed database business intelligence system is planning.

Keywords:Business intelligence system;BI;Database programming

一、基本规划

商业智能系统数据库的规划是一件较为复杂的综合性的工作,需要对系统做全方位的分析和规划。同时也需要较深厚的数据库管理经验与设计的知识,还要着眼于未来数据库中的数据量的不断增长或者用户数的激增,下面简要地介绍一下规划的一些因素以及一些原理:

(一)数据库的选择。关系数据库从理论的提出,到做成数据库产品发展到今天,已经是一个非常巨大,非常复杂,功能非常强大的成熟系统,尤其是一些商业数据库例如Oracle,Db2等对数据仓库提供了非常好的支持,当我们选择这些商业数据库的时候,一般选择较新的版本,较新的版本提供了更多更强大的功能,而且操作也相当简便,例如Db2 V9.1,DB2 V9.5就提供了自动内存调整,数据压缩及其它新功能(详细请咨询相关厂商)

(二)良好的存储I/O设计。必需有足够的磁盘设备来确保充分的I/O并行性,以支持大量的并发事物。对于中等工作负载而言,每个CPU至少应当有5到10个磁盘,对于高I/O OLTP工作负载而言,至少要有20个磁盘。操作系统(包括调页空间)、日志和表空间应当有各自的专用磁盘。应当有多个磁盘用于日志、表和索引。

估计良好性能所需的I/O处理能力的正确方式,实际上是制作事务日志原型并找出每个事务需要多少I/O,以及每秒需要处理多少事务。然后找出磁盘控制器和磁盘子系统的I/O速率,以帮助确定需要多少控制器和磁盘。

(三)有足够的物理资源并且能合理使用。如果一个系统配置充足的CPU、内存、高速硬盘和有足够的网络带宽,那这个系统就能很好的保证我们应用的系统。同时,在物理资源一定的情况下,如何合理使用它们也是性能调整的一个方面。例如,使用异步I/O,使用裸设备和使用并发I/O(CIO)等。

(四)合理的数据库配置参数。数据库配置参数影响数据库资源分配,合理的数据库配置参数可以充分发挥资源优势。使数据库可以在最合理最优的情况下运行。

(五)空间的规划。数据库存储空间有日志空间及表空间,表空间又分系统表空间,数据表空间等,将这些空间放到不同的存储设备,从而可以实现存储的并发访问,大大提高系统的性能。

此外一些重要的数据要单独划分表空间,可以针对这些空间单独进行备份和恢复以减少风险的发生。历史数据的表空间可以按一定的算法(比如取模)保证每年使用固定的表空间,这样每年维护固定空间的数据,大大减轻了维护的工作量。

另外,在一般情况下,系统处理数据的流程是:从分散的系统抽取数据到数据仓库,再在数据仓库数据的基础上加工为供业务人员分析的数据,对这两种类型的数据可以分别存储在不同的表空间,提供不同的管理和维护,而且万一发生故障的时候,二者不会相互影响。

(六)表物理空间压缩。DB2 V9新增了可用来压缩数据对象的基于字典的行压缩功能。在压缩数据时,通过使用较少的数据库页来表示相同数据,从而达到节省磁盘存储空间的目的。对于那些行中包含重复模式的大型表,将能从此功能中受益。数据行压缩(COMPRESS子句)可与现有的空间值压缩(VALUE COMPRESS子句)一起使用。对于使用行压缩的表,查询性能可能有所提高。可能需要更少的I/O操作来访问压缩数据,并且在压缩后,可以将更多数据高速缓存在缓冲池中。由于用户数据压缩在日志记录内,因此日志记录可能会变小。对于UPDATE 日志记录,则可能不会出现这种情况。与行压缩关联的成本取决于压缩和解压缩数据所需的额外CPU周期。在访问行中的数据时,压缩和解压缩是以行为单位执行的。要评估使用行压缩后存储器的节省情况,可使用DB2 INSPECT联机实用程序的ROWCOMPESTIMATE选项。在启用了表的COMPRESS属性并创建了压缩字典之后,才可压缩行。可通过CREATE或ALTER TABLE语句来设置COMPRESS属性。可使用REORG TABLE 命令来创建压缩字典。在处理REORG 命令时,现有的所有表行都要被压缩。数据行压缩不适用于索引、LOB、LF或XML对象。

Db2V9前的版本支持有三种方式的压缩,分别是空间值压缩(VALUE COMPRESS子句)、索引压缩(MDC技术)和数据库备份压缩, DB2 V9新增了可用来压缩数据对象的基于字典的行压缩功能。

实践证明,数据库表压缩中仅行压缩就可以节省超过50%的存储量,同时数据以压缩的方式传进内存,缩短了IO传送时间。

(七)多维聚集类(MDC)。MDC是在 DB2 Version 8 中引入的,通过它可以在物理上将在多个维上具有类似值的行聚合在一起放在磁盘上。这种聚合能为常见分析性查询提供高效的 I/O。对应MDC表中索引相同的所有行,可以将它们存储在相同的存储位置,即所谓的块(block)。在 CREATE table 语句中定义维的时候,就为每种值的组合预留了存储空间。实际上,MDC 是一个能最大化查询性能的特性,对于数据仓库中常用的查询更是如此。

MDC 对性能的贡献在于提高检索数据的效率。在多个维上具有近似值的数据存储在相同的位置,这使得I/O操作变得更高效,而I/O操作正是数据仓库中一个常见的瓶颈。而且,MDC 特性还包括块索引,在块索引中,对于每个块的数据(而不是每一行的数据)都有一个条目。这使得执行索引操作时有更高的效率。为了发挥它潜在的性能,必须为MDC 表设计一组最佳的(或者至少是够好的)维。MDC只对那些包括维列的查询有好处。MDC 对于查询是完全透明的。

(八)全量快速清除大表数据。在全量抽取的Job利用自定义快速清除大表的存储过程,缩短Job批量运行的时间,提高整个批量的效率,例:clear_glsfr(‘表名’,‘标识’)。

(九)数据库日志空间监控。商业智能系统最核心的功能是数据处理,数据处理一般以数据库为主,数据库稍有异常,导致整个批量及后续报表异常,影响整个系统。监控功能主要是监控数据库的资源使用情况等,特别是监控数据库的日志空间,在这样的 系统中一般涉及到的数据量都比较大,因此容易出现数据库日志空间不足的问题,当有了日志监控等功能后,可以查看某个时间点数据库日志空间变动情况,再结合数据批量控制(规定了源数据的抽取顺序)的日志(记录每张表在什么时间点做了什么工作,什么时间点数据库在运行哪个存储过程等)就可以找到系统哪些地方出现了大事务及没有及时提交的事物,从而保证系统数据的正常处理。

以下如下图日志监控的数据主要有:

1.日志生产时间(TIMESTAMP)。2.辅助日志空间最大值(SEC_TOP)。3.总日志最大值(TOTAL_TOP)。4.辅助日志空间当前值(SEC_CURRENT_USED)。5.总日志当前值(|CURRENT_USED)。6.剩余总日志空间(TOTAL_FREE)。

数据库性能检测图:

通过这个监控,结合系统日志,很好发现了系统中异常的处理,可以迅速定位到问题发生的地方。

现在国外的企业,大部分已经进入了中端BI,叫做数据分析。有一些企业已经开始进入高端BI,叫做数据挖掘。而我国的企业,目前大部分还停留在报表阶段数据报表、数据分析、数据挖掘是BI的三个层面。我们相信未来几年的趋势是:越来越多的企业在数据报表的基础上,会进入数据分析与数据挖掘的领域。商业智能所带来的决策支持功能,会给我们带来越来越明显的效益。

参考文献:

[1]牛新庄.DB2数据库性能调整和优化.清华大学出版社,2009,5

[2](美)Ralph Kimball.数据仓库生命周期工具箱.清华大学出版社

上一篇:论体系结构下关于软件可靠性的分析 下一篇:基于网络的学生成绩系统平台的设计与研究