多维数据模型于OLAP基础
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多维数据模型于OLAP基础
近年来,随着网络技术和数理分析在银行业中的广泛应用,西方商业银行开始广泛采用人口地理统计理论,运用数据挖掘及商业智能等技术,处理跨时间、跨空间、跨部门、跨产品的银行数据集成分析问题,逐步实现了金融产品和金融服务的交叉销售,以保留住优质客户。目前,国内多家银行也不同程度地开展了商业智能(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以关系数据库为核心,以关系型结构进行多维数据的表示和存储,将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。维表和事实表通过主关键字和外关键字联系在一起,形成“星型模式”。对于层次复杂的维,为避免冗余数据占用过大的存储空间,可以使用多个表描述,这种星型模式的扩展称为“雪花模式”。这种多维数据的表示方式能够让使用者以较简单的方式了解这些资料,增加查询效率,并