艾楠 2007-8-25 12:59
数据仓库系统体系结构分析
从理论上去分析与定义数据仓库与信息共享平台或者管理信息系统等的区别并没有什么意义。本文从工程实施的角度来探讨在设计数据仓库系统时所采用的几种体系结构以及各自的优缺点。
对于一个企业而言,最关键也最为重要的是,如何以一种有效的方式逐步整理各个业务处理系统中积累下来的历史数据,并通过灵活有效的方式为各级业务人员提供统一的信息视图,从而在整个企业内实现真正的信息共享。这一类的应用系统都可以称之为数据仓库。
直接报表
这类系统之所以称为直接报表(Direct Reporting),是因为业务人员通过一些OLAP/商业智能工具直接访问业务系统中的数据,并产生所需要的报表或者进行相关的分析。这种结构非常简单,只要把OLAP工具与现有业务系统进行连接,能够进行联机信息访问就可以了。它能够很快地向业务人员提供一定范围内灵活的多维分析报表,比传统的通过编程来生成报表的方式要快捷得多。
这种方式的主要问题在于:数据访问内容有限,局限于业务处理系统中现有的在线数据;无法提供统一的信息视图;影响业务处理性能。
独立数据集市
独立数据集市(Independent Data Mart)也被称为部门级数据仓库,往往是针对特定部门的业务需求而设计的。这里之所以在数据集市前冠以“独立”两字,是为了强调当企业为多个部门建立数据集市之后,这些数据集市彼此之间相互独立,具有不同的数据存储模型。在这种结构中,企业没有一个统一的数据存储模型。
把用于数据分析与决策支持的数据集市与业务处理系统物理上分离,通过ETL流程把业务系统中的数据经过清洗与整理后加载到数据集市。业务人员通过OLAP工具直接访问数据集市中的信息来生成多维报表或者进行其它信息分析。
在这种结构中,IT人员必须针对每个数据集市设计独立的ETL处理程序,把各生产系统的操作数据按照需要分别转换到每个独立数据集市中。这种策略将使整个系统变得非常复杂和难于维护,在投资方面也是得不偿失。这种结构最主要的问题还是在于没有统一的企业数据存储模型,不能为企业提供统一的信息视图。很多企业的数据仓库系统在达到一定规模后不得不更换平台,主要也是这个原因。Hub and Spoke企业级数据仓库
由于独立数据集市结构存在的问题,人们在规划数据仓库时已经逐渐转为实施企业级的数据仓库。对于企业级数据仓库,基本的要求是整个企业能够共享统一的数据存储模型,为各级业务人员提供一致的信息视图。实施时可以先按照需求的轻重缓急选择部分业务主题,然后逐步扩展到涵盖全部业务。
从结构上来看,企业级数据仓库主要分两种。先讨论第一种,即“Hub and Spoke”(集线器与车轮状)结构的企业级数据仓库。
这种结构与独立数据集市的主要差别在于增加了一个企业级数据仓库,它需要一个RDBMS来驱动。ETL流程首先将所有业务处理系统中的数据按照统一的存储模型加载到中央数据仓库,然后再按照各部门特定的需求把相关数据复制到部门数据集市。因为中央数据仓库汇集了来自各业务处理系统的数据,同时也负责向各数据集市提供信息,看上去像一个Hub (集线器)一样。而业务人员在进行数据分析与信息访问时将根据需要连接到不同的数据集市,这种交叉复杂的连接看上去就像Spoke(车轮辐条)一样。著名评估机构Gartner Group因此把这种数据仓库形象地称为“Hub and Spoke Data Warehouse”。
“Hub and Spoke”结构虽然解决了统一数据存储模型、数据一致性的问题,但从实际使用的角度来看仍有比较严重的缺陷。主要体现在两方面:一个是业务人员对信息的访问非常不方便,很难进行跨数据集市之间的信息分析。另一个问题是当数据集市增加时,系统整体投资迅速增加,同时管理的复杂性也随之增加。
当中央数据仓库保存越来越多的数据、并发用户越来越多时,一般的数据库引擎无法承担这样的负载,只好把它们分解到不同的数据集市。有些厂商为了解决跨数据集市之间信息访问的问题,推出一些“虚拟数据连接器(Visual Data Joiner)”的工具软件。对于数据量较大规模的系统来说,这种工具并没有多大的实用价值。
统一的企业级数据仓库
与“Hub and Spoke”结构相比,第二种统一的企业级数据仓库系统和它主要的差别在于:
1.数据集市分成物理与逻辑两种,物理数据集市设立在中央数据仓库之外,具有专门的软硬件设备。一般都使用OLAP服务器,按照特定需求组建多维立方体来提供多维信息分析。逻辑数据集市设立在中央数据仓库之内,由在基础数据之上形成的小结表或者逻辑视图组成。业务人员既可以访问多维立方体,也可以访问中央数据仓库内的小结表或者逻辑视图。基于OLAP服务器的数据集市比基于RDBMS的数据集市要容易维护得多,当然规模也相对较小。
2.中央数据仓库采用符合数据库范式理论(一般为第三范式)的存储模型来保存基础数据,从而为整个企业提供一致的信息视图。数据集市主要针对粒度较粗、预先定义的分析需求,对于动态的业务查询,粒度较细的或者针对基础数据的分析需求则由中央数据仓库提供。
3.在中央数据仓库中还设立了一个数据转换与缓冲区(Data Staging Area),作为ETL处理的一部分。由于在很多数据仓库的ETL处理流程中,需要对源数据作一些比较复杂的转换与清洗工作。于是,在一些系统中增加了一个ODS(Operational Data Store)层来进行数据的整理,但这将大大增加整体投资和管理复杂性。理想的方法是,在中央数据仓库中设置一部分存储空间来作为数据转换与缓冲区,借助数据仓库引擎强大的复杂查询处理能力,通过SQL实现数据的转换与清洗。
这种数据仓库结构解决了“Hub and Spoke”结构中存在的诸多问题,是一种比较理想的企业级数据仓库系统架构,能够为企业带来真正的业务价值与回报。但由于把详细数据分析、部分的数据转换与清洗等复杂处理均集中在中央数据仓库,从而对作为数据仓库引擎的RDBMS和相应的服务器带来了极大的挑战。选择这种数据仓库基础平台的基本要求是:数据仓库引擎和相应的数据库服务器具有优良的线性扩展能力;系统具有非常好的并行处理能力;能有效而简单地进行系统管理。
结束语
上面讨论了目前在设计决策支持/数据仓库系统时所采用的四种逻辑结构,并分析了各自的优缺点。对于大型的数据仓库系统而言,应该采用第四种,即统一的企业级数据仓库逻辑结构来进行规划和设计,才能适应今后数据量与业务规模的发展。