2009-07-14 4 views
2

현재 SSAS에서 비정형 계층을 모델링하려고하고 있는데 막혔습니다.ROLAP 및 MOLAP 모두 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 치수에 따라이 그것을 변경 : 나는 멤버를 숨길 수있는 HideIfOnlyChildAndSameNameAsParent을 활용하고있어

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

.

MOLAP의 번호는 줄서 있지만 ROLAP의 토지에서는 계층 구조의 수준 1에 약 10000 명의 회원이 있기 때문에 큰 어려움을 겪고 있습니다. SSAS는 확장을 위해 점심을 먹습니다.

분명히 나는 ​​뭔가를 놓치고 있지만, 난처한 계층 구조를 수행하는 "올바른"방법에 대한 많은 예를 보지 못했습니다.

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

답변

3

일반적으로 "비정형 계층"은 나를 "부모 - 자식"으로 즉시 변환합니다. 당신은과 같이 가고 싶은 것 : 당신이 ParentID이 무엇인지를 말해 일단

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 당신이 부모/자식을 생성합니다. 오히려 자동화. 또한 여기에서는 대리 키로 ItemID을 사용했으며이를 가리키는 ParentID을 사용했습니다. 정수를 사용하는 이유는 많이 있지만, 부모/자식에게는 키 열로 ID를 사용하고 키 열에 특성/관계로 ItemKey을 추가해야합니다. Item (이 스키마에서 누락)을 Attribute Key으로 주문하고 ItemKey을 선택할 수 있습니다. 해당 속성을 사용자에게 표시할지 여부를 선택할 수도 있습니다.

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

+0

감사합니다 - 나는 두려웠습니다. 나는 부모 자식을하지 않으려 고했습니다. – Eli

+1

@ 엘리 : 왜? 학부모/자녀는이 문제에 대한 환상적인 해결책입니다. 너 무서운거야? – Eric