通过流程更新处理维度

时间:2012-12-01 09:36:06

标签: ssis ssas dimension

使用流程更新处理维度时,我遇到错误

  

OLAP存储引擎中的错误:在维度的增量处理期间,不能更改属性之间的刚性关系。处理属性时发生错误。表:' dbo_VW_myView',列:'某些+列',值:' VTNS会员'。来源属性:。源属性的关键列值:' ABBOTT LABORATORIES'。

通过一些R& D,我能够弄清楚我无法在刚性关系中执行ProcessUpdate,并且将维度关系更改为灵活将极大地影响多维数据集性能。所以我的问题是,

是否可以按顺序处理维度来解决此问题?如果是,那么我如何动态地获得维度的顺序以进行处理。如果否,那么处理更新维度的另一种方法是什么。

我必须仅通过SSIS处理维度。

EDIT1

更确切地说,我正在执行以下步骤:

  1. 创建分区。
  2. 处理每个维度 - processAdd
  3. 处理分区 - ProcessFull
  4. 处理数据库 - ProcessDefault
  5. 和ProcessFull数据库,每周一次

    但是有了这个,我认为我不会在尺寸上获得更新的条目。我的场景是这样的,因为每个载荷尺寸/事实只会被更新或插入而不会被删除。

    那么,在这种情况下哪种处理对我有用(我可以在你的推荐上面包含或删除上述步骤)?可以在处理多维数据集分区之前处理默认维度可以帮助我。

    注意:如果没有Step2,当我这样做时,处理工作正常..但在那之后,当我完全处理数据库时,我收到错误操作失败并且没有列表以外的特定错误我创建的分区。 (令人惊讶的是,完整的数据库处理维度没有任何问题)

    EDIT2

    是否有其他方法可以执行流程更新维度?

2 个答案:

答案 0 :(得分:2)

不能通过以任何不同的顺序处理维度来解决此问题。错误是一维内部的。这是维度内部数据发生变化的症状,这在我所处理的所有(非约会)维度中都是不可避免的 - 甚至是一些日期维度。

您需要重新访问您的R& D并通过灵活的维度关系将您的多维数据集性能提升到可接受的水平。

答案 1 :(得分:2)

您需要完全处理维度以清除此错误 - 但是 - 如果我没记错的话,这通常会将相关的事实表保留为“未处理”。

Mike Honey是正确的,发生的事情是你告诉立方体某些东西不会改变,然后你就改变了它。例如,您说家庭地址对客户ID不严格的客户维度 - 第一次客户更改地址时您将无法处理更新维度。

让这些僵化/灵活的关系正确可能是一个真正的痛苦 - 你不会期望永远改变的事情(出生日期)做 - “我们为客户写下了错误的DOB”等等:(< / p>