ROLAP 및 MOLAP 모두에 대해 SSAS의 비정형 계층 구조를 모델링하는 가장 좋은 방법은 무엇입니까?

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

  •  13-09-2019
  •  | 
  •  

문제

현재 SSAS에서 비정형 계층 구조를 모델링하려고 하는데 막혔습니다.

먼저 다음과 같이 모델링하려고 했습니다.

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

이 예의 마지막 줄에는 "누락" 수준에 대한 공백이 있습니다.

여기서 ROLAP는 계층 구조를 제대로 해석했지만 MOLAP 모드에서는 팩트 테이블의 멤버를 잘못 분류하여 집계가 해제되었습니다.

다음으로, 비정형 계층 구조인 AdventureWorksDW 예제 SalesTerritory 차원을 기반으로 이를 다음과 같이 변경했습니다.

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

HideIfOnlyChildAndSameNameAsParent를 활용하여 멤버를 숨깁니다.

이제 MOLAP의 숫자는 일치하지만 ROLAP 영역에서는 내 계층 구조의 수준 1에 약 10000명의 구성원이 있기 때문에 큰 속도 저하를 겪고 있습니다. SSAS는 확장을 위해 점심을 먹으러 나갑니다.

분명히 뭔가 빠졌지만 비정형 계층 구조를 수행하는 "올바른" 방법에 대한 많은 예를 본 적이 없습니다.

답변해 주셔서 감사합니다.

도움이 되었습니까?

해결책

일반적으로 "비정형 계층"은 "부모-자식"으로 즉시 번역됩니다.당신은 다음과 같이 되기를 원할 것입니다:

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는 사용자가 무엇을 지정하면 이 상위/하위 항목을 생성합니다. ParentID 이다.오히려 자동적입니다.또한 여기에서 나는 ItemID 대리 키로 사용되었으며 ParentID 그것을 지적한 것입니다.정수를 사용하는 이유는 많지만 부모/자식의 경우 ID를 키 열로 사용한 다음 추가해야 합니다. ItemKey 해당 키 열에 대한 속성/관계로.그다음 주문하시면 됩니다 Item (이 스키마에서 누락됨) Attribute Key 그리고 선택 ItemKey.해당 속성을 사용자에게 표시할지 여부를 선택할 수도 있습니다.

SSAS는 기본적으로 다음을 가정합니다. null 또는 자체 참조 상위 키가 루트 노드입니다.나는 일반적으로 사용 null 기록을 스크롤할 때 더 쉽게 볼 수 있기 때문입니다.그러나 이것은 선호 사항입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top