原创 浅析对数据仓库的研究

2011-5-30 16:16 697 1 1 分类: 工程师职场

  数据仓库为商务运作提供结构与工具,以便系统地组织、理解和使用数据进行决策。大量组织机构已经发现,在当今这个充满竞争、快速发展的世界,数据仓库是一个有价值的工具。在过去的几年中,许多公司已花费数百万美元,建立企业范围的数据仓库。许多人感到,随着工业竞争的加剧,数据仓库成了必备的最新营销武器——通过更多地了解客户需求而保住客户的途径。
  数据仓库已被多种方式定义,使得很难严格地定义它。宽松地讲,数据仓库是一个数据库,它与组织机构的操作数据库分别维护。数据仓库系统允许将各种应用系统集成在一起,为统一的历史数据分析提供坚实的平台,对信息处理提供支持。
  按照W.H.Inmon,一位数据仓库系统构造方面的领头建筑师的说法,“数据仓库是一个面向主题的、集成的、时变的、非易失的数据集合,支持管理决策制定”。这个简短、全面的定义指出了数据仓库的主要特征。四个关键词,面向主题的、集成的、时变的、非易失的,将数据仓库与其它数据存储系统(如,关系数据库系统、事务处理系统、和文件系统)相区别。让我们进一步看看这些关键特征。
  (1)、面向主题的:数据仓库围绕一些主题,如顾客、供应商、产品和销售组织。数据仓库关注决策者的数据建模与分析,而不是构造组织机构的日常操作和事务处理。因此,数据仓库排除对于决策无用的数据,提供特定主题的简明视图。
  (2)、集成的:通常,构造数据仓库是将多个异种数据源,如关系数据库、一般文件和联机事务处理记录,集成在一起。使用数据清理和数据集成技术,确保命名约定、编码结构、属性度量的一致性等。
  (3)、时变的:数据存储从历史的角度(例如,过去5-10年)提供信息。数据仓库中的关键结构,隐式或显式地包含时间元素。
  (4)、非易失的:数据仓库总是物理地分离存放数据;这些数据源于操作环境下的应用数据。由于这种分离,数据仓库不需要事务处理、恢复和并行控制机制。通常,它只需要两种数据访问:数据的初始化装入和数据访问。
  概言之,数据仓库是一种语义上一致的数据存储,它充当决策支持数据模型的物理实现,并存放企业决策所需信息。数据仓库也常常被看作一种体系结构,通过将异种数据源中的数据集成在一起而构造,支持结构化和启发式查询、分析报告和决策制定。
  什么是建立数据仓库(datawarehousing)?”
  根据上面的讨论,我们把建立数据仓库看作构造和使用数据仓库的过程。数据仓库的构造需要数据集成、数据清理、和数据统一。利用数据仓库常常需要一些决策支持技术。这使得“知识工人”(例如,经理、分析人员和主管)能够使用数据仓库,快捷、方便地得到数据的总体视图,根据数据仓库中的信息做出准确的决策。有些作者使用术语“建立数据仓库”表示构造数据仓库的过程,而用术语“仓库DBMS”表示管理和使用数据仓库。我们将不区分二者。
  “组织机构如何使用数据仓库中的信息?”许多组织机构正在使用这些信息支持商务决策活动,包括:
  (1)、增加顾客关注,包括分析顾客购买模式(如,喜爱买什么、购买时间、预算周期、消费习惯);
  (2)、根据季度、年、地区的营销情况比较,重新配置产品和管理投资,调整生产策略;
  (3)、分析运作和查找利润源;
  (4)、管理顾客关系、进行环境调整、管理合股人的资产开销。
  从异种数据库集成的角度看,数据仓库也是十分有用的。许多组织收集了形形色色数据,并由多个异种的、自治的、分布的数据源维护大型数据库。集成这些数据,并提供简便、有效的访问是非常希望的,并且也是一种挑战。数据库工业界和研究界都正朝着实现这一目标竭尽全力。
  对于异种数据库的集成,传统的数据库做法是:在多个异种数据库上,建立一个包装程序和一个集成程序(或仲裁程序)。这方面的例子包括IBM的数据连接程序(DataJoiner)和Informix的数据刀(DataBlade)。当一个查询提交客户站点,首先使用元数据字典对查询进行转换,将它转换成相应异种站点上的查询。然后,将这些查询映射和发送到局部查询处理器。由不同站点返回的结果被集成为全局回答。这种查询驱动的方法需要复杂的信息过滤和集成处理,并且与局部数据源上的处理竞争资源。这种方法是低效的,并且对于频繁的查询,特别是需要聚集操作的查询,开销很大。
  对于异种数据库集成的传统方法,数据仓库提供了一个有趣的替代方案。数据仓库使用更新驱动的方法,而不是查询驱动的方法。这种方法将来自多个异种源的信息预先集成,并存储在数据仓库中,供直接查询和分析。与联机事务处理数据库不同,数据仓库不包含最近的信息。然而,数据仓库为集成的异种数据库系统带来了高性能,因为数据被拷贝、预处理、集成、注释、汇总,并重新组织到一个语义一致的数据存储中。在数据仓库中进行的查询处理并不影响在局部源上进行的处理。此外,数据仓库存储并集成历史信息,支持复杂的多维查询。这样,建立数据仓库在工业界已非常流行。
  1.操作数据库系统与数据仓库的区别
  由于大多数人都熟悉商品关系数据库系统,将数据仓库与之比较,就容易理解什么是数据仓库。
  联机操作数据库系统的主要任务是执行联机事务和查询处理。这种系统称为联机事务处理(OLTP)系统。它们涵盖了一个组织的大部分日常操作,如购买、库存、制造、银行、工资、注册、记帐等。另一方面,数据仓库系统在数据分析和决策方面为用户或“知识工人”提供服务。这种系统可以用不同的格式组织和提供数据,以便满足不同用户的形形色色需求。这种系统称为联机分析处理(OLAP)系统。
  OLTP和OLAP的主要区别概述如下。
  (1)、用户和系统的面向性:OLTP是面向顾客的,用于办事员、客户、和信息技术专业人员的事务和查询处理。OLAP是面向市场的,用于知识工人(包括经理、主管、和分析人员)的数据分析。
  (2)、数据内容:OLTP系统管理当前数据。通常,这种数据太琐碎,难以方便地用于决策。OLAP系统管理大量历史数据,提供汇总和聚集机制,并在不同的粒度级别上存储和管理信息。这些特点使得数据容易用于见多识广的决策。
  (3)、数据库设计:通常,OLTP系统采用实体-联系(ER)模型和面向应用的数据库设计。而OLAP系统通常采用星形或雪花模型和面向主题的数据库设计。
  (4)、视图:OLTP系统主要关注一个企业或部门内部的当前数据,而不涉及历史数据或不同组织的数据。相比之下,由于组织的变化,OLAP系统常常跨越数据库模式的多个版本。OLAP系统也处理来自不同组织的信息,由多个数据存储集成的信息。由于数据量巨大,OLAP数据也存放在多个存储介质上。
  (5)、访问模式:OLTP系统的访问主要由短的、原子事务组成。这种系统需要并行控制和恢复机制。然而,对OLAP系统的访问大部分是只读操作(由于大部分数据仓库存放历史数据,而不是当前数据),尽管许多可能是复杂的查询。
  OLTP和OLAP的其它区别包括数据库大小、操作的频繁程度、性能度量等。
  2.但是,为什么需要一个分离的数据仓库
  “既然操作数据库存放了大量数据”,你注意到,“为什么不直接在这种数据库上进行联机分析处理,而是另外花费时间和资源去构造一个分离的数据仓库?”
  分离的主要原因是提高两个系统的性能。操作数据库是为已知的任务和负载设计的,如使用主关键字索引和散列,检索特定的记录,和优化“罐装的”查询。另一方面,数据仓库的查询通常是复杂的,涉及大量数据在汇总级的计算,可能需要特殊的数据组织、存取方法和基于多维视图的实现方法。在操作数据库上处理OLAP查询,可能会大大降低操作任务的性能。
  此外,操作数据库支持多事务的并行处理,需要加锁和日志等并行控制和恢复机制,以确保一致性和事务的强健性。通常,OLAP查询只需要对数据记录进行只读访问,以进行汇总和聚集。如果将并行控制和恢复机制用于这种OLAP操作,就会危害并行事务的运行,从而大大降低OLTP系统的吞吐量。
  最后,数据仓库与操作数据库分离是由于这两种系统中数据的结构、内容和用法都不相同。决策支持需要历史数据,而操作数据库一般不维护历史数据。在这种情况下,操作数据库中的数据尽管很丰富,但对于决策,常常还是远远不够的。决策支持需要将来自异种源的数据统一(如,聚集和汇总),产生高质量的、纯净的和集成的数据。相比之下,操作数据库只维护详细的原始数据(如事务),这些数据在进行分析之前需要统一。由于两个系统提供很不相同的功能,需要不同类型的数据,因此需要维护分离的数据库。

转贴于 中国鸣网论文站点 http://lunwen.mingmw.com

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
1
关闭 站长推荐上一条 /3 下一条