2

我目前正在尝试在 SSAS 中为参差不齐的层次结构建模,但我被卡住了。

首先,我试图这样建模:

ItemKey,Level0Key,Level1Key,Level2Key
Item1,Lvl0-1,Lvl1-1,Lvl2-1
Item2,Lvl0-1,Lvl1-1,Lvl2-1
Item3,Lvl0-1,Lvl1-1,Lvl2-2
**Item4,Lvl0-1, , ** 

此示例中的最后一行包含“缺失”级别的空白。

在这里,ROLAP 成功地解释了层次结构,但是 MOLAP 模式从事实表中错误分类成员,因此聚合关闭。

接下来,我根据 AdventureWorksDW 示例 SalesTerritory 维度将其更改为该维度,该维度是一个参差不齐的层次结构:

ItemKey,Level0Key,Level1Key,Level2Key
Item1,Lvl0-1,Lvl1-1,Lvl2-1
Item2,Lvl0-1,Lvl1-1,Lvl2-1
Item3,Lvl0-1,Lvl1-1,Lvl2-2
**Item4,Lvl0-1,Item4,Item4** 

我正在利用 HideIfOnlyChildAndSameNameAsParent 来隐藏成员。

现在 MOLAP 的人数排成一列,但在 ROLAP 领域,我的速度大幅放缓,因为我的层次结构的第 1 级有大约 10000 名成员 - SSAS 出去吃午饭以进行扩展。

所以很明显我错过了一些东西,但我还没有看到很多关于“正确”方法来做一个参差不齐的层次结构的例子。

感谢您的任何回答。

4

1 回答 1

3

一般来说,“衣衫褴褛的层次结构”对我来说是“父子”的直接翻译。你希望它像这样:

ItemID    ItemKey    ParentID
1         Lvl0-1     null
2         Lvl1-1     1
3         Lvl2-1     2
4         Lvl2-2     2
5         Item1      3
6         Item2      3
7         Item3      4
8         Item4      1

一旦你告诉它是什么,SSAS 就会为你生成这个父/子ParentID。比较自动。另外,在这里我用作ItemID代理键,并使用ParentID指向那个的。使用整数的原因有很多,但对于父/子,您应该使用 ID 作为键列,然后将ItemKey其作为属性/关系添加到所述键列。然后,您可以通过和 select订购Item(此架构中缺少)。您还可以选择是否向用户显示该属性。Attribute KeyItemKey

默认情况下,SSAS 假定null自引用父键是根节点。我通常使用null它们,因为当我滚动浏览记录时,它们更容易让我看到。但是,这是一个偏好的事情。

于 2009-07-20T04:47:17.343 回答