반응형

넌리프 수준의 데이터 멤버

 

안녕하세요 강성욱 입니다. (www.sqltag.org, www.sqler.com, http://blog.naver.com/jevida)

이번 시간에는 넌리프 수준의 멤버들을 적재해 보도록 하겠습니다.

일반 차원에서는 팩트 테이블로부터 데이터를 읽어와 리프 수준의 멤버들에 적재합니다. 그리고 넌리프 수준 멤버들의 데이터는 하위 수준의 멤버들로부터 집계 과정을 통해 계산됩니다. 즉 팩트 데이터를 넌리프 수준의 멤버들로 직접 적재하지 못합니다. 그러나 앞에서 생성한 Employee 차원의 경우 넌리프 수준의 사원 멤버들로 개인별로 실적 데이터를 부모-자식 차원의 MemberWithData 속성을 이용하여 이러한 요구를 쉽게 해결 할 수 있습니다.

 

모든 강좌의 실습은 순서대로 진행 됩니다. 반드시 앞의 강좌를 따라하시길 바랍니다.

 

[솔루션 탐색기]에서 Employee.Dim을 디자이너보기 또는 더블 클릭합니다.

 

 

특성 창의 Employee 특성을 선택한 후 MemberWithData 속성이 NonLeafDataVisible로 설정된 것을 확인하고 MemberWithDatacaption을 (*)로 설정 합니다.

 

프로젝트 배포후 브라이저 탭을 클릭 합니다. Employee 계층 구조를 보면, (Bradley), (Duffy)등과 같이 ()로 둘러쌓인 멤버들이 보입니다. 이 멤버들은 넌리프 멤버가 직접 데이터를 입력받지 못하기 때문에 데이터를 받아들일 수 있는 데이터 멤버를 생성해서 자식 멤버로 보이도록 처리한 것입니다. 데이터 멤버의 이름은 MembersWithDataCaption에서설정한 대로 보입니다. 참고로 MemberWithDataCaption 설정에서 * 은 부모 멤버의 이름으로 대체 됩니다.

 

 

솔루션 탐색기에서 [Adventure Works.cube]를 더블클릭 또는 [디자이너 보기]를 선택 합니다.

 

큐브 구조 탭의 차원 창에서 오른쪽 클릭 후 큐브 차원 추가를 클릭합니다,.

 

 

[큐브 차원 추가] 창에서 Employee를 선택합니다.

 

 

새로운 큐브 차원으로 Employee 차원이 보입니다. 그리고 프로젝트를 배포 합니다.

 

 

브라우저 탭을 보면 부모와 자식의 합계를 확인 할 수 있습니다.

 

앞의 예제를 보면 Sanchez의 경우 최상위 멤버로서 더 이상 부모 멤버가 의미 없습니다. 따라서 최상위 수준으로 All 수준을 관리할 필요가 없습니다. 또한 차원의 수준명이 Level02, Level03이런식으로 나타는데 사용자에게 의미있는 이름을 보여줄 필요가 있습니다.

 

특성창에서 Employee 특성을 선택한 후 속성창에서 IsAggregatable 속성을 false로 설정합니다, 이 설정은 All 수준을 제거하는 효과를 가집니다.

 

 

 

속성창에서 [NamingTemplate]를 선택 합니다. 수준명명 템플릿 창에서 다음과 같이 입력합니다,

 

 

프로젝트를 배포하고 브라우저탭으로 이동하여 다시 연결을 클릭 합니다. 이전 화면과 달리 All멤버에 해당하는 총 합계 부분이 사라집니다.

 

차원을 펼침에 따라 나타나는 수준명이 사용자들에게 CEO, 임원, 중간관리자, 실무자 등과 같이 의미있는 이름으로 나타남을 확인할 수 있습니다.

 

 

반응형

+ Recent posts