1.数据仓库的产生
从 20 世纪 80 年代初起直到 90 年代初,联机事务处理一直是关系数据库应用的主流。然而,应用需求在不断地变化,当联机事务处理系统应用到一定阶段时,企业家们便发现单靠拥有联机事务处理系统已经不足以获得市场竞争的优势,他们需要对其自身业务的运作以及整个市场相关行业的态势进行分析,进而做出有利的决策。这种决策需要对大量的业务数据包括历史业务数据进行分析才能得到
。把这种基于业务数据的决策分析称为联机分析处理
。如果说传统联机事务处理强调的是更新数据库(向数据库中添加信息) ,那么联机分析处理就是从数据库中获取信息,利用信息。因此,著名的数据仓库专家 Ralph Kimball写道:“我们花了二十多年的时间将数据放入数据库 ,如今是该将它们拿出来的时候了”。事实上 ,将大量的业务数据应用于分析和统计原本是一种非常简单和自然的想法。但在实际的操作中,人们却发现要获得有用的信息并非如想象得那么容易。
(1) 所有联机事务处理强调的是密集的数据更新处理性能和系统的可靠性,并不太关心数据查询的方便与快捷。
(2) 业务数据往往被存放于分散的异构环境中,不易统一查询访问,而且还有大量的历史数据处于脱机状态 ,形同虚设。
(3) 业务数据的数据库模式针对事务处理系统而设计,数据的格式和描述方式并不适合非计算机专业人员进行业务上的分析和统计。
因此有人感叹: 联机事务处理系统刚上线时 ,查询不到数据是因为数据太少了,而几十年后查询不到有关数据是因为数据太多了。针对这一问题,人们设想专门为业务数据的统计分析建立一个数据中心,它的数据从联机事务处理系统中来,从异构的外部数据源来或从脱机的历史业务数据中来,这个数据中心也是一个联机系统,它专门为分析统计和决策支持应用服务,通过它可获取决策支持和联机分析应用所需要的一切数据。这个数据中心就叫做数据仓库。简单地说,数据仓库就是一个作为决策支持和联机分析应用系统数据源的结构化数据环境,数据仓库要研究和解决的就是从数据库中获取信息的问题。
2.数据仓库技术
数据仓库技术是为了有效地把操作型数据集成到统一的环境中以提供决策型数据访问的各种技术和模型的总称。
2.1 OLAP技术
- 联机事务处理与联机分析处理的比较
数据处理通常分成两大类: 联机事务处理Con-line transaction processing,OLTP)和联机分析处理(on-line analytical processing,OLAP) 。
OLTP 是传统的操作型数据库系统的主要应用,主要是一些基本的日常事务处理,如银行柜台存取款、股票交易和商场 POS 系统等。OLAP 是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
- OLAP 技术的有关概念
(1) 多维数据集
。多维数据集是联机分析处理的主要对象,它是一个数据集合
,通常从数据仓库的子集构造,并组织汇总成一个由一组维度和度量值定义的多维结构。
(2) 维度
。维度是 OLAP 技术的核心,即人们观察客观世界的角度,通过把一个实体的一些重要属性定义为维(dimension) ,使用户能对不同维属性上的数据进行比较研究
。因此维是一种高层次的类型划分 ,一般都包含层次关系,甚至相当复杂的层次关系。例如,一个企业在考虑产品的销售情况时,通常从时间、销售地区和产品等不同角度来深入观察产品的销售情况。这里的时间 .地区和产品就是维度。而这些维的不同组合和所考查的度量值(如销售额)共同构成的多维数据集则是 OLAP 分析的基础。
(3) 度量值
。度量值也叫度量指标,是多维数据集中的一组数值
,这些值基于多维数据集的事实数据表中的一列,是最终用户浏览多维数据集时重点查看的数值数据,也是所分析的多维数据集的中心值
。如销售量 .成本值和费用支出等都可能成为度量值。
(4) 多维分析。多维分析是指对以维
形式组织起来的数据(多维数据集)采取切片(slice) 、切块(dice) 、钻取(Cdrill down 和 roll up 等)和旋转(pivot)等各种分析动作,以求剖析数据,使用户能从不同角度 ,不同侧面观察数据仓库中的数据,从而深入理解多维数据集中的信息。多维分析操作通常包括如下内容。
钻取
可以改变维的层次,变换分析的粒度,包括向上钻取(roll up)、向下钻取(drildown) 交叉钻取(drill across)和钻透(Cdrill through)等。向上钻取即减少维数 ,是在某一维上将低层次的细节数据概括到高层次的汇总数据; 而向下钻取则正好相反,它从汇总数据深入到细节数据进行观察,增加了维数。
切片和切块
是在一部分维上选定值后,度量值在剩余维上的分布。如果剩余维有两
个则是切片,如果