J'essaie actuellement de modéliser une hiérarchie déchirée dans SSAS et je suis coincé.
D'abord, j'essayais de le modéliser comme ça:
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, , **
Où la dernière ligne dans cet exemple avait des espaces pour les niveaux "manquants".
Ici, ROLAP a réussi à interpréter correctement la hiérarchie, mais le mode MOLAP a fini par mal classr les membres de la table de faits, de sorte que les agrégations étaient désactivées.
Ensuite, je l'ai modifié en fonction de la dimension SalesTerritory de l'exemple AdventureWorksDW, qui était une hiérarchie irrégulière:
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 numbers du MOLAP s'alignent, mais dans le pays ROLAP, j'ai des ralentissements majeurs parce que le niveau 1 de ma hiérarchie count environ 10000 membres – SSAS va déjeuner sur une expansion.
Alors, é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 déchirée.
Merci pour vos réponses
Généralement, la «hiérarchie déchirée» est une traduction immédiate de «parent-enfant» pour moi. Vous voudriez que ça aille comme ça:
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 génèrera ce Parent / Enfant pour vous une fois que vous lui aurez dit ce qu'est le ParentID
. Plutôt automagique. En outre, ici j'ai utilisé ItemID
comme une key de substitution, et utilisé l' ParentID
qui pointait vers cela. Il existe une longue list de raisons d'utiliser des entiers, mais pour Parent / Child, vous devez utiliser l'ID comme colonne Key, puis append ItemKey
comme atsortingbut / relation avec la colonne key. Vous pouvez ensuite order l' Item
(absent de ce schéma) par Atsortingbute Key
et sélectionner ItemKey
. Vous pouvez également choisir d'afficher ou non cette propriété à l'user.
SSAS, par défaut, suppose qu'une key parent null
ou auto-référentielle est un nœud racine. J'utilise généralement null
parce qu'il m'est plus facile de voir quand je parcours des loggings. Mais, c'est une chose de preference.