数据立方体
定义:数据立方体是一类多维矩阵,让用户从多个角度探索和分析数据集,通常是一次同时考虑三个因素(维度)。
当我们试图从一堆数据中提取信息时,我们需要工具来帮助我们找到那些有关联的和重要的信息,以及探讨不同的情景。一份报告,不管是印在纸上的还是出现在屏幕上,都是数据的二维表示,是行和列构成的表格。在我们只有两个因素要考虑时,这就足矣,但在真实世界中我们需要更强的工具。
数据立方体是二维表格的多维扩展,如同几何学中立方体是正方形的三维扩展一样。 “立方体”这个词让我们想起三维的物体,我们也可以把三维的数据立方体看作是一组类似的互相叠加起来的二维表格。
但是数据立方体不局限于三个维度。大多数在线分析处理( olap)系统能用很多个维度构建数据立方体,例如,微软的sql server 2000 analysis services工具允许维度数高达64个(虽然在空间或几何范畴想像更高维度的实体还是个问题)。
在实际中,我们常常用很多个维度来构建数据立方体,但我们倾向于一次只看三个维度。数据立方体之所以有价值,是因为我们能在一个或多个维度上给立方体做索引。
关系的还是多维的?
由于数据立方体是一个非常有用的解释工具,所以大多数 olap产品都围绕着按多维阵列建立立方模型这样一个结构编制。这些多维的olap产品,即molap产品,运行速度通常比其他方法更快,这是因为能直接把索引做进数据立方的结构,方便收集数据子集。
然而,对于非常大的多维数据集, molap方案并不总是有效的。随着维度数目的增加,立方体变得更稀疏,即表示某些属性组合的多个单元是空的,没有集合的数据。相对于其他类型的稀疏数据库,数据立方体往往会增加存储需求,有时会达到不能接受的程度。压缩技术能有些帮助,但利用这些技术往往会破坏molap的自然索引。
数据立方体还可以用其他的方法构建。关系 olap就利用了关系数据库模型。rolap数据立方体是按关系表格的集合实现的(最多可达维度数目的两倍),来代替多维阵列。其中的表格叫做立方单元,代表特定的视图。
由于立方单元是一个常规的数据库表格,所以我们能用传统的 rdbms技术(如索引和连接)来处理和查询它们。这种形式对大量的数据集合可能是有效的,因为这些表格必须只能包含实际有数据的数据立方单元。
但是 rolap缺少了用molap实现时所具有的内在索引功能。相反,给定表格中的每个记录必须包括所有的属性值而任何集合的或摘要的数据。这种额外的开销可能会抵消掉一些节省出来的空间,而隐性索引的缺少意味着我们必须提供显性的索引。
从结构角度看,数据立方体由两个单元构成:维度和测度。维度已经解释过了,测度就是实际的数据值。
记住这点是很重要的:数据立方体中的数据是已经过处理并聚合成立方形式。因此,通常不需要在数据立方体中进行计算。这也意味着我们看到数据立方体中的数据并不是实时的、动态的数据。
立方体中的数据已经过摘要,表示诸如计件销售、店面销售、区域销售、销售纯利和完成订单的平均时间等数据。有了这些数据,分析师能针对一个或全部产品、客户、销售代理等,就这些数字中的一个或全部进行分析。这样,在预测趋势和分析业绩时,数据立方体就非常有用,而表格最适合报告标准化的运作情况。