应用DB2 BCU构建高性能数据仓库系统
本文论述了IBM关于数据仓库系统配置最佳实践BCU的概念和方法论,并给出了具体的配置方案,供我们在数据仓库规划或扩容时参考。
近几年来,国内许多大型企业纷纷开始规划或者实施基于数据仓库技术的决策支持系统、综合管理信息系统等各类决策分析平台。其中有很多企业的数据仓库系统是基于DB2数据库引擎的,但在数据仓库项目的实施过程中,对于如何构建高性能数据仓库仍然存在误区。有时候,为了提高数据仓库的性能,把大部分投资集中于购买高性能的主机,而忽略了CPU、内存、网络带宽、磁盘存储系统之间的平衡,结果建成了一个头大身子小不合理的系统;或者是购买了高性能的主机和高性能的存储系统,而没有很好的根据数据仓库系统的特点和数据仓库软件产品的特点来配置系统,因而没有达到预期的性能。 数据仓库的特点:
数据仓库管理大量的数据;在数据仓库技术出现以前,数据的容量是以MB和GB来度量的。在数据仓库技术出现以后,原先很大的数据量就显得微不足道了,当前数据仓库的容量基本是以TB(Terabytes)来衡量,有些企业像电信行业甚至到了PB(Petabytes)级别;这是因为数据仓库要求在同一个数据库中集成整个企业的数据,包括存储从细节数据到高度汇总的混合粒度和历史的数据。因此数据量的问题是如此重要,以至于影响到数据仓库技术的各个方面。而数据仓库建立的目的是为了支持整个企业的运营决策的,因而整个企业的各个部门的大量运营分析及决策人员会大量并发的访问数据仓库。因此,数据仓库负载主要是SQL查询处理,大部分SQL操作需要扫描大量的数据,有时候一个SQL查询会关联好几个表,甚至会存在几个非常大的表做关联操作的情况,因此数据仓库系统对磁盘存储系统的I/O性能要求很高。
因此我们在构建数据仓库系统时要充分考虑系统的性能,做到磁盘I/O,内存、处理器、网络带宽之间的平衡来提高整个数据仓库系统的吞吐量,使数据仓库系统提供最佳的性能。
而影响数据仓库系统性能最重要的因素包括,数据仓库引擎的体系结构是否支持大数据量的并发操作,系统的软硬件性能指标、特点能否很好的配合,以及保证系统能否实现线性扩展。当然数据在数据库中的存储方式、索引及应用的设计等也会在一定的范围内影响数据仓库的性能。
下面我们以DB2为例来介绍,怎样合理的配置数据仓库系统。
DB2数据库分区技术:
一个DB2数据库包括一个或者多个数据库分区(Partition)。每个分区在本质上就是一个小型的数据库:拥有且只拥有自己的数据、日志、锁以及其它的组成数据库的基本要素。所以,DB2多分区数据库也称为是基于非共享(Share Nothing)或者海量并行处理(MPP)构架的数据库。
在一些OLTP和ERP的环境中,由于数据量相对小,而且每次只是查询很少比例的数据。而在数据量很大,要求针对大量数据的并发查询的环境,比如数据仓库的环境,就需要多分区数据库。
DB2基于分区的、非共享的结构的好处是:
减少了对共享资源(内存,I/O通道,存储)的访问冲突,提高并行度;
分区内(SMP)并行和分区间(MPP)并行的完美结合。
在一个多分区数据库环境中,DB2管理多个分区,对于用户和应用程序而言,只是一个数据库。换句话说,一旦物理数据建立起来,用户和应用程序不会意识到是在访问多分区数据库。
在SMP的服务器上,可以建立非共享结构的多分区的数据库结构。如下图。在一个操作系统中多个处理器,多个数据库分区。
在MPP的环境中建立非共享结构的多分区的数据库结构,见下图。每个操作系统中,单个处理器,单个数据库分区。
利用节点组可以来实现数据灵活布局,通过设定不同的节点组,来把小表放置在单数据库分区上,而把大表放在尽量多的数据库分区上,来提高性能和吞吐量。
节点组的管理非常简单,甚至可以通过编辑DB2NODES.CFG文件,就可以完成节点组的配置。
- 本文关键词:

