OLAP又叫联机分析处理,联机分析处理(OLAP)的概念最早是由关系数据库之父E.F.Codd于1993年提出的。
当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-linetransactionprocessing)、联机分析处理OLAP(On-LineAnalyticalProcessing)。
简单说下OLAP和OLTP的区别:
OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
OLAP软件是使分析人员、管理人员或执行人员能够从多角度对信息进行快速、一致、交互地存取,从而获得对数据的更深入了解的一类软件技术。
OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表需求,它的技术核心是”维”这个概念。
“维”是人们观察客观世界的角度,是一种高层次的类型划分。“维”一般包含着层次关系,这种层次关系有时会相当复杂。通过把一个实体的多项重要的属性定义为多个维(dimension),使用户能对不同维上的数据进行比较。因此OLAP也可以说是多维数据分析工具的集合。
OLAP的基本多维分析操作有钻取(rollup和drilldown)、切片(slice)和切块(dice)、以及旋转(pivot)、drillacross、drillthrough等。
钻取是改变维的层次,变换分析的粒度。它包括向上钻取(rollup)和向下钻取(drilldown)。rollup是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而drilldown则相反,它从汇总数据深入到细节数据进行观察或增加新维。
切片和切块是在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;如果有三个,则是切块。
旋转是变换维的方向,即在表格中重新安排维的放置(例如行列互换)。
联机分析处理的主要特点,是直接仿照用户的多角度思考模式,预先为用户组建多维的数据模型,在这里,维指的是用户的分析角度。例如对销售数据的分析,时间周期是一个维度,产品类别、分销渠道、地理分布、客户群类也分别是一个维度。一旦多维数据模型建立完成,用户可以快速地从各个分析角度获取数据,也能动态的在各个角度之间切换或者进行多角度综合分析,具有极大的分析灵活性。
数据仓库与OLAP的关系是互补的,现代OLAP系统一般以数据仓库作为基础,即从数据仓库中抽取详细数据的一个子集并经过必要的聚集存储到OLAP存储器中供前端分析工具读取
OLAP系统按照其存储器的数据存储格式可以分为关系OLAP(RelationalOLAP,简称ROLAP)、多维OLAP(MultidimensionalOLAP,简称MOLAP)和混合型OLAP(HybridOLAP,简称HOLAP)三种类型。
ROLAP将分析用的多维数据存储在关系数据库中并根据应用的需要有选择的定义一批实视图作为表也存储在关系数据库中。不必要将每一个SQL查询都作为实视图保存,只定义那些应用频率比较高、计算工作量比较大的查询作为实视图。对每个针对OLAP服务器的查询,优先利用已经计算好的实视图来生成查询结果以提高查询效率。同时用作ROLAP存储器的RDBMS也针对OLAP作相应的优化,比如并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、SQL的OLAP扩展(cube,rollup)等等。
MOLAP将OLAP分析所用到的多维数据物理上存储为多维数组的形式,形成“立方体”的结构。维的属性值被映射成多维数组的下标值或下标的范围,而总结数据作为多维数组的值存储在数组的单元中。由于MOLAP采用了新的存储结构,从物理层实现起,因此又称为物理OLAP;而ROLAP主要通过一些软件工具或中间软件实现,物理层仍采用关系数据库的存储结构,因此称为虚拟OLAP。
由于MOLAP和ROLAP有着各自的优点和缺点(如下表所示),且它们的结构迥然不同,这给分析人员设计OLAP结构提出了难题。为此一个新的OLAP结构——混合型OLAP(HOLAP)被提出,它能把MOLAP和ROLAP两种结构的优点结合起来。迄今为止,对HOLAP还没有一个正式的定义。但很明显,HOLAP结构不应该是MOLAP与ROLAP结构的简单组合,而是这两种结构技术优点的有机结合,能满足用户各种复杂的分析请求。
(1)切片和切块(Slice and Dice)
切片和切块是在维上做投影操作。
切片就是在多维数据上选定一个二维子集的操作,即在某两个维上取一定区间的维成员或全部维成员,而在其余的维上选定一个维成员的操作。
维是观察数据的角度,那么切片的作用或结果就是舍弃一些观察角度,使人们能在两个维上集中观察数据。因为人的空间想象能力毕竟有限,一般很难想象四维以上的空间结构,所以对于维数较多的多维数据空间,数据切片是十分有意义的.
(2)钻取(Drill)
钻取有向下钻取(Drill Down)和向上钻取(Drill up)操作。向下钻取是使用户在多层数据中展现渐增的细节层次,获得更多的细节性数据。向上钻取以渐增概括方式汇总数据(例如,从周到季度,再到年度)。
(3)旋转(Pivoting)
通过旋转可以得到不同视角的数据。旋转操作相当于在平面内将坐标轴旋转。例如,旋转可能包含了交换行和列,或是把某一个行维移到列维中去,或是把页面显示中的一个维和页面外的维进行交换(令其成为新的行或列中的一个)。
在线分析处理 (Online Analytical Processing: OLAP)是一类允许用户同时分析来自多个数据库系统的信息的软件。它是一种使分析师能够从不同角度提取和查看业务数据的技术。
分析师经常需要对数据进行分组、聚合和连接。数据挖掘中的这些 OLAP 操作是资源密集型的。使用 OLAP 可以预先计算和预先聚合数据,从而加快分析速度。
OLAP 数据库被分成一个或多个多维数据集。多维数据集的设计方式使得创建和查看报告变得容易。OLAP 代表在线分析处理。
在本教程中,您将学习-
OLAP 多维数据集
OLAP的基本分析操作
OLAP 系统的类型
ROLAP
MOLAP
混合OLAP
OLAP 的优势
OLAP 的缺点
OLAP 多维数据集
OLAP 概念的核心是 OLAP Cube。OLAP 多维数据集是一种为非常快速的数据分析而优化的数据结构。
OLAP Cube 由按维度分类的称为度量的数字事实组成。OLAP Cube 也称为超立方体。
通常,数据操作和分析使用简单的电子表格进行,其中数据值以行列格式排列。这是二维数据的理想选择。但是,OLAP 包含多维数据,数据通常来自不同且不相关的来源。使用电子表格不是最佳选择。多维数据集可以逻辑有序地存储和分析多维数据。
它是如何工作的?
数据仓库将从多个数据源和格式(如文本文件、Excel 表格、多媒体文件等)中提取信息。
提取的数据被清理和转换。数据被加载到 OLAP 服务器(或 OLAP 多维数据集)中,在那里预先计算信息以供进一步分析。
分析 OLAP 操作的四种类型是:
Roll-up (汇总)
Drill-down (挖掘)
Slice and dice (切片与切块)
Pivot/rotate(透视/旋转)
1) 汇总:
汇总也称为“合并”或“聚合”。可以通过 2 种方式执行 Roll-up 操作
缩小尺寸
攀登概念层次结构。概念层次结构是根据事物的顺序或级别对事物进行分组的系统。
考虑下图
OLAP 中的汇总操作
在此示例中,城市 New jersey 和 Lost Angles 并卷入美国国家/地区
新泽西和洛杉矶的销售数字分别为 440 和 1560。上卷后变成 2000
在这个聚合过程中,数据是位置层次结构,从城市向上移动到国家。
在卷起过程中,至少需要去除一个或多个维度。在本例中,城市维度被删除。
2) 挖掘
在向下挖掘中,数据被分成更小的部分。它与汇总过程相反。它可以通过
向下移动概念层次结构
增加维度
OLAP 中的挖掘操作
考虑上图
季度 Q1 向下挖掘到 1 月、2 月和 3 月。相应的销售额也是寄存器。
在此示例中,添加了维度月份。
3)切片:
在这里,选择了一个维度,并创建了一个新的子立方体。
下图解释了切片操作是如何执行的:
OLAP 中的切片操作
使用 Q1 作为过滤器对维度时间进行切片。
一个新的立方体被完全创建。
切块:
此操作类似于切片。切割的不同之处在于您选择了 2 个或更多维度,从而创建了一个子立方体。
OLAP 中的切割操作
4) 透视
在透视中,您可以旋转数据轴以提供数据的替代表示。
在以下示例中,数据透视基于项目类型。
OLAP透视操作
OLAP 层次结构
OLAP 系统的类型
ROLAP 处理存在于关系数据库中的数据。事实和维度表存储为关系表。它还允许对数据进行多维分析,是增长最快的 OLAP。
ROLAP模型的优点:
数据效率高。它提供了高数据效率,因为查询性能和访问语言特别针对多维数据分析进行了优化。
可扩展性。这种类型的 OLAP 系统为管理大量数据提供了可扩展性,甚至在数据稳定增加时也是如此。
ROLAP 模型的缺点:
对资源的需求更高: ROLAP 需要对人力、软件和硬件资源的利用率高。
汇总数据限制。ROLAP 工具使用 SQL 进行聚合数据的所有计算。但是,对于处理计算没有设置限制。
查询性能慢。 与 MOLAP 相比,此模型中的查询性能较慢
MOLAP 使用基于数组的多维存储引擎来显示数据的多维视图。基本上,他们使用 OLAP 多维数据集。
混合 OLAP 是 ROLAP 和 MOLAP 的混合。它提供了 MOLAP 的快速计算和 ROLAP 的更高可扩展性。HOLAP 使用两个数据库。
聚合或计算的数据存储在多维 OLAP 多维数据集中
详细信息存储在关系数据库中。
混合 OLAP 的好处:
这种 OLAP 有助于节省磁盘空间,并且它也保持紧凑,这有助于避免与访问速度和便利性相关的问题。
混合 HOLAP 使用多维数据集技术,可以为所有类型的数据提供更快的性能。
ROLAP 是即时更新的,HOLAP 用户可以访问这个实时即时更新的数据。MOLAP 带来了数据的清理和转换,从而提高了数据的相关性。这带来了两全其美。
混合OLAP的缺点:
更高的复杂度: HOLAP 系统的主要缺点是它同时支持 ROLAP 和 MOLAP 工具和应用程序。因此,它非常复杂。
潜在的重叠:重叠的可能性更高,尤其是它们的功能。
OLAP 是适用于所有类型业务的平台,包括计划、预算、报告和分析。
OLAP 多维数据集中的信息和计算是一致的。这是一个至关重要的好处。
快速创建和分析“假设”场景
轻松搜索 OLAP 数据库以获取广泛或特定的术语。
OLAP 为业务建模工具、数据挖掘工具、性能报告工具提供了构建块。
允许用户按各种维度、度量和过滤器对立方体数据进行切片和切块。
它有利于分析时间序列。
使用 OLAP 可以轻松找到一些集群和异常值。
它是一个强大的可视化在线分析过程系统,可提供更快的响应时间
OLAP 需要将数据组织成星型或雪花模式。这些模式实施和管理起来很复杂
单个 OLAP 多维数据集中不能有大量维度
OLAP 系统无法访问事务数据。
OLAP 多维数据集中的任何修改都需要对多维数据集进行完整更新。这是一个耗时的过程
数据仓库中的 OLAP 是一种使分析师能够从不同角度提取和查看业务数据的技术。
OLAP 概念的核心是一个 OLAP Cube。
各种业务应用程序和其他数据操作都需要使用 OLAP Cube。
数据仓库中有五种主要的分析型 OLAP 操作:1) 汇总 2) 挖掘 3) 切片 4) 切块和 5) 透视
三种广泛使用的 OLAP 系统是 MOLAP、ROLAP 和混合 OLAP。
桌面 OLAP、Web OLAP 和移动 OLAP 是其他一些类型的 OLAP 系统。