CIO信息化管理 |
|
| 按行业筛选 |
|
|
| 按产品筛选 |
|
|
| |
查看本类全部文章 |
| |
|
|
|
多维数据模型与OLAP的实现 |
|
newmaker |
|
近年来,随着网络技术和数理分析在银行业中的广泛应用,西方商业银行开始广泛采用人口地理统计理论,运用数据挖掘及商业智能等技术,处理跨时间、跨空间、跨部门、跨产品的银行数据集成分析问题,逐步实现了金融产品和金融服务的交叉销售,以保留住优质客户。目前,国内多家银行也不同程度地开展了商业智能(BI,Business Intelligence)系统建设,从信息管理角度看,商业智能是决策支持技术在商业银行应用的进一步发展和完善,OLAP(On-Line Analytical Processing,联机分析处理)技术是BI的关键技术之一。自1970年第一个OLAP的雏形工具Express发布,到1993年关系数据库之父、数学家与计算机科学家爱德华·库德(E.F.Codd)系统地提出OLAP概念和OLAP的12条准则,OLAP技术和产品有了很大的发展,其内涵和外延也发生了一定的变化。但其本质特征仍然是:以多维数据模型为基础组织和存储数据,满足对用户请求的快速响应和交互式操作。
OLAP技术在国内兴起和发展的过程中,人们对某些基本概念还有不同的理解。比如,OLAP与多维数据模型的关系,多维数据模型与多维数据库(MDD,Multi Dimensional Database)的关系,MOLAP(Multidimensional OLAP,关系联机分析处理)和HOLAP(Hybrid OLAP,混合联机分析处理)间的差异,多维数据库与多维联机分析处理是不是完全一致等问题,还有待于进一步澄清。
一、多维数据模型及相关概念
数据模型一般有两个层次:概念层(逻辑层)和物理层。逻辑数据模型是从概念角度抽象出现实世界的内在规律,如业务流程、数据架构等;物理数据模型则侧重于特定环境下的具体实现,如效率、安全性等。
多维数据模型是一个逻辑概念,该模型主要解决如何对大量数据进行快速查询和多角度展示,以便得出有利于管理决策的信息和知识。多维数据模型的应用领域主要有数据仓库、OLAP和数据挖掘3个方面,其中,多维结构是OLAP的核心。
多维数据模型通过引入维、维分层和度量等概念,将信息在概念上视为一个立方体。图1表示了一个数据立方体。
图1 一个数据立方体 1. 立方体:用三维或更多的维数描述一个对象,每个维彼此垂直。数据的度量值发生在维的交叉点上,数据空间的各个部分都有相同的维属性。
2. 维:是人们观察数据的特定角度,是考虑问题时的一类属性,属性的集合构成一个维(如时间维、机构维等)。
3. 维分层:同一维度还可以存在细节程度不同的各个描述方面(如时间维可包括年、季度、月份、旬和日期等)。
4. 维属性:维的一个取值,是数据项在某维中位置的描述(例如“某年某月某日”是在时间维上位置的描述)。
5. 度量:立方体中的单元格,用以存放数据。
OLAP的基本多维分析操作有钻取(Roll up,Drill down)、切片(Slice)、切块(Dice)及旋转(Pivot)等。
钻取包含向下钻取和向上钻取(上卷)操作,钻取的深度与维所划分的层次相对应。上卷操作通过维规约,在数据立方体上进行聚集;下钻操作是上卷操作的逆操作,由不太详细的数据到更详细的数据。
切片和切块是在一部分维上选定值后,度量数据在剩余维上的分布。在多维数据结构中,按照二维、二维进行切块可得到所需数据,如在“机构、产品、时间”三维立方体中进行切块和切片,可得到各城市、各产品的销售情况。
旋转(转轴)是变换维的方向,即在表格中重新安排维的放置(如行列互换),通过旋转得到不同视角的数据。
二、多维数据模型的物理实现
OLAP多维数据模型的实现有多种途径,其中主要有采用数组的多维数据库、关系型数据库以及两者相结合的方式,人们通常称之为MOLAP、ROLAP和HOLAP。但MOLAP的提法容易引起误解,毕竟根据OLAP的多维概念,ROLAP也是一种多维数据的组织方式。
1. 多维联机分析处理(多维数据库管理系统)
多维联机分析处理严格遵照库德的定义,自行建立多维数据库来存放联机分析系统的数据,它以多维数据组织方式为核心,也就是说,多维联机分析处理使用多维数组存储数据。
当利用多维数据库存储OLAP数据时,不需要将多维数据模型中的维度、层划分和立方体等概念转换成其他的物理模型,因为多维数组(矩阵)能很好地体现多维数据模型特点。
针对图1,可以定义一个三维数组矩阵(7,6,3),体现立方体的维、属性和维度量。其中数组中维的个数对应立方体的维度数,数组中每一维取值对应立方体中每一维度的属性个数,而数组的126个交点对应立方体中的单元格,用来存放数据。
利用数组实现多维数据模型的优点,在于对数据的快速访问,但同时也会带来存储空间的冗余,即稀疏矩阵问题,进而导致对存储空间的极大需求。例如,图2中定义的一个立方体结构,在用数组定义时,其取值可能有104463亿种情况。但实际上,并不是每一天、每个经营机构在不同地区和不同特约商户都会产生具有不同币种、不同卡种的交易,和关系数据库管理系统相比,只有当某一交易确实发生时,才在相应的表中留下记录。
图2 一个立方体中的稀疏矩阵问题 为了解决稀疏矩阵问题,某些产品提出了稀疏维(sparse)和密度维(Dense)策略。由稀疏维产生索引块,由密度维形成数据块。只有当稀疏维的组合在交易事件初次发生时才创建索引块,进而创建数据块。
图3显示了数据块和索引块的关系。稀疏维和密度维的引入在一定程度上降低了立方体的存储冗余问题,此外,通过数据压缩技术可降低数据块的存储空间。
图3 稀疏维和密度维 2. 关系联机分析处理(关系数据库管理系统)
ROLAP以关系数据库为核心,以关系型结构进行多维数据的表示和存储,将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成“星型模式”。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表描述,这种星型模式的扩展称为“雪花模式”。这种多维数据的表示方式能够让使用者以较简单的方式了解这些资料,增加查询效率,并对海量数据存储空间有较少要求。
图4是星型架构,在这个架构中有一个事实表和未经正规化的维表。
图4 星型架构 事实表有如下特性:① 大量的数据列,存储容量可达到Tbt;② 主要是数值信息,只有少数的文字或者多媒体信息;③ 有和维表连接的外关键字;④ 静态数据和聚集数据。
维表中的信息是对事实表的相应说明,例如产品特征、销售时间和客户账号等。通过维表将复杂的描述分割成几个小部分,如某个时间点的销售量等,减少对事实表的扫描,实现优化查询。它主要有以下特性:① 记录数较少,可能只有上千或者上万个记录;② 大多为文字资料;③ 信息具有层次结构;④ 只有一个主键(Primary Key或Dimension Key);⑤ 信息可修改。
雪花架构是对星型架构的变形,它将星型架构下的维表格经过正规化处理,使其能表现更丰富的信息,也使得信息处理更加灵活。
3. 混合联机分析处理
混合联机分析处理利用多维联机分析处理技术存储上层汇总数据,利用关系联机分析处理存储细节数据,即低层是关系型的,高层是多维矩阵型的。这种方式具有更好的灵活性。
还有其他一些实现OLAP的方法,如提供一个专用的SQL Server,对某些存储模式(如星型、雪花型)提供对SQL查询的特殊支持。
三、存储模式的比较和选择
多维联机分析处理的优势不仅在于能清晰地表达多维概念,更重要的是它有着极高的综合速度。在关系数据库管理系统中,如果要得到某一地区的销售总量,只能逐条记录检索,找到满足条件的记录后将数据相加;而在多维数据库中,数据可以直接按行或列累加,其统计速度远远超过关系数据库管理系统。数据库中的记录数越多,其效果越明显。但是对多维联机分析处理来说,随着维度和维成员的增加,其存储空间可能出现组合爆炸。
关系联机分析处理的存储空间没有大小限制,现有的关系数据库的技术可以沿用,可以通过SQL实现详细数据与概要数据的存储。现有关系型数据库已经对OLAP做了很多优化,包括并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、SQL的OLAP扩展等,大大提高了关系联机分析处理的访问效率。相比较而言,关系联机分析处理技术具有更大的可伸缩性。
多维联机分析处理与关系联机分析处理的比较见表1。表1 关系联机分析处理与多维联机分析处理的比较
银行业的数据仓库项目,由于具有超海量数据的特性,OLAP产品及其存储模式的选择尤其重要。
在项目实施过程中,对OLAP产品和存储模式的选择应考虑企业数据量的大小、数据处理过程、访问效率和性价比等多个方面。由于多维联机分析处理访问具有高效性,可以将企业应用的大部分聚集层数据以MOLAP形式存储;对有大量细节数据的应用,为防止立方体存储空间过于膨胀,可考虑对于聚集数据以MOLAP方式存储;而对于原子数据可以以ROLAP方式存储。
MOLAP存储依靠多维数据集聚合的设计和百分比,提供快速的查询响应能力。一般来说,MOLAP比较适合于需要频繁使用和快速查询响应的多维数据集。
ROLAP查询响应通常比使用MOIAP或HOLAP的查询响应要慢。ROLAP一般用于不经常查询的大型数据集,如年份较早的历史数据等。
对访问汇总数据的查询,HOLAP与MOLAP功能相同。对访问基本数据的查询(如深化到一个单个事实中),必须从关系数据库中检索数据,其速度不如将基本数据存储在MOLAP结构中快。用HOLAP存储的多维数据集比同等的MOLAP多维数据集要小,而对于使用汇总数据的查询,其响应比ROLAP多维数据集快。HOLAP存储一般适用于对基于大量基本数据的汇总进行查询时,需要快速响应的多维数据集。(end)
|
|
文章内容仅供参考
(投稿)
(如果您是本文作者,请点击此处)
(11/3/2008) |
对 CIO信息化管理 有何见解?请到 CIO信息化管理论坛 畅所欲言吧!
|