计算机应用
COMPUTER APPLICATIONS
1999年 第19卷 第9期 Vol.19 No.9 1999



数据仓库实施策略
杨光　张雷　艾波
　　摘　要　本文介绍了数据集市以及元数据的概念；分析并比较了企业建立数据仓库的六种策略；在文章的最后给出了一个较为典型的数据仓库系统结构。
　　关键词　数据仓库，数据集市，元数据
THE IMPLEMENTATION STRATEGIES OF DATA WAREHOUSE
Yang Guang　Zhang Lei　Ai Bo
Beijing University of Posts and Telecommunications, Beijing 100876
　　Abstract　This paper first introduces the concepts, Data Mart and Metadata, then analyzes and compares six implementation strategies of Data Warehouse. At the end of the paper a typical architecture of Data Warehouse is presented.
　　Keywords　Data warehouse, Data mart, Metadata
　　　　为了解决企业中普遍存在的“数据监狱”和“数据贫穷”现象，为企业决策分析人员方便、迅速地提供更准确、高质的信息，已成为企业当前迫切需要解决的问题。因此，数据仓库技术应运而生。
1　数据集市
　　数据仓库无疑是解决困扰企业的“数据监狱”和“数据贫乏”问题的好方法。据市场研究机构META Group的研究报告，当今全球最大2000家企业中的90%都有开发企业数据仓库的计划。但是在开发的过程中人们发现了一些问题。为了解决早期在建设数据仓库中所面临的问题，因而提出了数据集市的概念。
　　数据集市是支持某一部门或特定商业需求的DSS应用的数据集合。数据集市中的数据仍具有数据仓库中数据的特点。只不过，数据集市中的数据是专为某一部门或某个特定商业需求所定制的。数据集市的结构和数据仓库类似。一般认为数据集市中的数据来自数据仓库。
　　数据集市有以下优点：
　　数据集市的建设周期短（只需几个月），投资小，见效快；
　　部门用户完全拥有自己的数据集市可以根据需要定制其中的数据；
　　部门用户可以自由地选择适合自己的数据集市的决策分析工具；
　　数据集市的使用可以解决各部门对数据仓库资源的竞争，提高处理速度。
2　元数据（Metadata）
　　数据仓库中存储着几百G B的数据。这些来自不同操作数据库系统的数据在经过提取(extraction)、清洁(clean)、聚集(aggregation)、转换(transformation)等操作后被存入数据仓库。为了让商业用户能更好地使用数据仓库，元数据的概念被引入数据仓库技术中。
　　元数据是关于数据的数据，即描述数据的数据。在数据仓库中的元数据至少应包括以下一些内容：
　　原始数据的拥有者的信息；
　　原始数据的数据源信息（包括数据源的系统平台，数据源的网络地址等信息）；
　　数据的商业意义和典型用法；
　　数据提取程序的名称及版本；
　　被提取数据之间的依赖（或从属）关系；
　　数据从各OLTP数据库向数据仓库中载入的频率；
　　数据载入数据仓库的日期、时间；
　　载入数据仓库的数据的记录数；
　　数据仓库中数据的利用率；
　　数据转换的算法；
　　数据的保密级别；
　　数据的格式；
　　用于计算出汇总数据的商业规则；
　　数据从OLTP数据源到数据仓库的映射信息，包括：源数据域的标识、属性到属性之间的映射，属性的转换，名称的转换，关键字的转换，从多个数据源选择数据的算法逻辑等；
　　数据汇总的算法，及对算法的解释；
　　数据仓库的数据模型及其描述。
　　有了元数据就等于拥有了数据仓库的一张蓝图。元数据最显著的作用就是它类似于现实生活中的地图，能指引用户在多达几百GB的数据仓库的数据海洋中找到自己所需要的数据，帮助用户更好地理解数据仓库中的数据。元数据可以帮助数据仓库管理员更好地管理仓库中的数据，例如数据仓库管理员可以利用元数据追踪非法的数据处理到它的数据源，并可进行深入调查。用户可以利用元数据找到所需的事实，这些事实可帮助用户来支持他们的决策、验证通过分析工具得出的结论的是否正确，以及找出他们的结论与其他部门的结论的不同的原因。如果不同厂商的数据仓库及联机分析处理工具都遵循统一的元数据交换标准，则不同厂商的数据仓库和联机分析处理工具之间可以通过元数据方便地共享和交换数据(迄今，已有两个组织推出了Metadata交换的标准，一个是 Microsoft Corp.的 OIM―Open Information Model, 另一个是Meta Data Coalition 的 MDIS―Metadata Interchange Standard)。
　　由于元数据在数据仓库中的重要作用，当今各大数据仓库生产厂商纷纷把元数据的生成和管理功能集成到产品中，形成元数据的管理环境，如图1。

