Qual è il modo migliore per modellare un gerarchia incompleta in SSAS sia per ROLAP e MOLAP?
-
13-09-2019 - |
Domanda
Al momento sto cercando di modellare una gerarchia incompleta in SSAS e mi sono bloccato.
Per prima cosa, stavo cercando di modellare in questo modo:
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, , **
Se l'ultima riga in questo esempio ha avuto spazi vuoti per i livelli "mancanti".
Qui, ROLAP saputo interpretare la gerarchia va bene, ma la modalità MOLAP liquidazione mis-classificazione dei membri dalla tabella dei fatti, in modo che le aggregazioni erano fuori.
Poi, ho cambiato in questo sull'esempio dimensione SalesTerritory AdventureWorksDW che è stata una gerarchia incompleta:
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**
sto approfittando della HideIfOnlyChildAndSameNameAsParent per nascondere i membri.
Ora i numeri di MOLAP allineano, ma nella terra di ROLAP, sto avendo grandi rallentamenti perché il livello 1 della mia gerarchia ha circa 10000 membri -. SSAS va a pranzo su un'espansione
Quindi, ovviamente mi manca qualcosa, ma non ho visto molti esempi sul modo "giusto" di fare una gerarchia incompleta.
Grazie per eventuali risposte.
Soluzione
In generale, "gerarchia irregolare" è una traduzione immediata di "padre-figlio" per me. Che ci si vuole che vada in questo modo:
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 genererà questo padre / figlio per voi una volta si dice ciò che il ParentID
è. Piuttosto automagic. Inoltre, qui ho usato ItemID
come una chiave surrogata, e usato il ParentID
, che ha sottolineato che. Ci sono una lunga lista di motivi per utilizzare gli interi, ma per padre / figlio, che cosa si dovrebbe fare è utilizzare l'ID come colonna chiave, e quindi aggiungere ItemKey
come attributo / relazione a detti colonna chiave. È quindi possibile ordinare Item
(manca da questo schema) di Attribute Key
e selezionare ItemKey
. È inoltre possibile scegliere se mostrare o meno che la proprietà per l'utente.
SSAS, per default, presuppone che un null
o chiave padre autoreferenziale è un nodo radice. Io generalmente uso null
perché sono più facili per me vedere quando sto scorrendo i record. Ma, questa è una cosa preferenza.