联机分析处理(On-Line Analytical Processing,OLAP)是关系数据库的奠基人E.F.Codd于1993年提出来的,主要是对大量多维数据的动态综合、分析和归纳。OLAP中的一个主要操作是“多维分析”,即通过对信息的多种可能的观察形式进行快速、稳定、一致和交互性的存取,允许管理决策人员对数据进行深入分析。OLAP现在广泛用于市场和销售分析、网站点击率分析,数据库营销、预算、财务报告与整合、管理报告、利益率分析、质量分析等各种领域。
多维分析是在“多维视图”的基础上进行的,多维视图是多维度的立体结构,即它们包含了若干层的行和列,数据用不同层次中的不同维度表达,表示数据的多维度信息图称为超立体结构(Cube)。
OLAP分析主要是通过对多维组织后的数据进行切片、切块、聚合、钻取、旋转等分析动作,以求剖析数据使用户能够从多种维度、多个侧面、多种数据综合度查看数据,从而了解数据背后蕴含的规律。下面我们逐一说明OLAP的分析动作。
1.数据切片
多维数据是由多个维度组成的,如果在某一维度上选定一个取值,则多维数据就从n维下降成了n-1维,我们称多维数组的子集(维度1,维度2,维度3,…,维度i,维度i+1,…,维度n,度量变量)为多维数组在维度i的切片。
图8-17示例了数据切片的概念。如果存在一个(时间,城市,产品,价格)的数据立方体,其中时间、城市、产品是3个维度,价格是度量变量。在城市维上取定“上海”“广州”,则分别形成两个在城市维上的数据切片,分别显示的是上海和广州各年各种产品的价格情况。再如,图中右下角在产品维中取定“电视机”“电冰箱”,则分别生成两个在产品维上的数据切片,显示的是各个城市各年份电视机和电冰箱的价格情况。
图8-17 数据切片示意
2.数据切块
数据切块就是将完整的数据立方体切取一部分数据而得到的新的数据立方体,如图8-18所示。
图8-18 数据切块的示意
选定多维数组(维度1,维度2、维度,…,维度n,度量变量)中若干维度(通常是3个维度,图形显示最多只能做到3维)的取值范围,从而形成了多维数据的子集(维度1,维度2,维度3,…,维度i<B 1,…,维度j<B 2,…,A 3<维度k<B 4,…,维度n,度量变量),我们将这个子集称为数据切块。
图8-19示例了一个具体数据切块的例子。假设问题同时间维、地理维、产品维相关,指定时间维的取值为1998—2001年,地理维指定为(上海、北京、广州),产品维指定为(计算机、电冰箱、电视机),则可以得到图8-19右侧的数据切块,它是原先完整的数据立方体的一部分。
图8-19 数据切块示意图
3.数据钻取
维度是具有层次性的,如时间维可能由年、月、日构成,维度的层次实际上反映了数据的综合程度。维度层次越高,代表的数据综合度越高,细节越少,数据量越少;维度层次越低,则代表的数据综合度越低,细节越充分,数据越大。数据钻取就是从较高的维度层次下降到较低的维度层次上来观察多维数据。(www.daowen.com)
图8-20展示了一个企业在不同时间和地理上的销售量的分布情况。图中的第一张表,时间层次是“年”,如果我们选择时间维度向下钻取,得到图中的第二张表,第二张表显示的是该企业每年每季度在各个分区上的销售情况,显然第二张表中各个季度的销售量总和应当等于第一张表中一年的销量。
图8-20 数据钻取实例
同理,如果我们在季度层次上继续向下面钻取,则得到第三张表,它显示的该企业每年、每季度、每月在各个分区上的销售情况,显然第三张表中3个月的销售量总和应当等于第二张表中一个季度的销量。
如果对时间维度只定义了“年”“季度”“月份”这3个层次关系,第三张表是我们能够得到的最细节的数据,不能再进一步钻取。如果对时间维度定义了“年”“季度”“月份”“周”“日”等更多的层次,则还可以进一步钻取。
4.数据聚合
数据聚合实际上是钻取的逆向操作,是对数据进行高层次综合的操作。我们可以将每3个月的数据聚合成季度数据,再将4个季度的数据聚合成年数据,依此类推。图8-21显示了一个数据聚合的例子。
图8-21 数据聚合实例
5.数据旋转
数据旋转是改变维度的位置关系,使最终用户可以从其他视角来观察到多维数据。比如,图8-22的例子是把横向的时间维度和纵向的地理维度进行了交换,从而形成横向为地理、纵向为时间的报表。
图8-22 不同维度间的旋转
图8-23中的例子是在维度层次之间进行了交换,这使得最终用户能够更好地对不同年份同时期的数据进行比较。
图8-23 维度层次上的旋转示例
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。