我正在尝试在我的Cube中为相关分区调整Slicers的设计概念。这是我通常避免使用的一种做法,因为我熟悉Auto-Slice概念,其中创建切片器被视为选项而不是正确的设计。
然而,这一个错误正在变成一个完全的烦恼,我正在考虑回去避免使用,如果没有人能够为臭名昭着的人提供合理的解决方案,“在当前的背景下不允许任意形状的集合”错误。
尝试使用我的日历日期层次结构的切片器处理我的多维数据集时,我收到此错误。以下是其中一个分区切片器的示例:
{[Calendar Dates].[Calendar Dates].[Calendar Year].&[2007].&[QUARTER NUMBER 2].&[APRIL].&[2007-04-01T00:00:00]
,[Calendar Dates].[Calendar Dates].[Calendar Year].&[2007].&[QUARTER NUMBER 2].&[APRIL].&[2007-04-02T00:00:00]
,[Calendar Dates].[Calendar Dates].[Calendar Year].&[2007].&[QUARTER NUMBER 2].&[APRIL].&[2007-04-03T00:00:00]
,[Calendar Dates].[Calendar Dates].[Calendar Year].&[2007].&[QUARTER NUMBER 2].&[APRIL].&[2007-04-04T00:00:00]
,[Calendar Dates].[Calendar Dates].[Calendar Year].&[2007].&[QUARTER NUMBER 2].&[APRIL].&[2007-04-05T00:00:00]
,[Calendar Dates].[Calendar Dates].[Calendar Year].&[2007].&[QUARTER NUMBER 2].&[APRIL].&[2007-04-06T00:00:00]
,[Calendar Dates].[Calendar Dates].[Calendar Year].&[2007].&[QUARTER NUMBER 2].&[APRIL].&[2007-04-07T00:00:00]}
我的第一个问题是我必须手动指定集合的每个成员,因为禁止使用range(:)运算符。我维护的Cube的大小是巨大的,只需创建所需的分区数量本身就是一项极端的任务,因此不使用范围运算符只是一个糟糕的限制恕我直言。我看到MSConnect上有一个请求来纠正这个设计问题,但我注意到的最后一个响应是SQL2008 R2为时已晚。虽然没有提及后来发布的意图。
通过我的抱怨会议,我无法看到我定义的集合创建任意形状的位置或原因。此外,看一下关于什么构成任意形状集的例子,我看不出任何相关性来暗示我的集合属于该类别。
我需要做些什么来规避问题并避免恼人的错误?
非常欢迎任何建议或建议。
答案 0 :(得分:0)
想出来了。
在所有示例中,我都回顾了可能导致此错误的原因,尝试在分区上定义一个切片,该切片需要跨越不同维度的交叉连接导致错误,“不允许任意形状的集合目前的背景“。
虽然我定义的集合不使用跨不同维度的显式交叉联接,但集合的元素是用户定义的层次结构的乘积,因此生成切片需要隐式交叉连接。
为了减轻隐式交叉连接,我重新创建了我的集合的成员,使其处于基本属性级别并且瞧!
所以修改后的集合现在是:
{[Calendar Dates].[Dates].&[2007-04-01T00:00:00]
,[Calendar Dates].[Dates].&[2007-04-02T00:00:00]
,[Calendar Dates].[Dates].&[2007-04-03T00:00:00]
,[Calendar Dates].[Dates].&[2007-04-04T00:00:00]
,[Calendar Dates].[Dates].&[2007-04-05T00:00:00]
,[Calendar Dates].[Dates].&[2007-04-06T00:00:00]
,[Calendar Dates].[Dates].&[2007-04-07T00:00:00]}
错误已解决。