2

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

OLAP存储引擎的错误:在维度的增量处理过程中不能改变属性之间的刚性关系。处理属性时发生错误。表:'dbo_VW_myView',列:'Some+Column',值:'VTNS Affiliate'。来源属性: 。源属性的键列值:“ABBOTT LABORATORIES”。

通过一些研发,我能够弄清楚我不能在刚性关系中进行 ProcessUpdate 并且通过将维度关系更改为柔性将深刻影响多维数据集的性能。所以我的问题是,

这个问题可以通过按顺序处理维度来解决吗?如果是,那么我怎样才能动态地处理维度的顺序。如果否,处理更新尺寸的另一种方法可能是什么。

我只能通过 SSIS 处理维度。

编辑1

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

  1. 创建分区。
  2. 处理每个维度 - processAdd
  3. 处理分区 - ProcessFull
  4. 处理数据库 - ProcessDefault

并 ProcessFull 数据库,每周一次

但是有了这个,我认为我不会得到更新的维度条目。我的场景是这样的,对于每个负载尺寸/事实,只会更新或插入,不会删除。

那么,在这种情况下,哪种处理对我有用(我可以在您的建议中包含或排除上述步骤)?在处理多维数据集分区之前可以 ProcessDefault 维度可以帮助我。

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

编辑2

有没有其他方法来处理更新维度?

4

2 回答 2

2

不,您无法通过以任何不同的顺序处理维度来纠正此问题。误差是一维内部的。这是维度内部数据变化的症状,这在我研究过的所有(非日期)维度中是不可避免的——甚至是某些日期维度。

您需要重新审视您的研发,并通过灵活的维度关系将您的多维数据集性能提高到可接受的水平。

于 2012-12-03T06:55:37.160 回答
2

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

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

使这些刚性/灵活的关系正确可能是一个真正的痛苦 - 你不会期望改变的事情(出生日期) - “我们为客户写下了错误的出生日期”等等...... :(

于 2012-12-03T12:30:28.187 回答