2009-07-14 6 views
2

J'essaie actuellement de modéliser une hiérarchie irrégulière dans SSAS et je suis bloqué.Quelle est la meilleure façon de modéliser une hiérarchie irrégulière dans SSAS pour ROLAP et MOLAP?

D'abord, je tentais de ce modèle comme ceci:

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, , ** 

Lorsque la dernière ligne dans cet exemple avait des blancs pour les niveaux « manquants ».

Ici, ROLAP a réussi à interpréter correctement la hiérarchie, mais le mode MOLAP a entraîné une mauvaise classification des membres de la table de faits, de sorte que les agrégations étaient désactivées.

Ensuite, je l'ai changé à cette fonction de la dimension SalesTerritory exemple AdventureWorksDW qui était une hiérarchie haillons:

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** 

Je profite du HideIfOnlyChildAndSameNameAsParent pour cacher les membres.

Maintenant, les numéros de MOLAP s'alignent, mais dans ROLAP, j'ai des ralentissements majeurs car le niveau 1 de ma hiérarchie compte environ 10000 membres - SSAS va déjeuner sur une extension. Donc, évidemment, il me manque quelque chose, mais je n'ai pas vu beaucoup d'exemples sur la «bonne» façon de faire une hiérarchie en lambeaux.

Merci pour toute réponse.

Répondre

3

Généralement, "hiérarchie déchirée" est une traduction immédiate de "parent-enfant" pour moi. Vous voudriez qu'il aille comme ceci:

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 va générer ce parent/enfant pour vous une fois que vous lui dites ce que le ParentID est. Plutôt automagique. Aussi, ici, j'ai utilisé ItemID comme une clé de substitution, et utilisé le ParentID qui a souligné cela. Il existe une longue liste de raisons d'utiliser des entiers, mais pour Parent/Child, vous devez utiliser l'ID comme colonne Key, puis ajouter ItemKey comme attribut/relation avec la colonne key. Vous pouvez ensuite commander Item (absent de ce schéma) par Attribute Key et sélectionner ItemKey. Vous pouvez également choisir d'afficher ou non cette propriété à l'utilisateur. Par défaut, SSAS suppose qu'une clé parent null ou autoréférentielle est un nœud racine. J'utilise généralement null car ils sont plus faciles à voir lorsque je parcours des enregistrements. Mais, c'est une chose de préférence.

+0

Merci - j'avais peur de cela - j'essayais de ne pas faire de parent enfant. – Eli

+1

@Eli: Pourquoi? Parent/Enfant est une solution fantastique au problème. De quoi étiez-vous afriad? – Eric

Questions connexes