Graph OLAP: Towards Online Analytical Processing on Graphs
研究背景
联机分析处理(OLAP)是数据分析的一种重要方式。传统的OLAP是对相互独立的数据进行处理,即不考虑数据元组之间的关系。比如超市顾客的购物信息,数据仓库保存的是每个顾客购物时购买的商品集合。使用OLAP可以分析商品之间的关系,挖掘出有用的信息供超市老板调整策略。
传统的OLAP并不能很好的适用于图结构的分析,因为它没有考虑数据个体之间的连接关系。当前,图分析的重要性日益增长,我们需要从不同角度,以多种粒度对图进行分析,以获取有用的信息。
本篇文章的工作主要分为两部分:
- 对图OLAP的模型和操作进行定义;
- 研究图数据立方体的实现及其优化方式。
图OLAP的案例
案例1:合作模式
该案例对论文会议进行分析,以会议开展的时间和会议名称作为变量,把一次会议作为一个网络图,把在该会议中发表论文的所有作者作为图的顶点,把共同发表同一篇问文章的作者用边连起来,表示合作关系,边上的权值表示合作的次数。
对于这个案例,我们可以提出以下疑问:
1.在2004年的所有DB会议(SIGMOD, VLDB, ICDE等)中作者之间的合作关系是怎样的?
2.在2005年的所有DB会议中作者之间的合作关系是怎样的?
3.在所有年份的所有DB会议中作者之间的合作关系是怎样的?
显然,上述查询可以将原网络图进行叠加获得。具体方式如下图所示。
可以看到,R.Agrawal和R.srikant在所有年份的所有DB会议中合作发表了33篇论文。此案例是图OLAP较为简单的一种查询。
案例2:最大流
设想一个城市群构成的网络,网络中的顶点表示城市,城市之间的有向边表示客流承载力。这里以交通方式和相应负责的公司作为变量,将某公司的某种交通方式下的城市群客流承载力作为一张网络图。
我们考虑以下查询:
1.从城市S到城市T,仅考虑飞机的方式,能够达到的客流承载力是多少?
2.从城市S到城市T,仅考虑公司x的运载力,能够达到的客流承载力是多少?
这类查询没法简单地通过基础网络叠加的方式得到,因为需要计算的网络是最大流网络,而基础网络是运载能力网络。从城市S到城市T的方式不仅可以直达,还可以通过其它城市中转。所以此案例的计算复杂度要大于案例1的计算复杂度。
案例3:合作模式2
让我们再次回到案例1的场景,但这次的查询与案例1的查询有所不同。事实上,因为参与人数较多,会议上的合作关系网络看起来非常复杂。这时我们想简化一下网络,把作者之间的合作关系简化为高校之间的合作关系。也就是,若作者A属于斯坦福,作者B属于牛津,A与B合作发表了一篇文章,相当于斯坦福与牛津合作发表了一篇文章。
显然,这类查询是对单张基础网络进行修改,而不涉及到案例1和案例2多张网络的操作。
根据上述三个案例,作者对图OLAP的形式和操作进行了定义。
图OLAP框架
图模型
作者用一组快照图(snapshot)来表示一个图模型。即g = {G1, G2 … GN}。这里的g相当于数据立方体(Cube)中的方体(Cuboid),g中的元素Gi相当于方体中的元组(Cell)。
如案例1所展示的基础图,原始数据按照会议名称和会议时间分成了许多张快照图,这些快照图构成了图数据立方体的基础方体(Base Cuboid)。
图数据的维度可以分为两类:信息维度(Informational Dimensions)和拓扑维度(Topological Dimensions)。对这两种维度进行操作的OLAP分别称作I-OLAP和T-OLAP。
信息维度
信息维度是将原始数据拆分为多个快照图的依据。如案例1所示,信息维度包括会议名称和会议时间。在一个快照图中,所有顶点的信息维度值相同。
拓扑维度
拓扑维度是将快照图中的数据拆分为多个顶点的依据。如案例3所示,拓扑维度包括作者名称和所属院校。
I-OLAP
本文主要研究了I-OLAP操作,主要分为上卷(Roll-up)、下钻(Drill-down)、切片(Slice)、切块(Dice)四类操作。I-OLAP操作比较简单,因为它主要对快照图进行叠加或拆分操作,不怎么涉及快照图内部的结构修改。
- 上卷:将多个低层次的快照图叠加为一个高层次聚合快照图,称为I-聚合图(I-aggregated graph)。
- 下钻:将高层次的I-聚合图拆分为一组低层次的快照图。
- 切片/切块:基于给定的信息维度,选择符合条件的快照图子集。
T-OLAP
T-OLAP操作相对比较复杂,因为它涉及到快照图内部结构的变化,作者将T-OLAP作为以后的研究方向。
度量分类
度量(Measure)即指标,是从维度的基础上去衡算这个元组的值。与传统的OLAP一样,图OLAP的度量可以分为I-分布度量(I-distributive), I-代数度量(I-algebraic), I-整体度量(I-holistic), T-分布度量(T-distributive), T-代数度量(T-algebraic), T-整体度量(T-holistic)。这里作者只分析了前三者。
I-分布度量
计算I-聚合网络时,其度量值通过叠加低层次的快照图便可求得,如案例1中的合作次数。
I-代数度量
计算I-聚合网络时,其度量值不能简单地通过叠加低层次快照图获得,但可以通过对有限个I-distributive进行操作求得。如案例2中的最大流。
I-整体度量
计算I-聚合网络时,其度量值必须从基础快照图开始计算,计算复杂度最大。
优化方式
由于图模型的复杂性,图OLAP的计算复杂度高于传统OLAP的计算复杂度。其中I-代数度量和I-整体度量的复杂度较大。基于此作者提出了两种优化方案:本地化,稀释化。
本地化
我们想分析聚合网络中,某两个顶点的信息,或是它们之间的关系信息。从低层次网络中求这些信息时,只访问了它们的邻居顶点,那么称该计算是能够本地化的。
该优化方式的应用在于,如果我们仅需要获取高层次聚合网络中部分顶点的信息,那么计算相应的低层次网络时,可以只计算对应的部分网络,而不需要将整个网络计算出来。
稀释化
稀释化的思想是:在计算OLAP操作的过程中,对中间结果(低层次网络)的利用率越高,越能够降低计算整个聚合网络的代价。