SSAS Dimensions Hierarchy 导致部署错误

Lum*_*mpy 5 ssas

我已经使用服务的凭据设置了到 Adventure Works DW 数据库的数据源连接。

我正在使用该DimDate表创建一个维度。为了简化事情,我只使用Calendar Quarter, Calendar Year, Day Number of Month, English Month Name, 和Date Key列。

这些属性中的每一个都已设置为 AttributeHierarchyVisible = False

我将其Calendar Year拖入Hierarchies后跟Calendar Quarter, English Month Name,Day Number of Month

我将属性关系设置为:

日期键 -> 月份的天数 -> 英文月份名称 -> 日历季度 -> 日历年

所有关系都设置为 rigid

当我尝试部署此设置时,出现以下错误:

错误 2 内部错误:操作未成功终止。0 0
错误 3 服务器:当前操作被取消,因为事务中的另一个操作失败。0 0

我也收到此警告:

警告 1 OLAP 存储引擎中的错误:处理时发现重复的属性键:表:'dbo_DimDate',列:'CalendarQuarter',值:'2'。该属性是“日历季度”。0 0

我无法弄清楚发生了什么,或者为什么会出错。我正在使用的这本书给了我上面列出的步骤,到目前为止,谷歌让我失望了(一件非常可怕的事情)。

你们可以提供任何帮助来帮助我弄清楚我做错了什么,将不胜感激。

小智 8

我觉得你是在通过抑制错误来治疗症状而不是原因。

我将属性关系设置为 Date Key -> Day Number Of Month -> English Month Name-> Calendar Quarter -> Calendar Year

如果该数据如下所示:

"16062000"--> 6 --> "六月" ---> "Q2" --> 2000

那么 Analysis Services 确实会遇到问题,至于Q2它会Q2提供 2000 和 2001 等。

您必须确保层次结构由唯一键组成,例如:

16062000--->062000-->Q12000--->2000

您可以Name为每个属性的属性使用不同的字段,但使用键作为键。哦,如果您按月份键排序,这将阻止按字母顺序对月份进行经典排序。


Ken*_*eth 7

这将导致您的维度出现问题。更重要的是,你的立方体会给出错误的答案。

忽略处理错误从来都不是一个好主意。这是一个很容易纠正的问题。您只需要正确设置您的关键属性。默认情况下,SSAS 将使用相同的列作为名称和键。

通常,应该以这种方式配置的唯一属性是真正的键(也有例外)。在所有记录中唯一的列。从你的帖子我猜这是DateKey

您的其余属性应该使用复合键。

要查看多维数据集的问题,请设置 AttributeHierarchyVisible = True并使用数据。SSAS 对您要做什么感到困惑。

ol penney 为您提供了正确答案。这也可能有帮助:处理时发现重复的属性键……由 Hilmar Buchta 编写。


Sco*_*her 0

我经常发现 SSAS 报告的错误表明维度中存在重复的键值。当我查看源数据时,没有找到重复项。虽然我无法阐明为什么在维度中会出现此错误,但我可以提供一个解决方案来绕过该错误并允许多维数据集完成部署和处理。

如果打开维度对象并查看属性,您将看到 ErrorConfiguration 部分。如果将其更改为“自定义”,则可以告诉 SSAS 在处理对象时遇到错误时要做什么。如果您想记录错误并允许处理继续,请使用“ReportAndContinue”作为 KeyDuplicate、KeyNotFound、NullKeyConvertedToUnknown、NullKeyNotAllowed 等属性的值 - 任何适合您的设计的值。我将 KeyErrorLimit 设置为 1,并将 KeyErrorLimitAction 设置为 StopLogging,这样您的日志文件就不会因相同或类似的错误而过载。

正如我所说,这并不能解决问题,但它确实允许立方体继续处理,有时,我发现,这就足够了。

  • 这是一个糟糕的建议。 (3认同)
  • 问题是他的层次结构级别无法通过他指定的键来唯一标识。当创建层次结构而不手动配置每个级别的复合键时,这种情况很常见。在大多数层次结构中,这是避免他所犯错误的必要步骤。我在下面提供的链接非常清楚地解释了为什么会发生这种情况,以及为什么它足够有意义,需要纠正。 (2认同)