图1　元数据管理环境
3　数据仓库的实现策略
　　随着数据仓库技术的发展，如今数据仓库的实现策略已从原先的“自顶向下”模式（The Top Down Model）发展到了以下六种模式。
3.1　“自顶向下”模式
　　“自顶向下”的开发策略(见图2)是指从原来分散存储在企业各处的OLTP数据库中的有用数据通过提取（extraction）、清洁(clean)、转换（transformation）、聚集（aggregation）等处理步骤建立一个全局性数据仓库。这个全局的数据仓库将提供给用户一个一致的数据格式，一致的软件环境。从理论上说，决策支持所需的数据都应该包含在这个全局数据库中。数据集市中存储的数据是为某个部门的DSS应用而专门从全局数据仓库中提取的，它是全局数据仓库中数据的一个子集。在“自顶向下”模式中，数据集市和数据仓库的关系是单方向的，即数据从数据仓库流向数据集市。

图2　“自顶向下”模式
3.2　“自底向上”模式
　　“自底向上”模式（见图3）是从建立各个部门或特定的商业问题的数据集市开始，全局性数据仓库是建立在这些数据集市的基础上。“自底向上”模式的特点是初期投资少，见效快。因为它在建立部门数据集市时只需要较少的人做出决策，解决的是较小的商业问题。“自底向上”的开发模式可以使一个单位在数据仓库发展初期尽可能少的花费资金，也可以在做出有效的投入之前评估技术的收益情况。

图3　“自底向上”模式
3.3　“平行开发”模式
　　“平行开发”模式(见图4)是指在一个全局性数据仓库的数据模型的指导下数据集市的建立和全局性数据仓库的建立同时进行。在“平行开发”模式中由于数据集市的建立是在一个统一的全局数据模型的指导下进行的，可避免各部门在开发各自的数据集市时的盲目性，减少各数据集市之间的数据冗余和不一致。事实上，一些部门在建立数据集市的过程中所遇到问题及其解决方案、所获得的经验将导致全局性数据仓库的数据模型做出相应的改变，这些变化将使其它部门在建立数据集市时受益，也有助于全局性数据仓库的建设。在“平行开发”模式中数据集市的这种相对独立性有利于全局性数据库的建设。一旦全局性数据仓库建立好后，各部门的数据集市将成为全局数据仓库的一个子集，全局数据仓库将负责为各部门已建成和即将要建的数据集市提供数据。

图4　平行开发模式
　　“平行开发”与“自顶向下”模式的区别在于它满足了企业中的各个部门希望在较短时间内建立本部门的决策支持系统的要求，使他们不用等待全局性数据仓库建立好之后才建立属于自己的数据集市。同时它改变了在“自顶向下”模式中，部门数据集市在与全局性数据仓库关系中的附属性地位，在建立数据集市过程中所获得的经验将有助于对全局性数据仓库的数据模型的优化和全局性数据仓库的建设。
　　“平行开发”与“自底向上”模式的区别在于，它用一个统一的全局性数据仓库的数据模型来指导各部门数据集市的建设，可以解决数据集市之间数据的不一致和减少数据集市之间的数据冗余问题。
　　“自顶向下”、“自底向上”、“平行开发”这三种模式都没有考虑如何将用户的反馈信息不断地反应到数据集市和数据仓库的建设中。这三种模式都只在建设数据集市或数据仓库的过程中考虑用户的需求。但是用户的需求不是静止的而是随着新技术和新应用的出现而不断变化的。用户的需求变化不仅局限于要求更快速的硬件、更好的数据挖掘技术，性能更高的数据库软件，更友好的图形用户界面还包括所需信息内容的变化，以及所需数据的变化，这将导致在数据仓库或数据集市中必须加入某些新的属性、新的表或重组已存在的表、属性。新的需求将对数据仓库和数据集市的数据模型产生影响。
　　为了解决用户需求变化的问题，人们引入了以下三种模式。
3.4　“有反馈的自顶向下”模式
　　“有反馈的自顶向下”模式（见图5）。在这个模式中用户的新需求的反馈分为两个阶段。第一阶段用户的新需求不断地被反馈给部门的数据集市，部门数据集市根据用户的新需求产生自身的需求变化。第二阶段部门数据集市把自身的需求变化反馈给全局性数据仓库，全局性数据仓库再做出相应的变化。

