Sql server 2012 海量数据的SSAS多维数据集分区与处理

Sql server 2012 海量数据的SSAS多维数据集分区与处理,sql-server-2012,ssas,partitioning,olap-cube,Sql Server 2012,Ssas,Partitioning,Olap Cube,我有一个具有刚性关系的SSAS立方体。我每天只从来源获得过去两个月的数据。我的多维数据集从2010年起就有数据。 我计划对该多维数据集进行分区,然后对其进行处理。我的问题是 我知道,在僵化的关系中,我必须全力以赴。这是否意味着我必须将所有分区作为进程已满进行处理,或者我可以继续使用所选分区作为进程已满进行处理 如何设计分区策略?如果我做了2个月的分区,那么我将每年在6个分区中结束,之后它们可能会增加。我想用6个月的时间。但如果我在第7个月或第1个月,那么我必须处理两个分区(即当前+最后6个月)。

我有一个具有刚性关系的SSAS立方体。我每天只从来源获得过去两个月的数据。我的多维数据集从2010年起就有数据。 我计划对该多维数据集进行分区,然后对其进行处理。我的问题是

  • 我知道,在僵化的关系中,我必须全力以赴。这是否意味着我必须将所有分区作为进程已满进行处理,或者我可以继续使用所选分区作为进程已满进行处理
  • 如何设计分区策略?如果我做了2个月的分区,那么我将每年在6个分区中结束,之后它们可能会增加。我想用6个月的时间。但如果我在第7个月或第1个月,那么我必须处理两个分区(即当前+最后6个月)。够好吗

  • 当属性关系实际发生变化时,将属性关系标记为刚性(这意味着当汇总发生变化时,例如产品A汇总为谷类和燕麦类),这是一个坏主意。只要将它们标记为灵活的关系即可。刚性与柔性不影响查询性能,只影响处理性能。如果刚性导致您在维度上执行ProcessFull,这意味着您必须重新处理所有度量值组分区。因此,将关系更改为Flexible,除非您100%确定不会在ETL中的维度表上运行UPDATE语句

    我会按月分区。然后你可以每天处理最近的两个月。更明确地说:

  • 进程更新您的维度
  • ProcessData最近两个月的分区
  • 多维数据集上的ProcessIndexes(在旧分区上重建索引和灵活的AGG)

  • 谢谢你的回答。不幸的是,我们有许多关系,这些关系根据业务被认为是僵化的,我们现在无法改变这一点(例如:人口统计、日期、业务流程等)。然而,我必须继续这样做,这是否意味着即使我有度量组分区,我也必须使用ProcessFull数据库?您提到的步骤与刚性关系有关,或者与柔性有关?刚性只是一种优化。我不会每次都试图用那个财产强制执行商业规则。让业务部门告诉您,人口统计数据“应该”永远不会改变,但是您可以根据ETL中实际发生的情况来验证它。如果确实发生了变化,那么不要让业务主宰技术。向他们解释它确实发生了变化,下面是一个例子。将关系改为Flexible。在实践中,我看到刚性仅用于硬编码的日期维度。使用灵活的ProcessUpdate。不要使用刚性和ProcessFull,因为这会使优化的目的完全无效。请明确,您可以对具有刚性关系的维度执行ProcessUpdate。如果关系背后的数据没有改变,它将成功。如果它失败了,那么数据就改变了,关系不应该被标记为僵硬。完美,这对我来说是有意义的+1详细说明