数据仓库体系结构

更新于 2026年10月10日 版权声明
三、数据仓库体系结构

(一)数据仓库一般模型

数据仓库是解决决策支持系统数据存储的技术方案。数据仓库系统体系结构绝大部分是基于作为信息数据中心存储的关系数据库管理系统。在数据仓库体系结构中,操作型数据处理完全和数据仓库处理分离。

数据仓库系统的层次结构可以采用两层结构,即客户机/服务器结构,这是典型的胖客户机模型。客户端执行的功能包括用户界面、查询规范、报表格式化、数据挖掘、数据聚集以及数据访问等功能。服务器端提供的服务包括数据逻辑、数据服务、性能监控以及元数据存储。图2-15给出了两层体系结构的功能分配示意图。数据仓库服务器通常是一个关系数据库系统,服务器需要解决如何从外部或者操作型数据库抽取数据,创建数据仓库等。

图示

图2-15 二层数据仓库系统结构

两层体系结构的缺点是缺乏可伸展性和灵活性,因此,现在提出了三层体系结构。三层体系结构解决了两层体系结构的上述缺点。在两层体系结构基础上,增加一个OLAP服务器作为应用服务器,执行数据过滤,聚集以及数据访问,支持元数据和提供多维视图等功能。而客户端只运行图形用户界面、查询规范,报表格式化和数据访问功能。图2-16给出了三层数据仓库体系结构的示意图。

图示

图2-16 三层数据仓库系统结构

从结构的角度看,有三种数据仓库模型:企业级数据仓库、数据集市和虚拟数据仓库。企业数据仓库对主题的所有信息收集以后进行存储,数据处理涉及整个组织。特点是组织范围进行数据集成、包含多种粒度级别的数据、存储容量大、开发周期长(至少几年)。企业级数据仓库可以在传统大型计算机上实现,如UNIX超级服务器或者并行结构平台:数据集市针对特定部门,是企业范围数据的子集。特点是开发周期短(几周)、主题少、实现费用低(基于UNIX或者Windows NT的部门服务器)。虚拟数据仓库(Virtual Data Warehouse)是在操作型数据库上实现有效查询的方案。特点是容易建立,要求操作型数据库服务器具有剩余计算能力。

(二)独立数据集市体系结构

许多数据仓库解决方案供应商在一个产品中将数据抽取、数据库设计以及分析工具集成在一起销售(如微软公司的SQ Lsevrer2000)。独立数据集市体系结构如图2-17所示。

图示

图2-17 独立数据集市体系结构

在独立的部门数据集市体系结构中,数据源的数据经过抽取、转换和装载以后存储到目标数据库,用户通过数据分析工具提供的GUI访问数据。局部元数据(描述数据集市数据的数据)存储在目标数据库中。显然,该体系结构不能解决数据仓库的两个问题:

(1)脏数据(包含遗漏、不一致、错误值的数据)问题;

(2)孤立的数据集市问题。

由于采取同一个厂家的开发工具,系统还存在同其他数据仓库解决方案提供商的工具不兼容的问题;而且,该体系结构不遵循共同的语法规则、语义和数据定义。

显然,这种体系结构能够满足个别部门数据分析的需要。但是,由于没有同其他部门结合,要在组织级别实施数据仓库,这种体系结构存在难于扩展的问题。

(三)多个独立数据集市

数据集市在某个部门建成并取得一定效益以后,其他部门也开始计划实施数据集市。因此,作为上图体系结构中单个数据集市访问数据源的发展,当组织中许多部门都建立数据集市以后,就会出现图2-18所示体系结构。该体系结构支持多个非集成的独立的数据集市,每一个数据集市都提供各自业务领域的分析访问能力以及各个部门都是从独立的单个目标数据库中分析数据。

图示

图2-18 多个独立数据集市体系结构

这种体系结构中各个部门的数据集市没有经过集成,因此也不支持企业级数据仓库策略。多个独立数据集市体系结构具有以下特点:

(1)存在多个抽取程序访问数据源;

(2)数据集市没有集成,也就意味着各个集市之间没有共同的语法规则、语义以及数据定义;

(3)不存在唯一的、经过净化的、一致的决策支持系统信息;

(4)源数据具有多个不一致的数据视图。

显然,这种体系结构的特点决定了以下缺点:

(1)体系结构环境混乱,维护困难;

(2)具有单个独立数据集市的缺陷,也就是存在脏数据问题以及孤立的数据集市问题;

(3)同一事实具有不一致的视图(多个不一致的局部元数据存储)。

(四)具有数据抽取工具的独立数据集市

为了解决独立数据集市的数据仓库集成的问题,需要在体系结构中添加一层数据抽取程序。

图示

图2-19 具有ETL的独立数据集市

图2-19所示的体系结构与图2-17所示的独立数据集市结构相比较,源数据库和目标数据库之间增加了一层抽取、转换和装载工具。经过这层结构,解决了图2-17中存在的集成问题。

