【问题标题】:What is the best way to model a ragged hierarchy in SSAS for both ROLAP and MOLAP?在 SSAS 中为 ROLAP 和 MOLAP 建模参差不齐的层次结构的最佳方法是什么?
【发布时间】:2010-11-10 12:20:01
【问题描述】:

我目前正在尝试在 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 在扩展时出去吃午饭。

很明显我遗漏了一些东西,但我还没有看到很多关于“正确”方法来建立参差不齐的层次结构的例子。

感谢您的任何回答。

【问题讨论】:

    标签: sql-server ssas olap msas


    【解决方案1】:

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

    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
    

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

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

    【讨论】:

    • 谢谢 - 我很害怕 - 我试图不做父母孩子。
    • @Eli:为什么?父母/孩子是解决这个问题的绝妙方法。你害怕什么?
    猜你喜欢
    • 1970-01-01
    • 2014-11-03
    • 2014-07-19
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多