18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > OLAP操作(数据库)

OLAP操作(数据库)

时间:2022-11-05 08:30:01 | 来源:信息时代

时间:2022-11-05 08:30:01 来源:信息时代

    OLAP操作 : 通过对多维形式组织起来的数据进行切片、切块、聚合、钻取、旋转等分析动作,以求剖析数据使用户能够从多种维度、多个侧面、多种数据综合度查看数据,从而深入地了解包含在数据中的信息、内涵。OLAP的操作方式迎合了人们的思维模式,为用户从不同角度观察数据提供了灵活性。
1. 数据切片(slice)
数据切片有两个定义:
数据切片1:数组的某一维上选定一个取值,则多维数组就从n维降成了n-1维,称多维数组的子集(维度1,维度2,…,维成员Vi,…,维度n,变量)(设维度i的维成员取Vi)为多维数组在维度i上的切片。
如图1所示是一个按产品维、城市维和时间维(年)组织起来的产品销售数据,用多维数组表示为(时间,城市,产品,销售额)。如果在城市维上选定一个维成员(设为“上海”或“广州”),就得到了在城市维上的一个切片; 如果在产品维上选定一个维成员(设为“电视机”或“电冰箱”),就得到了在产品维上的一个切片。显然,这样切片的数目取决于每个维成员的个数。


图1 数据切片示意图


一次切片一定使原来维数减1,因此所得的切片结果并不一定是二维的“平面”,其切片结果的维数取决于原来的多维数组的维数。这样的切片含义不够通俗易懂,所以给出了切片的另一个定义(这两个定义是不等价的): 数据切片2: 选定多维数组中两个维: 维i和维j,在这两个维上取某一区间或任意的维成员,而将其余的维都分别取定一个维成员的动作称为多维数组在维i和维j上的一个切片,表示为:(维i,维j,变量)。
对于图1的例子,选定多维数组(时间,城市,产品,销售额)中的时间维度与产品维度,而在城市维上取定一个维成员(设为“上海”或“广州”),就得到了多维数组(时间,城市,产品,销售额)在时间和产品两维上的一个切片(时间,产品,销售额)。它表示“上海”或“广州”地区各产品、每年的销售情况。相应地,选定时间维度与城市维度,而在产品维上取定一个维成员(设为“电视机”或“电冰箱”),就得到了多维数组(时间,城市,产品,销售额)在时间和城市两维上的一个切片(时间,城市,销售额)。
从第二个定义可以得出以下两点:
(1)一个多维数组的切片最终是由该数组中除切片所在平面的两个维之外的其他维的成员值确定的。
(2)维是观察数据的角度,那么切片的作用或结果就是舍弃一些观察角度,使人们能在两个维上集中观察数据。因为人的空间想像能力毕竟有限,一般很难想像四维以上的空间结构。所以对于维数较多的多维数据空间,数据切片是很有意义的。
第二个定义可以看成是第一个定义的一个特例。对于一个n维数组,按第一个定义进行的n-2次切片的结果,就必定是对应于按第二个定义进行的某一次切片的结果。
2. 数据切块(dice)
和切片相对应,对切块也有两个定义:
数据切块1:将多维数组某一维上的取值设定为一个区间(例如取“1999至2004年”)的维成员的动作称为切块。显然,当这一区间只取一维成员时,即得到一个切片。
数据切块2: 选定多维数组中三个维: 维i、维j和维k,在这三个维上取某一区间或任意的维成员,而将其余的维都分别取定一个维成员的动作称为多维数组在维i、维j和维k上的一个切块,表示为:(维i,维j,维k,变量)。
从另一个角度来讲,切块可以看成是由多个切片叠合而成。在图1中,如果将城市维上的取值设定为一个区间,例如取(上海、北京、广州),而非单一的维成员时,就得到一个数据切块,它可以看成是上海、北京和广州三个切片叠合而成。
3.数据上钻/下钻(drill-up/drill-down)
上钻操作通过一个维的概念分层向上攀升; 下钻是上钻的逆操作,可以通过沿维的概念分层向下。这两者都是改变维的层次的操作。
在图2中,2004年某产品销售收入如表1,时间层次是“年”,如在时间维上进行下钻操作,可获得其下层各季度销售数据如表2所示,表2显示的是2004年某产品每季度的销售情况,显然,表2中各个季度的销售总和应当等于表1中一年的销量。同理,如果在季度层次上继续向下钻取,则可得到2004年该产品每季度、每月的销售情况,等等。相反,若进行上钻,则可从表2得到表1的结果。


图2 上钻、下钻操作示意图


显然,钻取的深度与维所划分的层次相对应。如果对时间维度上只定义了“年”、“季度”这两个层次关系,那么表2是能够得到的最细节的数据,不能再进一步下钻。如果对时间维度定义了“年”、“季度”、“月份”、“周”、“日”等更多的层次,则还可以进一步钻取。类似地,也可以在部门维度上进行钻取。
4. 数据旋转(rotate)
数据旋转是改变维度的位置关系,通过旋转可以得到不同视角的数据。旋转可能交换行和列,也可能是在维度层次之间进行交换。
如图3(a)所示是一个行列交换示意图,横向的时间维度和纵向的产品维度进行了交换,从而形成横向为产品,纵向为时间的表。图3(b)所示是一个三维旋转示例。图3(c)所示则是在维度层次之间进行了交换,这使得用户能够更好地对同产品不同地区,不同季度的数据进行比较。


图3 旋转操作示意图

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