图2-19中抽取、转换和装载工具是数据抽取的单独访问点,从而提供对数据源的同等访问。另外,ETL工具同时将数据清理作为抽取和转换的一部分。这样就解决了脏数据问题,源文件的数据能够被统一清理。因此解决了数据的不一致问题。图2-19体系结构具有以下两个特点:

(1)中央元数据;

(2)具有管理和数据建模工具。

但是,该体系结构仍然具有一些问题。由于各个数据集市之间相互独立,因此,各个数据集市依然是孤立的,因为各个数据集市的元数据还没有同中央元数据结合,从而导致该体系结构具有以下缺陷:

(1)各个数据集市之间不存在共同的语法规则、语义和数据定义;

(2)最终结果是非集成的、非体系化的数据集市实现,从而导致组织级数据仓库项目失败。

(五)具有数据抽取工具的体系化数据集市

部门数据集市的元数据没有和中央元数据相结合,因此,出现非集成、非体系化的数据集市。为了解决上述问题,产生了将全局元数据同局部元数据结合起来的思想,从而产生图2-20所示体系结构。

图示

图2-20 具有ETL的体系化数据集市

将中央元数据通过元数据交换体系和数据集市的局部元数据相结合,解决了图2-19所示体系结构的集成问题:体系化的数据集市共享企业全局相同的业务规则、语义和数据定义。为什么不通过共享中央元数据,而采取中央元数据和局部元数据相结合来解决集成问题呢?因为部门数据集市的元数据描述的是数据集市的局部信息,除了共享整个组织范围的共同业务规则和数据定义以外,还有自身的业务规则和语义。如果采用共享中央元数据方式,则不能满足局部数据集市的特殊规则。具有ETL的体系化数据集市具有以下特点:

(1)数据集成是在中央元数据仓库的基础上进行的,所有的数据仓库组件都由中央元数据驱动;

(2)数据仓库开发人员可以选择不同供应商提供的数据仓库组件。但是,所有的组件必须同中央元数据相结合,各个数据集市也必须遵循共同的开发框架。信息技术部门必须监督所有数据集市的开发都使用公共的体系结构标准。

进行第一次数据仓库项目开发时,应该采用下列组件开发的体系化数据集市:

(1)选择ETL工具:用来访问一个或者多个相对较新的数据源。另外,ETL还应该具有简单的转换功能;

(2)选择目标数据库:数据库模式可以采用层次、网状以及关系数据库,但是,目前绝大多数应该采用关系数据库;

(3)简单的OLAP终端用户工具:OLAP工具的作用是将元数据从中央元数据仓库读到局部元数据,这样,所有的体系结构组件都通过公共元数据联系起来。

(六)多个体系化的数据集市

随着数据集市在某个部门开发的成功,越来越多的部门要求建立数据集市,因此,企业需要实现其它体系化的数据集市,每一个数据集市都将元数据从中央元数据仓库读出。最后,就出现了许多的体系化的数据集市,如图2-21所示。

多重数据集市具有以下特点:

(1)源数据库种类较多可以是关系、网状和层次数据库;

(2)目标数据库形式多样可以是关系数据库或者多维数据库;

(3)多个数据集市支持独立的商务领域;

(4)每个数据集市都同中央元数据结合;

(5)数据从多种类型的数据源经过ETL抽取、转换、装载到多种目标数据库;

(6)体系结构采用更加复杂、集成的数据仓库框架,包括数据抽取工具,数据建模工具、元数据仓库以及数据仓库管理工具;

(7)适合样板项目开发可以在开发各个数据集市期间学习经验,不断提高开发水平。

当然,这种体系结构的现实问题是,目前数据集市解决方案供应商很少提供将局部元数据同中央元数据结合的机制。因此,采用这种体系结构开发的结果是很难避免孤立数据集市的产生。

图示

图2-21 多重体系化数据集市

