Microsoft . 技术之路...

—— 专注于微软技术, 分享是快乐的源泉......
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

分析服务的三种数据存储模式

Posted on 2006-08-01 09:12  赣江源  阅读(677)  评论(0编辑  收藏  举报

分析服务存储模式

分析服务支持以三种模式的分区数据存储:

MOLAP

叶子数据和所有聚集都以分析服务格式存储在分析服务器上。在处理过程中,叶子数据被从关系源中提取出来,以分析服务格式存储在分析服务器中。聚集以分析服务格式进行计算和存储。

MOLAP 存储是最常用的分析服务存储模式,在查询时间方面实现了最高的性能。

当 Teradata 数据库和分析服务数据库之间的带宽很差时,MOLAP 分区完全处理的速度将受到 OLE DB 提供者的影响。在设计多维数据集管理系统时必须考虑到这一点,使多维数据集的完全处理具有足够高的性能。

大部分 MOLAP 多维数据集需要相应源数据(存储在关系数据库中,仅包括数据,不计算索引)的 20-30% 存储空间。叶子 MOLAP 数据需要其中大约一半的存储空间,而另一半则由聚集占用。具有 Distinct Count 量度的多维数据集具有更大的聚集。

ROLAP

细节数据和聚集(如果有)存储在关系数据库中。正如前面所提到的,在 Teradata 数据库/分析服务配置中,不支持由分析服务创建的 ROLAP 聚集:在这种情况下,ROLAP 存储是具有零聚集的 ROLAP,在存储设计向导中进行定义。为了确保 ROLAP 的聚集被设置为 0,请运行存储设计向导,并在设置聚集选项面板中将性能粒度设置为 0%。这种情形下的聚集需要通过 Teradata Aggregate Join 索引特性来创建。如需了解有关实施 Aggregate Join 索引的更多信息,请参考 Teradata 数据库和客户端用户文档。

通常,维度以分析服务格式存储在分析服务器上,这样能够提供极其快速的维度浏览用户体验。在查询时,分析服务引擎通过确定客户端应用程序所请求的多维数据集单元来解答数据请求,然后向关系数据库发出一个或多个查询。所有计算都在这些数据上执行,例如计算成员、计算单元或定制滚动等,其计算单元集将被发送回客户端应用程序。

如果所有多维数据集分区都存储为 ROLAP 模式,那么多维数据集维度可能也存储在 Teradata 数据库中。这种体系结构非常精明,是一种受支持的配置。但是,这种配置并不常见。

ROLAP 存储模式诱人之处在于其低响应时间的数据发送,通常被称为实时 OLAP。这个问题稍后将在“设计低响应时间 OLAP”一节中进一步详细讨论。

HOLAP

细节数据存储在 Teradata 数据库中,聚集以 MOLAP 格式存储。在处理过程中,细节数据从 Teradata 数据库中提取,但是不进行存储;聚集以分析服务格式进行计算和存储。

HOLAP 分区的处理时间与具有相同聚集设计的 MOLAP 分区几乎相同。虽然 MOLAP 分区在分区服务器上几乎需要两倍于 HOLAP 分区的存储空间,但我们并不推荐 HOLAP 分区。如果您可以为足够的处理性能设计多维数据集处理应用程序,您应该能够从叶子数据的 MOLAP 存储中获益,它需要相对较少的磁盘空间成本。

不论采用哪种存储模式,除了可能的性能差别以外,多维数据集的行为在各个方面都是相同的。在查询时,大部分计算都在分析服务数据库引擎中进行。如果在使用 ROLAP 或 HOLAP 的分区中解答一个查询需要关系数据,那么分析服务引擎会向源数据库发送相对简单的查询。除了在多维数据集分区处理过程中,MOLAP 多维数据集都无法访问源数据库。