ROLAP模式是否需要处理?

时间:2012-12-14 08:26:27

标签: ssas data-warehouse

我理解ROLAP,MOLAP,HOLAP的差异我认为但这是否意味着ROLAP永远不需要进行处理,因为您总是直接从数据库获取数据?

1 个答案:

答案 0 :(得分:0)

在MOLAP中,您将聚合存储在Analysis Services的数据目录中。使用ROLAP,您可以将聚合存储在关系数据库的索引视图中。 ROLAP会给你一个比MOLAP更慢的实时方法,但是对于你需要偶尔看一下的历史事物来说是好的。

来自MSDN:

  

如果分区使用ROLAP存储模式且其源数据存储在SQL Server数据库引擎中,则Analysis Services会尝试创建索引视图以包含该分区的聚合。如果Analysis Services无法创建索引视图,则不会创建聚合表。虽然Analysis Services处理在SQL Server数据库引擎上创建索引视图的会话要求,但ROLAP分区及其架构中的表必须满足以下条件,以便Analysis Services为聚合创建索引视图:

  • 分区不能包含使用最小或最大聚合函数的度量。

  • ROLAP分区架构中的每个表只能使用一次。例如,架构不能包含[dbo]。[address] AS“Customer Address”和[dbo]。[address] AS“SalesRep Address”。

  • 每个表必须是一个表,而不是一个视图。

  • 分区架构中的所有表名必须使用所有者名称限定,例如[dbo]。[customer]。

  • 分区架构中的所有表必须具有相同的所有者;例如,你不能有一个FROM子句引用表[tk]。[customer],[john]。[store]和[dave]。[sales_fact_2004]。

  • 分区度量的源列不能为空。

  • 视图中使用的所有表必须已创建,且以下选项设置为ON:

    • ANSI_NULLS
    • QUOTED_IDENTIFIER

    • -
  • SQL Server数据库引擎中索引键的总大小不能超过900个字节。在处理CREATE INDEX语句时,SQL Server数据库引擎将根据固定长度键列声明此条件。但是,如果索引键中存在可变长度列,则SQL Server数据库引擎也会在每次更新基表时声明此条件。由于不同的聚合具有不同的视图定义,因此使用索引视图的ROLAP处理可能会成功或失败,具体取决于聚合设计。

  • 创建索引视图的会话必须将以下选项设置为ON:ARITHABORT,CONCAT_NULL_YEILDS_NULL,QUOTED_IDENTIFIER,ANSI_NULLS,ANSI_PADDING和ANSI_WARNING。可以在SQL Server Management Studio中进行此设置。

  • 创建索引视图的会话必须将以下选项设置为OFF:NUMERIC_ROUNDABORT。可以在SQL Server Management Studio中进行此设置。

Read the whole thing here.