数据仓库的基本概念
数据仓库泛化、合并多维空间的数据。构造数据仓库涉及数据清理、数据集成和数据变换,可以看做数据挖掘的一个重要预处理步骤。此外,数据仓库提供联机分析处理(OLAP)工具,用于各种粒度的多维数据的交互分析,有利于有效的数据泛化和数据挖掘。
1.什么是数据仓库
数据仓库的建立为工商企业主管提供了体系结构和工具,以便他们系统地组织、理解和使用数据进行决策。
宽泛的讲,数据仓库是一种数据库,它与单位的操作数据库分别维护。数据仓库系统允许将各种应用系统集成在一起,为统一的历史数据分析提供坚实的平台,对信息处理提供支持。
数据仓库的关键特征:
面向主题的(subject-oriented):数据仓库围绕一些重要主体,如顾客、供应商、产品和销售组织。数据仓库关注决策者的数据建模与分析,而不是单位的日常操作和事务处理。因此,数据仓库通常排除对于决策无用的数据,提供特定主题的简明视图。
集成的(integrated):通常,构造数据仓库是将多个异构数据源,如关系数据库、一般文件和联机事务处理记录集成在一起。使用数据清理和数据集成技术,确保命名约定、编码结构、属性度量等的一致性。
时变的(time-variant):数据存储从历史的角度提供信息。数据仓库中的关键结果都隐式或显式地包含时间元素。
非易失的(nonvolatile):数据仓库总是物理的分离存放数据,这些数据源于操作环境下的应用数据。由于这种分离,数据仓库不需要事务处理、恢复和并发控制机制。通常,它只需要两种数据访问操作:数据的初始化装入和数据访问。
概言之,数据仓库是一种语义上一致的数据存储,它充当决策支持数据模型的物理实现,并存放企业战略决策所需要的信息。数据仓库也常常被看做是一种体系结构,通过将异构数据源中的数据集成在一起而构建,支持结构化和专门的查询、分析报告和决策制定。
数据仓库(data warehouse)的构建需要数据集成、数据清理和数据统一。数据仓库的应用常常需要一些决策支持技术。
“单位如何使用数据仓库中的信息?“许多单位都是用这些信息支持商务决策活动,包括
(1) 提高顾客关注度,这包括分析顾客购买模式(喜欢买什么、购买时间、预算周期、消费习惯)
(2) 根据按季度、按年和按地区的营销情况比较,重新配置产品和管理产品的投资,调整生产策略
(3) 分析运作情况并找出利润源
(4) 管理客户联系,进行环境调整,管理公司的资产开销。
对于异构数据库的集成,传统数据库做法是:在多个异构数据库上,建立一个包装程序和一个集成程序(或中介程序)。当客户站点提交查询时,首先使用元数据字典对查询进行转换,将它转换成相应异构站点上的查询。然后,将这些查询映射并发送到局部查询处理器。由不同站点返回的结果被集成为全局回答。这种查询驱动的(query-driven)方法需要复杂的信息过滤和集成处理,并且与局部数据源上的处理竞争资源。这种方法是低效的,并且对于频繁的查询,特别是需要聚集操作的查询,开销会很大。
对于异构数据库集成的传统方法,数据仓库提供了一种有趣的替代方案。数据仓库使用更新驱动的(update-driven)方法,而不是查询驱动的方法。这种方法将来自多个异构源的信息预先集成,并存储在数据仓库中,供直接查询和分析。与联机事务处理数据库不同,数据仓库不包含最近的信息。然而,数据仓库为集成的易购数据库系统带来了高性能,因为数据被复制、预处理、集成、注释、汇总,并重新组织到一个语义一致的数据存储中。数据仓库的查询处理并不影响在局部数据源上进行的处理。此外,数据仓库可以存储并集成历史信息,支持复杂的多维查询。
2.操作数据库系统与数据仓库的区别
联机操作数据库系统的主要任务是执行联机事务和查询处理。这种系统称作联机事务处理(Online Transaction Processing , OLTP)系统。
数据仓库系统在数据分析和决策方面为用户或“知识工人“提供服务。这种系统可以用不同的格式组织和提供数据,以便满足不同用户的需求。这种系统成为联机分析处理(Online Analytical Processing, OLAP)。
OLTP和OLAP的主要区别如下:
(1) 用户和系统的面向性
a) OLTP是面向顾客的,用于办事员、客户和信息技术专业人员的事务和查询处理。
b) OLAP是面向市场的,用于知识工人(包括经理、主管和分析人员)的数据分析
(2) 数据内容
a) OLTP系统管理当前数据。通常,这种数据太琐碎,很难用于决策。
b) OLAP系统管理大量历史数据,提供汇总和聚集机制,并在不同的粒度层上存储和管理信息。这些特点使得数据更容易用于有根据的决策。
(3) 数据库设计
a) 通常,OLTP系统采用实体-联系(ER)数据模型和面向应用的数据库设计。
b) 而OLAP系统通常采用星形或雪花模型和面向主题的数据库设计。
(4) 视图
a) OLTP系统主要关注一个企业或部门内部的当前数据,而不涉及历史数据或不同单位的数据。
b) OLAP系统常常跨越数据库模式的多个版本。OLAP系统还处理来自不同单位的信息,以及由多个数据库集成的信息。
(5) 访问模式
a) OLTP系统的访问主要由短的原子事务组成。这种系统需要并发控制和恢复机制。
b) OLAP系统的访问大部分是只读操作(由于大部分数据仓库存放历史数据,而不是最新数据),尽管许多可能是复杂的查询。
3.为什么需要分离的数据仓库
操作数据库存放了大量数据,为什么不能直接在这种数据库上进行联机分析处理,而是另外花费时间和资源去构造分离的数据仓库?
分离的主要原因是有助于提高两个系统的性能。操作数据库是为已知的任务和负载设计的,如使用主键索引和散列,检索特定的记录,优化定制的查询。另一方面,数据仓库的查询通常是复杂的,涉及大量数据在汇总级的计算,可能需要特殊的基于多维视图的数据组织、存取方法和实现方法。在操作数据库上处理OLAP查询,可能会大大降低操作任务的性能。
此外,操作数据库支持多事务的并发处理,需要并发控制和恢复机制(如,加锁和记录日志),以确保一致性和事务的鲁棒性(Robust:健壮)。通常,OLAP查询只需要对汇总和聚集数据记录进行只读访问。如果并发控制和恢复机制用于这种OLAP操作,就会危害并行事务的运行,从而大大降低OLTP系统的吞吐量。
最后,数据仓库与操作数据库分离是由于这两种系统中数据的结构、内容和用法都不相同。决策支持需要历史数据,而操作数据库一般不维护历史数据。操作数据库中的数据尽管很丰富,但对于决策,常常还是远非完整的。决策支持需要整合来自异构源的数据,产生高质量的、纯净的和集成的数据。相比之下,操作数据库只维护详细的原始数据(如事务),这些数据在进行分析之前需要整理。由于两种系统提供大不相同的功能,需要不同类型的数据,因此需要维护分离的数据库。
4.数据仓库;一种多层体系结构
(1) 底层是仓库数据库服务器,它几乎总是一个关系数据库系统。使用后端工具和实用程序,由操作数据库或其他外部数据源提取数据,放入底层。这些工具和实用程序进行数据提取、清理和变换,以及装入和刷新,以更新数据仓库。
(2) 中间层是OLAP服务器,其典型的实现使用关系OLAP(ROLAP)模型(即扩充的关系DBMS,它将多维数据上的操作映射为标准的关系操作),或者使用多维OLAP(MOLAP)模型(即专门的服务器,它直接实现多维数据和操作)
(3) 顶层是前端客户层,它包括查询和报告工具、分析工具和数据挖掘工具。
5.数据仓库模型:企业仓库、数据集市和虚拟仓库
从结构的角度看,有三种数据仓库模型:企业仓库、数据集市和虚拟仓库
(1) 企业仓库(enterprise warehouse):企业仓库搜集了关于主题的所有信息,跨越整个企业。它提供企业范围内的数据集成,通常来自一个或多个操作数据库系统或外部信息提供者,并且是多功能的。通常,它包含细节数据和汇总数据,其规模由数兆兆字节,到数百兆兆字节甚至更多。企业数据仓库可以在传统的大型机、超级计算机服务器或并行结构平台上实现。
(2) 数据集市(data mart):数据集市包含企业范围数据的一个子集,对于特定的用户群是有用的。其范围限于选定的主题。包括在数据集市中的数据通常是汇总的。
通常,数据集市可以在低价格的部门服务器上实现,基于UNIX/Linux或Windows。数据集市的实现周期一般是数以周计,而不是月计或年计。
根据数据的来源不同,数据集市分为独立的和依赖的两类。在独立的数据集市中,数据来自一个或多个操作数据库系统或外部信息提供者,或者来自在一个特定的部门或地区局部产生的数据。依赖的数据集市的数据直接来自企业数据仓库。
(3) 虚拟仓库(virtual warehouse):虚拟仓库是操作数据库上视图的集合。为了有效的处理查询,只有一些可能的汇总视图被物化。
数据仓库开发的自顶向下和自底向上方法的优缺点:
自顶向下:是一种系统的解决方案,并能最大限度地减少集成问题。然而,它费用高、开发周期长,并且缺乏灵活性,因为整个组织就共同数据模型达成一致是比较困难的。
自底向上:设计、开发、配置独立的数据集市的自底向上的方法提供了灵活性、低花费,并能快速回报投资。然而,将分散的数据集市集成,形成一个一致的企业数据仓库时,可能导致问题。
6.数据提取、变换和装入
数据提取:通常,由多个异构的外部数据源收集数据。
数据清理:检测数据中的错误,可能时修正它们。
数据变换:将数据由遗产或宿主格式转换成数据仓库格式。
装入:排序、汇总、合并、计算视图、检查完整性,并建立索引和划分。
刷新:传播由数据源到数据仓库的更新。
数据清理和变换是提高数据质量,从而提高其后的数据挖掘结果质量的重要步骤,