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属性/関係として追加する必要があります。Item次に、 (このスキーマから欠落している) を注文してAttribute Key、 を選択できますItemKey。そのプロパティをユーザーに表示するかどうかを選択することもできます。

nullSSAS は、既定で、または自己参照の親キーがルート ノードであると想定します。nullレコードをスクロールしているときに見やすいので、私は一般的に使用します。しかし、これは好みの問題です。

于 2009-07-20T04:47:17.343 に答える