¿Cuál es la mejor manera de modelar una jerarquía irregular en SSAS tanto para ROLAP y MOLAP?

StackOverflow https://stackoverflow.com/questions/1122979

  •  13-09-2019
  •  | 
  •  

Pregunta

Actualmente estoy tratando de modelar una jerarquía irregular en SSAS y estoy atascado.

En primer lugar, yo estaba tratando de modelar de esta manera:

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

Cuando la última línea en este ejemplo tenía espacios en blanco para los niveles "faltantes".

A continuación, ROLAP logró interpretar la jerarquía bien, pero el modo MOLAP terminó mis-clasificación de los miembros de la tabla de hechos, por lo que las agregaciones estaban apagadas.

A continuación, cambió a esta basado en el ejemplo dimensión SalesTerritory AdventureWorksDW que era una jerarquía irregular:

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

Estoy aprovechando la HideIfOnlyChildAndSameNameAsParent para ocultar los miembros.

Ahora los números de MOLAP se alinean, pero en ROLAP tierra, Estoy teniendo una ralentización significativa porque el nivel 1 de mi jerarquía tiene unos 10.000 miembros -. SSAS va a comer en una expansión

Así que, obviamente me falta algo, pero no he visto muchos ejemplos sobre la forma "correcta" de hacer una jerarquía irregular.

Gracias por todas las respuestas.

¿Fue útil?

Solución

En general, "jerarquía irregular" es una traducción inmediata al "padre-hijo" para mí. Lo que quiere que se vaya de esta manera:

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 generará este Padre / Hijo para que una vez que usted le indique lo que el ParentID es. Más bien automagic. Además, aquí utilicé ItemID como una clave sustituta, y utilizamos el ParentID que apuntaba a eso. Hay una larga lista de razones para utilizar números enteros, pero para el padre / hijo, lo que debe hacer es usar el ID que la columna de clave y, a continuación, añadir ItemKey como un atributo / relación a dicha columna de clave. A continuación, puede Item fin (que falta en este esquema) por Attribute Key y seleccione ItemKey. También puede elegir si desea o no mostrar que la propiedad al usuario.

SSAS, por defecto, se asume que un null o clave principal autorreferencial es un nodo raíz. Yo generalmente uso null porque son más fáciles para mí ver cuando estoy desplazamiento a través de los registros. Sin embargo, esto es una cosa preferencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top