2004年12月31日星期五
当今的数据处理大致可以分成两大类:联机事务处理OLTP(On-Line Transaction Processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。下表列出了OLTP与OLAP之间的比较。
| OLTP
| OLAP
|
用户
| 操作人员,底层管理人员
| 决策人员,高层管理人员
|
功能
| 日常操作处理
| 分析决策
|
DB设计
| 面向应用
| 面向主题
|
数据
| 当前的,最新的,细节的,二维的,分立的
| 历史的,聚集的,多维的,集成的,统一的
|
存取
| 读/写数十条记录
| 读上百万条记录
|
工作单位
| 简单的事务
| 复杂的查询
|
用户数
| 上千个
| 上百个
|
DB大小
| 100MB-GB
| 100GB-TB
|
OLAP是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地访问,从而获得对数据的更深入了解的一类软件技术。OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是"维"这个概念。
“维”是人们观察客观世界的角度,是一种高层次的类型划分。“维”一般包含着层次关系,这种层次关系有时会相当复杂。通过把一个实体的多项重要的属性定义为多个维(dimension),使用户能对不同维上的数据进行比较(我的理解:比如在一个二维的报表中,我们可以基于任何一个维对另一个维上的数据进行比较)。因此OLAP也可以说是多维数据分析工具的集合。
OLAP有多种实现方法,根据存储数据的方式不同可以分为ROLAP、MOLAP、HOLAP。
ROLAP表示基于关系数据库的OLAP实现(Relational OLAP)。以关系数据库为核心,以关系型结构进行多维数据的表示和存储。ROLAP将多维数据库的多维结构划分为两类表:一类是事实表,用来存储数据和维关键字;另一类是维表,即对每个维至少使用一个表来存放维的层次、成员类别等维的描述信息。
MOLAP表示基于多维数据组织的OLAP实现(Multidimensional OLAP)。以多维数据组织方式为核心,也就是说,MOLAP使用多维数组存储数据。多维数据在存储中将形成"立方体(Cube)"的结构,在MOLAP中对"立方体"的"旋转"、"切块"、"切片"是产生多维数据报表的主要技术。
HOLAP表示基于混合数据组织的OLAP实现(Hybrid OLAP)。如低层是关系型的,高层是多维矩阵型的。这种方式具有更好的灵活性。
OLAP工具是针对特定问题的联机数据访问与分析。它通过多维的方式对数据进行分析、查询和报表。维是人们观察数据的特定角度。例如,一个企业在考虑产品的销售情况时,通常从时间、地区和产品的不同角度来深入观察产品的销售情况。这里的时间、地区和产品就是维。而这些维的不同组合以及所考察的度量指标构成的多维数组则是OLAP分析的基础,可形式化表示为(维1,维2,……,维n,度量指标),如(地区、时间、产品、销售额)。多维分析是指对以多维形式组织起来的数据采取切片(Slice)、切块(Dice)、钻取(Drill-down和Roll-up)、旋转(Pivot)等各种分析动作,以求剖析数据,使用户能从多个角度、多侧面地观察数据库中的数据,从而深入理解包含在数据中的信息。
根据综合性数据的组织方式的不同,目前常见的OLAP主要有基于多维数据库的MOLAP及基于关系数据库的ROLAP两种。MOLAP是以多维的方式组织和存储数据,ROLAP则利用现有的关系数据库技术来模拟多维数据。在数据仓库应用中,OLAP应用一般是数据仓库应用的前端工具,同时OLAP工具还可以同数据挖掘工具、统计分析工具配合使用,增强决策分析功能。
2005年3月19日星期六
派生数据包括各种汇总、分配、差别、比率、排序和乘积,OLAP关注的就是创建派生变量。
OLAP擅长的是对派生数据的展示,正如其“维”的含义一样,它让决策者或者分析人员更好地观察数据(个人理解)。
OLAP和数据挖掘之间的差别,是描述型和探索型建模之间的差别。OLAP工具中的功能和算法(如聚合、分配、比率、乘积等)都是描述型建模功能,而数据挖掘工具中的功能(如回归、神经元网络、决策树、聚类等)都是模式发现和探索型建模功能。OLAP工具除了提供描述型建模功能之外,还提供构建复杂结构的功能,如带层次的维度和跨维引用,而这些都是在数据挖掘工具中没有的。
OLAP工具和数据挖掘工具的互补性很强。
2005年3月27日星期日
术语OLAP用于代表一组产品的时候,是指基于分析的面向决策的信息处理过程(ABDOP)中的描述性建模。
对于OLAP的核心要求包括:带有层次引用的丰富的维结构、对于维和计算的有效规范、灵活性、结构和表现的分离、用以支持任意查询的足够快的速度、多用户支持。
分析工作绝不仅仅是简单的数字汇总。正确地对大量数据进行汇总和平均固然是很重要的,但是最重要的信息是来自于各种比率的比较、随时间变化趋势的推断和其他方面。
聚合表,是包含“事实表的汇总信息”的表。
当使用SQL进行聚合操作的时候,需要对每种汇总层次的联合(个人理解:由多个维度的不同层次组合在一起形成的层次的联合)分别创建聚合表。举个例子,假设时间维度有3个层次,商店维度有3个层次,产品维度有4个层次,这样就有36种不同的聚合层次,从而需要创建36个聚合表。