我已经使用服务的凭据设置了与 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
我无法弄清楚发生了什么,或者为什么会出错。我正在使用的这本书给了我上面列出的步骤,到目前为止,谷歌让我失望了(一件非常可怕的事情)。
你们可以提供任何帮助来帮助我弄清楚我做错了什么,我们将不胜感激。
我觉得你通过抑制错误来治疗症状而不是原因。
如果该数据如下所示:
那么分析服务确实会遇到麻烦,至于
Q2
它将有一个Q2
喂食 2000 和 2001 等。您必须确保层次结构由唯一键组成,例如:
您可以
Name
为每个属性的属性使用不同的字段,但使用键作为键。哦,如果您按月份排序,这将阻止按字母顺序对月份进行经典排序。这将导致您的维度出现问题。更重要的是,你的立方体会给出错误的答案。
忽略处理错误绝不是一个好主意。这是一个很容易纠正的问题。您只需要正确设置您的关键属性。默认情况下,SSAS 将使用同一列作为名称和键。
通常,应该以这种方式配置的唯一属性是真键(也有例外)。在所有记录中唯一的列。从你的帖子我猜这是
DateKey
。您的其余属性应该使用复合键。
要查看多维数据集的问题,请设置
AttributeHierarchyVisible = True
并使用数据。SSAS 对您要做什么感到困惑。ol penney 为您提供了正确答案。这也可能有所帮助:处理时发现了重复的属性键……作者:Hilmar Buchta。
我经常发现 SSAS 报告的错误表明维度中存在重复的键值。当我查看源数据时,没有找到重复项。虽然我无法解释为什么维度中会出现此错误,但我可以提供一个解决方案来绕过该错误并允许多维数据集完成部署和处理。
如果您打开维度对象并查看属性,您将看到 ErrorConfiguration 部分。如果将此更改为“自定义”,则可以告诉 SSAS 在处理对象时遇到错误时该怎么做。如果您想记录错误并允许继续处理,请使用“ReportAndContinue”作为 KeyDuplicate、KeyNotFound、NullKeyConvertedToUnknown、NullKeyNotAllowed 等属性的值 - 任何适合您的设计的值。我将 KeyErrorLimit 设置为 1 并将 KeyErrorLimitAction 设置为 StopLogging,这样您的日志文件就不会因相同或类似的错误而过载。
正如我所说,这并不能解决问题,但它确实允许多维数据集继续处理,有时,我发现,这就足够了。
如果出现重复键并按照 Ol Penny 的建议进行操作:
在属性选项卡中,通过选择日历季度列并按 f4,我们得到它的属性窗口。转到 keyColumns 属性并添加日历年和日历季度。当我们这样做时,我们会在日历季度属性处收到错误,因为我们在 keyColumns 中提供了多个列。现在转到 NameColumn 属性并将其从无更改为日历季度。所以错误将得到解决。