(七)企业级数据仓库体系结构(https://www.daowen.com)

数据仓库扩展成企业范围的体系结构时,体系结构会发生很大变化,其中最显著的变化是需要一个用来存储详细(原子)数据的中央数据仓库,从而满足个别的、对详细数据的查询。图2-22给出了企业级别的数据仓库体系结构,这个体系结构包含的组件和特性如下:

(1)系统需要一个用来驱动多重数据集市的、具有海量存储的中央数据仓库;

(2)系统具有多种多样的数据源数据库,如DBZ、关系数据库管理系统等;

(3)中央数据仓库用来存储细节数据,中央数据仓库为组织范围的分析和查询服务;

(4)数据仓库的协调和管理需要以中央元数据为基础;

(5)体系结构既具有较高开发价值,同时又具有很大风险,因为该体系结构组成、开发周期长,需要较大的资金和人力投资;

(6)体系结构适合终端用户需要访问详细数据的场合。

如果最终用户通过访问概括数据不能做出决策而需要访问细节数据,数据仓库设计人员就应该考虑采用具有中央数据仓库的体系结构。

图示

图2-22 企业级数据仓库体系结构

数据源是操作型应用,绝大多数是企业目前或者历史系统中产生的数据,包括关系数据库系统数据(虽然目前还有其它类型数据库,如层次、网状数据库,但是,我国的信息系统几乎所有的数据库系统都是关系数据库),应用程序产生的大量数据、企业历史遗留的数据(这些数据对于企业的决策分析很有益处)以及外部数据。当这些数据进入数据仓库的时候,要进行一系列处理,如转换、概括、过滤以及数据聚集等,经过这些处理,源数据才能以集成的格式进入数据仓库。因为数据仓库中包含大量历史元素,因此,数据仓库必须具有存储和管理大量数据的能力以及不同数据结构的能力,如前面所说的数据结构。

图2-22所定义的数据仓库体系结构只是众多企业级体系结构中的一种。图中中间层表示其他多维数据访问分析工具,例如联机分析挖掘(On—Line Analysis and Mining,OLAM)就是将联机分析处理和数据挖掘以及知识发现集成在一起的中间层。虽然各个企业定义的体系结构不全相同,但是,各个体系结构都应该包含以下几个组件:

(1)数据源、数据抽取、数据转换、数据装载工具;

(2)元数据存储库;

(3)中心数据仓库;

(4)数据集市;

(5)数据仓库管理工具;

(6)数据查询、报表生成、数据分析、数据挖掘工具;

(7)信息传递系统。

图2-22设计的体系结构没有包含操作型数据存储(Operational Data Stores,ODS)。事实上,可以将上面的体系结构扩充以后包含一层ODS,然后,ETL工具在ODS上对数据进行处理,图2-23即为具有ODS的数据仓库体系结构。应用系统产生的大量当前数据经过转换后装载到ODS,然后ETL工具对ODS进行抽取,清理,转移到数据仓库数据库中。

图示

图2-23 具有ODS的体系结构

ODS数据也是面向主题和集成的,但是,与数据仓库中数据存储不同的是,ODS的数据是不稳定的,容易改变的,而数据仓库的数据是非易变的;ODS中包含当前数据,而数据仓库中包含当前和历史数据;ODS只包含细节数据,没有预先计算的概括数据和集成数据。概括数据和集成数据在数据仓库中是很典型的。事实上,正是因为操作型数据存储不能包含聚集和概括的数据,使其不能满足决策需要而在构建数据仓库时受到冷落。因为ODS要进行频繁的更新活动以及包含几乎接近实时的数据,如果将概括数据存储在ODS中,那么每次数据更新都将激发概括数据的改变,这种情形特别浪费资源和时间。

ODS和数据仓库的关系是什么?一般有两种看法:一种观点认为数据仓库需要设置ODS存储作为数据准备区,各种数据经过ODS后再进入数据仓库;另外一种相反的观点认为ODS没有必要充当数据仓库的数据缓冲区,特别是数据仓库需要的数据是外部数据时,数据仓库就不能从ODS环境中获得数据。

如果采用第二种观点,那么数据仓库和ODS从一开始就是分离的,或者可以将ODS理解为数据仓库的一个组成部分,ODS数据的来源是应用系统更新处理直接产生或者企业历史和外部数据经过转移和装载以后得到,对于ODS中的数据,要经过数据仓库ETL组件清理以后才进入数据仓库。

具有ODS的企业级数据仓库由于包含有操作型数据存储,从而加强了从多个事务系统中获取数据的能力,并且为系统提供了几乎实时的、易变数据的集成的视图和当前数据。ODS用于做出操作型决策的信息系统。而数据仓库用于为了得到战略的DSS决策支持而设计的数据存储。

数据仓库的数据存储在关系数据库中,由于数据仓库自身的特点,决定了数据仓库数据库和应用系统的数据库设计有许多不同点。数据仓库数据库的设计主要考虑查询的响应时间,而数据库应用系统的设计主要考虑事务的完整性以及及时对小事务的应答效率。

【习题】

一、选择题

1.以下哪一项不是数据库管理系统提供的四种数据控制功能中的一项()。

A.并发控制

B.数据恢复

C.数据完整性

D.数据共享性

2.在文件系统阶段,信息系统的研制的中心是()。

A.程序

B.数据

C.数据结构的设计

D.文件的存储

3.数据组织的最高层次是()。

A.数据库

B.数据项

C.文件

D.记录

4.用户使用Internet Explorer的企业信息系统的模式是()。

A.主从结构B.文件服务器/工作站C.客户机/服务器D.浏览器/Web服务器

5.TCP/IP作为网络通信协议可以用于()。

A.小型机和大型机B.因特网的标准连接协议C.异型机联网D.都可以

6.在数据库系统中,数据操作的最小单位是()。

A.字节

B.数据项

C.记录

D.字符

二、简答题

1.信息系统经历了哪几个发展阶段?

2.数据库管理阶段在管理数据方面有哪些特点?

3.一个数据库管理系统应该具备哪些功能?

4.物联网的关键技术技术有哪些,请简要介绍其功能?

5.什么是云计算?它在纺织信息系统中的应用主要有哪些?

6.数据库和数据仓库有何区别?有何关系?

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)