图5　“有反馈的自顶向下”模式
3.5　“有反馈的自底向上”模式
　　在“有反馈的自底向上”模式（见图6）中由于采取的是先建设部门数据集市，再以各部门的数据集市为基础建立全局性数据仓库的方式。因此，数据集市能较好的满足用户的需求，在全局性数据库建立好之后需求的变化将主要体现在数据集市与数据仓库之间。如果各个部门数据集市在发展时注意保持相互之间的数据一致性并能根据用户的反馈信息不断调整自己，那么以这种模式建立的数据仓库在投入使用后能减少因用户需求变化所带来的不便。

图6　“有反馈的自底向上”模式
3.6　“有反馈的平行开发”模式
　　在“有反馈的平行开发”模式（见图7）中，在开发的初始阶段，开发人员主要是在全局性数据仓库数据模型的指导下建立部门数据集市，并把在建立过程中所遇到的问题及其解决方案以及用户的意见等信息，反馈给全局性数据仓库数据模型。全局性数据模型在指导部门数据集市建设的同时，也收集开发人员和部门用户的反馈信息并根据这些信息调整自己。经过调整，可以使下一阶段全局数据仓库的建设相对顺利地进行。 通常，人们会认为在这种“平行开发”模式中，全局性数据仓库的数据模型应在开始建设部门数据集市之前完成，因此需要开发人员在项目的初始阶段就迅速地开发完成全局性数据仓库的数据模型，而数据集市的开发工作也不得不等待全局数据仓库的数据模型完成后才开始。

图7　“有反馈的平行开发”模式
　　事实上，在“平行模式”的开发过程中并不一定要求在开发部门数据集市之前完成整个数据仓库的数据模型的开发。对“平行开发”模式来说，全局数据仓库的数据模型的开发可以在建设第一个部门数据集市的同时进行。这是因为一方面对减少数据集市之间的数据冗余和数据的不一致来说并不需要一个完全建立好的全局数据模型，全局数据模型在指导数据集市建设的同时还要不断听取开发人员和用户的反馈信息来调整自己；另一方面部门数据集市在开发和使用过程中所得到的经验有助于开发人员在设计全局数据模型时更好地了解用户的需求。
4　数据仓库系统的结构
　　企业建设数据仓库的最终目的是让企业的经营管理者能够方便地使用数据仓库这一集成的决策支持环境以获取有价值的信息，帮助经营管理者对不断变化的环境做出迅捷、准确的判断和找出相应的对策。因此，界面友好，功能强大的为用户服务的前端工具应被有效地集成到这一新的数据分析环境中。
　　数据仓库系统是以数据仓库为核心，通过数据提取工具、数据转换工具、查询工具、报表工具、分析工具、数据发掘工具等，满足用户对信息的各种需求。图8是一幅较为典型的数据库系统结构图。

图8　数据仓库系统结构图
5　结束语
　　本文简要介绍了数据集市、元数据的概念，给出企业数据仓库的六种实施策略和数据仓库系统的结构。从文中对数据仓库、数据仓库的结构的论述中可以得出这样一个结论：数据仓库不是对原有的面向应用的操作型数据库的替代；数据仓库和操作型数据库在企业的信息环境中承担不同的任务，发挥不同的作用；数据仓库主要应用于决策分析，而原有的操作型数据库主要用于日常事务处理。数据库及数据仓库是信息系统和决策支持系统的基础设施，没有完善的数据库或数据仓库，再好的分析工具也发挥不了作用。
作者简介：杨光　硕士研究生。
张雷　副教授，在职博士研究生。
艾波　教授，博士生导师。
作者单位：北京邮电大学计算机学院　北京（100876）
参考文献
［1］　Data Warehouses and Data Marts: A Dynamic View, Author: Joseph M. Firestone, Ph. D., Executive Information System Inc. White Paper 3, March 27, 1997;(3)
［2］　Building the Data Mart, Author: Marc Demarest, DBMS Magazine, 1999;7(8):44
［3］　A Metadata Management How-To, Author: Terry Moriarty, Database Programming & Design，Feburary 1997: 57-60 
收稿日期:1999-05-07(修改稿)
