Qual é a melhor maneira de modelar uma hierarquia irregular em SSAS tanto para ROLAP e MOLAP?
-
13-09-2019 - |
Pergunta
Atualmente estou tentando modelar uma hierarquia irregular em SSAS e eu estou preso.
Em primeiro lugar, eu estava tentando modelá-lo assim:
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, , **
Quando a última linha neste exemplo tinha espaços em branco para os "desaparecidos" níveis.
Aqui, ROLAP conseguiu interpretar a hierarquia bem, mas o modo MOLAP acabou mis-classificando membros da tabela de fatos, de modo que as agregações estavam fora.
A seguir, o texto foi alterado para isso com base na dimensão exemplo SalesTerritory AdventureWorksDW que era uma hierarquia 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**
Estou aproveitando a HideIfOnlyChildAndSameNameAsParent para esconder os membros.
Os números de agora MOLAP line up, mas em terra ROLAP, estou tendo grande lentidão porque o nível 1 da minha hierarquia tem cerca de 10000 membros -. SSAS sai para o almoço a uma expansão
Então, obviamente, eu estou faltando alguma coisa, mas eu não tenho visto muitos exemplos no caminho "certo" para fazer uma hierarquia irregular.
Obrigado por todas as respostas.
Solução
Geralmente, "hierarquia irregular" é uma tradução imediata para "pai-filho" para mim. Você gostaria que ele vá assim:
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 irá gerar este pai / filho para você uma vez que você diga a ele o que o ParentID
é. Em vez automagic. Além disso, aqui eu usei ItemID
como uma chave substituta, e usou o ParentID
que apontava para isso. Há uma longa lista de razões para inteiros de uso, mas para pai / filho, o que você deve fazer é usar o ID como a coluna de chave, e depois adicionar ItemKey
como um atributo / relação à referida coluna de chave. Você pode, então, Item
ordem (faltando a partir deste esquema) por Attribute Key
e selecione ItemKey
. Você também pode escolher se quer ou não mostrar que a propriedade para o usuário.
SSAS, por padrão, assume que um null
ou chave pai auto-referencial é um nó raiz. Eu geralmente uso null
porque são mais fáceis para mim ver quando eu estou percorrendo registros. Mas, esta é uma coisa de preferência.