目前有两种MDD 的OLAP产品:基于多维数据库的MOLAP和基于关系数据库的ROLAP。ROLAP建立了一种新的体系,即星型结构。
MDD并没有公认的多维模型,也没有像关系模型那样标准地取得数据的方法(如SQL、API等)。基于MDD的OLAP产品,依据决策支持的内容使用范围也有很大的不同。
在低端,用户使用基于单用户或小型LAN的工具来观察多维数据。这些工具的功能性和实用性可能相当不错,但由于受到规模的限制,它们不具备OLAP的所有特性。这些工具使用超立方结构,将模型限制在n维形态。当模型足够大且稀疏数据没有控制好时,这种模型将会不堪一击。这些工具使用数据库的大小是以MB来计量的,而不是以GB计量的,因此只能进行只读 *** 作,且具备有限的复杂计算。
在高端,OLAP工具用4GL提供了完善的开发环境、统计分析、时间序列分析、财政报告、用户接口、多层体系结构、图表等许多其他功能。尽管不同的OLAP工具都使用了它们自己的多维数据库,但它们在不同程度上也利用了关系数据库作为存储媒体。因为关系数据库和OLAP工具同时在高端服务器上处理,所以速度和效率仍然很快。
纯多维数据库引擎也被开发出来。尽管这些工具缺乏4GL及充分的开发环境,但却有比高端MDD工具所使用的数据库更为复杂的数据库。这些工具也具有统计分析、财务分析和时间序列分析等功能,并有自己的API,允许其对前端的开发环境开放。
MDD能提供优良的查询性能。存储在MDD中的信息比在关系数据库中的信息具有更详细的索引,可以常驻内存。MDD的信息是以数组形式存放的,所以它可以在不影响索引的情况下更新数据。因此MDD非常适合于读写应用。
数据仓库,简称为DW(Data Warehouse的缩写),是一个很大的数据存储集合,通过对多样的业务数据进行筛选与整合,产出企业的分析性报告和各类报表,为企业的决策提供支持。数据仓库的输入方是各种各样的数据源,最终的输出用于企业的数据分析、数据挖掘、数据报表等方向。
多维数据库由一个基本维度(它表示没有应用任何读取端隐私策略的数据库)和许多用户维度(它们是数据库的转换副本)组成。
为了获得良好的查询性能,我们希望预先计算每个用户的Universe。如果我们天真地那样做,我们最终会有很多领域需要存储和维护,而存储需求本身将是令人望而却步的。
一个空间和计算效率高的多维数据库显然不能将所有用户维度全部实现,必须支持对用户维度的高性能增量更新。因此,它需要支持高性能更新的部分具体化视图。最近的研究提供了这个丢失的密钥原语。具体来说,可伸缩的并行流数据流计算系统现在支持部分有状态和动态变化的数据流。这些想法使得建立一个高效的多元维度数据库成为可能。
因此,我们将基础维度中的数据库表作为数据流的根顶点,并且随着基础维度的更新,记录将通过流移动到用户维度中。当数据流图中的边跨越通用边界时,将插入任何必要的数据流运算符以强制执行所需的隐私策略。所有适用的策略都应用于转换到给定用户群的每个边缘,因此无论数据通过哪个路径到达该边缘,我们都知道策略将被强制执行。
我们可以动态地构建数据流图,在第一次执行查询时为用户范围扩展流。通过在两个维度之间共享计算和缓存数据,可以减少基本更新所需的计算量。将其实现为一个联合的部分状态数据流是安全地执行此 *** 作的关键。
通过将所有用户的查询作为一个联合数据流进行推理,系统可以检测到这样的共享:当存在相同的数据流路径时,它们可以合并。
逻辑上不同但功能上等价的数据流顶点也可以共享一个公共的后备存储。在给定的维度中,任何到达这样一个顶点的记录都意味着维度可以访问它,因此系统可以安全地公开共享副本。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)