《分析服务从入门到精通读书笔记》第二章、多维OLAP优势篇(2)
持续的快速相应
OLAP获得持续的快速相应速度的一种方式是预先存储计算好的数值。一般来说,要么在查询时花时间进行相关计算,要么在查询前就已经进行了相关的计算。OLAP允许提前进行计算,因此查询能运行的更快。就数据如何在物理上存储而言。OLAP工具通常分为两个基本模式:电子表格模式和数据库模型。分析服务存储通常是数据库模型,但是,理解电子表格模式的OLAP的问题和优势是非常有用的。
我们可以向电子表格中的任一单元格插入数值或公式。电子表格对于复杂的公式很有帮助,因为它便于用户操控。然而,电子表格的缺点之一是它在大小方面很受限制,并且电子表格本质上只是一个二维结构。OLAP多维数据集可以包含远比电子表格多的数据,并能实现多个维度。使用电子表格存储模型的OLAP,数据库物理地在多维数据集中存储聚合值和公式计算结果。有好处也有坏处,好处:由于我们可以提前计算非常复杂的公式,并能将结构存储在多维数据集的任意表格中。由于复杂公式的结果已经被计算,查询能执行的很快。坏处:在多维数据集中存储全部的聚合值和全部公式的结果会消耗巨大的存储空间。由于被称作数据爆炸的问题的存在。从而限制了OLAP多维数据集的大小。
举例:国际象棋发明..国王奖励的例子...其实本质就是一个指数爆炸的问题。
多维数据集的大小随着维度呈几何级增长。这就是采用电子表格模型存储OLAP的问题。由于数据可能存储在多维数据集空间的任何单元格中,数据爆炸成为一个必须要处理的现实问题。多维数据集中包含的维数越多,每个维度(粒度)中的成员越多,数据爆炸越可能发生。基于电子表格的OLAP通常都有精心制作的复杂的技术来处理数据爆炸,但即使这样,基于电子表格的OLAP在大小方面也很受限制。
基于电子表格的OLAP工具通常和财务应用程序相联系。多数财务应用程序都涉及相对较小具有复杂的非累加计算的数据分析,基于数据库模型存储多维数据集的数据OLAP工具则不一样。他们并不存储公式的结果,也不存储所有的聚合值,而是利用大多数报表都需要使用加法这个事实,而加法是关联运算。例如,对3、5和7相加,无论是先将3和5相加得到8再与7相加,还是先将5和7相加得到12再与3相加,都没有关系,最终结构都是15。在纯关系型数据库中,可以通过创建聚合表来快速得到查询结果。在聚合表中,事先计算好了报表中需要的值。例如在一个包含了几千中产品、5年明细数据,也许还有其他几个维度的事实表中,可能存储了几百万行数据,即使在只有50个子类表和20个季度的情况下,也需要好几分钟来生成一个按产品子类别或季度分组的报表。但是如果事先将这些数据汇总,形成只包含子类和季度的聚合表,聚合表至多有1000行(50个子类和20个季度产生1000个可能的行),那么生成按子类和季度汇总的报表将不会花费太长的时间。实际上,由于加法运算关联属性,生成按类型和年度汇总的报表也可以使用相同的聚合表,并且也能很快的计算出结果。
使用基于数据库模式存储的OLAP的最大好处是能避免数据爆炸。由于只需要相对少的聚合表来快速查询结果,相比于基于电子表格的OLAP.基于数据库模型的OLAP可以更多维度和属性的多维数据集。使用基于数据库模型存储的OLAP的最大优点是没有固有的方法来存储使用非关联性操作计算的结果。但执行查询时,所有的公式都必须计算。
即使使用数据库模型存储的OLAP多维数据集也能快速的计算某些非关联操作,例如,平均销售价格不是可累加的值,我们不能简单的将所有的价格累加起来,但是若按照产品分类来计算平均销售价格,我们可以简单的先累加每个品种的销售额和销售量的总数,然后把销售额除以销售总量。应为是在计算两个可累加值的简单比值,结果的执行速度必然和查询简单的可累加值一样快。
OLAP的一个优点就是能够提前计算数值,这样就能快速的呈现报表。不同的OLAP技术有不同的优势和劣势,但在涉及高度汇总值时一个好的OLAP比相应的关系查询快很多。