数据仓库技术的设计应用-计算机应用
·当前位置: 学海荡舟-论文 >> 论文资料 >> 计算机论文 >> 计算机应用
数据仓库技术的设计应用


【摘 要】数据仓库在现代计算机应用中的作用日益突出,本文的目的旨在提出数据仓库体系结构的基础上,分析数据仓库技术设计中的注意要点。

【关键词】数据仓库 设计 数据装载

数据仓库 (Data Warehouse) 概念起源于 80 年代中期,在 90 年代,数据仓库技术已经成为一大热点。遍及世界的公司都在试图利用多年来存储在他们计算机内的信息。数据仓库的概念是经过被誉为“数据仓库之父”的 W. H.Inmon 加以定义与发展的。 W. H.Inmon 对其定义为:“数据仓库是支持管理决策过程的、面向主题的、集成的、随时间而变的、持久的数据集合。”数据仓库有别于运作中的数据库,数据仓库是一个综合的解决方案,而数据库只是一个现成的产品而己。后者以多种方式支持在线事务处理 OLTP (On-Line Transaction Processing) ,而前者主要支持在线分析处理 OLAP (On-Line Analysis Processing) 。

一、数据仓库的介绍

在数据仓库工程中,设计数据仓库的体系结构是一个关键的环节。数据仓库工程所要达到的诸多目标,如改善服务质量、降低经营成本、加快新产品和新服务品种的开发速度、加强企业对竞争环境的响应效率等,都要落实体现到合理可行的数据仓库体系结构设计中,而数据访问则是整个数据仓库体系结构的核心问题。

数据仓库技术从本质上讲,是一种信息集成技术。数据仓库从多个信息源中获取原始数据,经整理加工后,存储在数据仓库的内部数据库中,通过向用户提供访问工具,向数据仓库的用户提供统一、协调和集成的信息环境,支持企业全局的决策过程和对企业经营管理的深入综合分析。为了达到这样的目标,一个数据仓库一般来说包含以下七个主要组成部分:数据源、数据抽取,转换和装载工具、数据建模工具、核心仓储、数据仓库的目标数据库、前端数据访问和分析工具以及数据仓库管理工具。

我们可以看到,在一个数据仓库中,提供源数据的数据源既可以是各种数据库管理系统,也可以是各种格式的数据文件或外部的数据源。因此,数据仓库需要有相应的工具从数据源中抽取数据。数据进入数据仓库之前,通过数据抽取和转换工具来完成数据的检验、整理、加工和重新组织,然后装载到一个或多个数据仓库的数据库中。

随着企业的业务发展,数据仓库管理人员可以通过使用数据建模工具,根据企业决策和综合分析的需要,对数据的检验、整理、加上和重新组织的过程进行调整和优化。而对数据的检验、整理、加工和重新组织过程的描述,则是以数据模型和元数据的形式,存放在核心仓储中。

为了使数据仓库用户能有效地使用数据仓库中的信息,进行深层次的综合分析和决策,数据仓库系统要向用户提供一整套数据访问和分析工具。数据访问和分析工具不但要提供一般的数据访问功能,如查询、汇总、统计等,还要提供对数据的深入分析功能,即数据挖掘的功能,如数据的比较、趋势分析、模式识别等。

二、数据仓库的数据库设计

在数据仓库中,设计信息结构的目的就是要建立一个面向决策支持的优化的信息视图,使得数据仓库的用户能够方便地理解有关的信息结构,以便充分利用数据仓库中存储的信息,为业务决策和深层次的业务分析服务。这个设计目标决定了数据仓库的数据库与一般联机事务处理系统的数据库有所区别,在设计工作的出发点、考虑的侧重点、主要的设计方法及技术等方面都有所不同。在数据仓库工程实践中,设计数据库时要重点注意四个方面的问题:

1 .设计一个简明的数据模式

在我们熟知的传统 OLTP 系统中的数据库模式中往往包含了许多表,表之间的联系比较多,也比较复杂。在这样的数据模式中,提高了数据的插入、删除和修改等操作的效率,但数据查询的效率却降低了,而且,数据模式复杂,不容易理解,这为编写复杂的数据查询增添了许多困难。在数据仓库系统中,主要从事联机分析处理,如果数据库的数据模式仍然按这种方式来设计,显然不能适应应用的需要了。

