Qual é a melhor maneira de modelar uma hierarquia irregular em SSAS tanto para ROLAP e MOLAP?

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

  •  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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top