详解SQL Server OLAP三种存储模型

日期: 2014-04-15 作者:Basit Farooq翻译:Ranma 来源:TechTarget中国 英文

多维应用的物理存储设计会影响项目的时延,规模以及性能。因此,在设计物理存储的时候,首先需要决定如何存储维度和度量,考虑如何为多维应用设计一个高效的物理存储策略。在本文中,我们将介绍标准的OLAP存储模型,并讨论在为多维应用选择存储模型的时候所涉及的一些问题。 多维应用存储了三类信息:元数据,详细数据和聚合。

元数据定义了多维结构,包括使用了什么样的事实和维度。详细数据包含用于分析的业务指标。而聚合则是详细数据的总结。元数据通常是存储在多维结构中的,但是详细数据和聚合的存储位置是由存储模型来定义的。

微软SQL Server分析服务(SSAS)对多维平台支持三类主要的物理存储模型:多维OLAP(M……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

多维应用的物理存储设计会影响项目的时延,规模以及性能。因此,在设计物理存储的时候,首先需要决定如何存储维度和度量,考虑如何为多维应用设计一个高效的物理存储策略。在本文中,我们将介绍标准的OLAP存储模型,并讨论在为多维应用选择存储模型的时候所涉及的一些问题。

多维应用存储了三类信息:元数据,详细数据和聚合。元数据定义了多维结构,包括使用了什么样的事实和维度。详细数据包含用于分析的业务指标。而聚合则是详细数据的总结。元数据通常是存储在多维结构中的,但是详细数据和聚合的存储位置是由存储模型来定义的。

微软SQL Server分析服务(SSAS)对多维平台支持三类主要的物理存储模型:多维OLAP(MOLAP),关系型OLAP(ROLAP), 和混合OLAP(HOLAP)。在实践中,大多数SQL Server OLAP系统是由这三类存储模型的混合来实现的。但针对特定的存储模型时,需要考量多个因素,例如数据时延,查询速度,处理时间以及总大小。以下是每个OLAP存储模型的主要特性。

MOLAP,ROLAP和HOLAP

多维平台的默认存储模型是MOLAP。在此存储模型中,详细数据和聚合的副本是存储在一个多维结构中的。因此,它们不需要一个与底层关系数据存储的永久性连接。

MOLAP模型在多维结构中还使用压缩来存储数据。对于查询来说它是最快的模型,因为所有需要的数据实际是存储在多维结构中的,并且在多维结构进行处理的时候所有计算是预生成的。

多维结构中的数据只有在多维结构处理的时候才会刷新,所以时延会很高。这就意味着任何对关系数据存储的后期更改只有在其再处理的时候才会反映到多维结构中来。它在SQL Server OLAP服务器上还需要额外的存储,因为关系数据的备份是存储在OLAP服务器上的。

在ROLAP存储模型中,聚合是存储在源数据库中的索引视图或表中的。当一个维度使用ROLAP来存储时,如果源表模式变更,则此维度就必须马上进行处理。

在ROLAP模型下,如果数据不在缓存中,那么就可以从关系源数据库对数据进行直接访问。对于查询来说,ROLAP在三种存储模型当中是速度最慢的,处理时间也是最慢的,除非不存在聚合。

在HOLAP存储模型中,聚合是存储在一个多维结构中的,并且非缓存数据可以直接从关系数据源进行访问。当只有在访问简单聚合的时候,其所提供的查询性能才能与MOLAP相提并论。当需要详细数据的时候,其查询性能要弱于MOLAP和ROLAP,因为数据必须从关系数据源进行检索。

决策,决策,还是决策

SSAS中的主动缓存设置可以在高时延和低性能的问题上找到平衡点,通常前者是与MOLAP解决方案有关的,而后者则是与ROLAP解决方案相关联的。由于主动缓存可以在底层数据变更时大幅度智能化更新维度和度量,就使其变为可能。要获取更多信息,请参阅Proactive Caching (Partitions)。

维度可以使用ROLAP或MOLAP存储模型。措施群组和分区可以使用三类存储模型的任意一种。如前所述,MOLAP是维度和措施群组两者的默认存储模型。

以下表格对比了三类存储模型典型的时延,查询性能,处理性能和总体数据库大小特征。

此外,你还需要注意下列问题:

  • 主动缓存设置会影响每个存储模型的时延度。主动缓存在面向交易的系统中非常有用,而这些系统中的变更是不可预测的。同时主动缓存在要求实时访问数据时也有用武之地。此外,主动缓存可以配置为访问ROLAP数据,直到MOLAP缓存在达到最大时延时得以重建。但是,如果在一个MOLAP缓存正在重建时访问ROLAP数据,这样就会减缓在MOLAP上的性能。
  • 详细数据的原始大小和所创建聚合的数量会影响存储模型解决方案的总体大小。
  • 如果选中“不设计聚合”选项,则ROLAP存储的处理性能并不缓慢。
  • 如果选中“不设计聚合”选项,则当使用ROLAP时总体数据库的大小会较小。
  • 对于HOLAP来说,对聚合的简单查询是非常快的。而来自关系数据源的查询则较慢。

作者

Basit Farooq
Basit Farooq

资深数据库管理员、培训师和技术撰稿人,具有十多年微软SQL Server平台的开发、技术培训和数据库管理的经验。

翻译

Ranma
Ranma