在数据仓库环境中,数据一次性装入数据库中,一般不再进行插入、更新等操作,根据系统对数据周期的要求,采用批处理方式进行数据整理,对过时的数据进行删除或移存。因此,在数据仓库环境中,对数据的插入、删除和更新操作的时间要求比较低。但由于要进行支持决策过程的数据深入分析工作,所以查询住往比较复杂,而且没有确定的方式,业务分析人员往往不断提出新的需求。如果采用复杂的数据模式,一方面难于理解,不容易编写数据查询;另一方面查询的性能也不高,需要特殊的技巧。因此,必须设计简单的数据模式,让即使不具备数据库专门知识的业务专家也能比较容易地理解和使用数据仓库中数据库的数据模式。

2 .保证数据的一致性

在数据仓库的设计中,一定要保证数据仓库的数据库中的数据是一致的,即往数据库输入的数据和数据库所输出的数据是一致的。因此,需要在把源数据装载到数据仓库前,对源数据进行整理、检验,清除有问题的数据,使得数据进入数据仓库的数据库时是一致的。同时,要对数据仓库的数据库里的数据,进行一致性维护。

在数据仓库中,数据往往是以批处理的方式装载的。因此,可以采用相应的软件工具,在对源数据进行批处理装载时加以校验,包括对数据的格式、取值范围等进行检查,对于不合乎要求的数据,或者进行自动更正,或者提交给操作员手工加以修正。

3 .提高查询处理速度

虽然与 OLTP 系统相比,数据仓库的用户数量比较少,系统响应速度的要求不如 OLTP 系统来得严格,但是,由于数据仓库系统包含的数据量非常巨大,而业务分析和决策过程所使用的查询往往涉及大量的数据,要进行复杂的数据运算,因此,查询处理的效率也是数据仓库系统所必须考虑的一个重要方面。

我们知道,使用索引是提高查询效率的主要手段之一。在 OLTP 系统中,由于插入、删除和更新操作频繁,而索引会影响这些操作的效率,所以经常需要作一些权衡考虑,对索引的使用采取比较谨慎的态度。而在数据仓库系统中,由于在日常使用中一般没有交互式的插入、删除和更新操作,数据装载和更新采用脱机批处理的方式进行,因此,为索引的使用提供了一个良好的环境,不必害怕顾此失彼。所以,数据仓库的数据库中广泛采用索引。为了提高查询速度,最理想的情况是查询能尽可能使用已有的索引。因此,应该在大多数表中建立多个索引,特别是要在分维表上建立索引。

4 .提高数据装载效率

在数据仓库系统中,最关键的操作是查询处理,最耗时的操作却是数据装载。由于数据仓库中包含了大量数据,如何及时迅速地从数据源中把新数据装载到数据仓库系统中,并把过时的老数据进行汇总转存,不影响数据仓库系统的日常应用,是数据仓库中数据库设计要考虑的又一关键问题。

数据装载效率的高低,与我们前面已经讨论过的几个方面都息息相关。如果表的结构比较简单,源数据质量高,数据参照完整性好,那么,数据装载效率自然比较高。在数据装载过程中,比较关键的问题是对聚簇数据的处理。为了提高查询效率,往往把一些表(特别是事实表)设计成按某种方式进行数据聚簇,即数据按某个索引的次序进行物理存放。当装载新数据后,则要重新创建或更新聚簇结构。因此,在设计聚簇方式时,除了要考虑查询的需要外,还要充分考虑数据装载时所需要的工作量。可以考虑采用一些如分段聚簇的方法,提高重新创建或更新聚簇结构的效率。此外,还可以考虑采用数据分片等技术,加快数据装载速度。

参考文献:

[1] 薛宇,王剑锋 / 译,数据仓库项目管理,北京:清华大学出版社, 2003.2

[2] 石丽,李坚编著,数据仓库与决策支持,北京:国防工业出版社, 2003.5

作者简介:赵永建,男, (1963.4-), 四川阆中市人,毕业于西南师大,讲师,主要研究方向为数据库及其应用。

  • 上一篇论文:
  • 下一篇论文: 没有了