비정형 계층 구조

비정형 계층은 균일하지 않은 수준 수를 가진 사용자 정의 계층입니다. 높은 수준의 관리자에 부서 관리자 및 관리자가 아닌 사람이 직접 보고로 포함되는 조직 차트 또는 일부 도시에 Washington D.C., Vatican City 또는 New Delhi와 같이 상위 State 또는 Province가 없는 Country-Region-City로 구성된 지리적 계층을 일반적인 예로 들 수 있습니다.

차원의 대부분의 계층의 경우 각 수준 위에 동일한 수준의 다른 멤버와 동일한 수의 멤버가 있습니다. 비정형 계층은 최소 한 멤버의 논리적 부모가 해당 멤버 바로 위 수준에 있지 않다는 점에서 다릅니다. 이러한 경우 계층이 여러 드릴다운 경로에 대한 서로 다른 수준으로 이어집니다. 클라이언트 응용 프로그램에서 이로 인해 드릴다운 경로가 만들어지면서 불필요하게 복잡해질 수 있습니다.

클라이언트 응용 프로그램마다 응용 프로그램에서 비정형 계층을 잘 처리하는 정도가 다릅니다. 모델에 비정형 계층이 있는 경우 원하는 렌더링 동작을 가져오기 위한 약간의 추가 동작을 수행할 준비를 해야 합니다.

첫 번째 단계로 클라이언트 응용 프로그램에서 드릴다운 경로를 어떻게 처리하는지 확인합니다. 예를 들어 Excel에서는 누락된 값에 대해 부모 이름을 자리 표시자로 반복합니다. 이 동작을 직접 보려면 Adventure Works 다차원 모델에서 Sales Territory 차원을 사용하여 피벗 테이블을 만듭니다. Sales Territory 특성인 Group, Country 및 Region이 있는 피벗 테이블에서 지역 값이 없는 국가에서 자리 표시자를 가져오는 것을 확인할 수 있습니다. 이 경우 그 위의 부모(Country 이름)를 반복합니다. 이 동작은 Excel 내에서 고정된 MDX Compatibility=1 연결 문자열 속성에서 파생됩니다. 클라이언트에서 찾으려는 드릴다운 동작을 일반적으로 제공하지 않는 경우 이러한 동작 중 최소한의 일부를 변경하도록 모델에서 속성을 설정할 수 있습니다.

이 항목에는 다음과 같은 섹션이 포함되어 있습니다.

  • 비정형 계층에서 드릴다운 탐색을 수정하는 방법

  • 일반 계층 구조에서 멤버를 숨기도록 HideMemberIf 설정

  • 클라이언트 응용 프로그램에서 자리 표시자를 표현하는 방식을 결정하도록 MDX 호환성 설정

비정형 계층에서 드릴다운 탐색을 수정하는 방법

비정형 계층이 있으면 드릴다운 탐색에서 예상 값을 반환하지 않거나 사용하기 부적합한 것으로 인식하는 경우 문제가 됩니다. 비정형 계층으로 인해 발생하는 탐색 문제를 해결하려면 다음 옵션을 사용해 보십시오.

  • 일반 계층을 사용하지만 각 수준에 대해 HideMemberIf 속성을 설정하여 누락된 수준을 사용자에게 시각화할지 여부를 지정합니다. HideMemberIf를 설정하는 경우 연결 문자열에서 MDXCompatibility도 설정하여 기본 탐색 동작을 재정의해야 합니다. 이러한 속성 설정에 대한 지침은 이 항목에 설명되어 있습니다.

  • 수준 멤버를 명시적으로 관리하는 부모-자식 계층을 만듭니다. 이 기술에 대한 그림은 SSAS의 비정형 계층(블로그 포스트)을 참조하십시오. 온라인 설명서의 자세한 내용은 부모-자식 차원을 참조하십시오. 부모-자식 계층을 만드는 것에 대한 부정적인 효과는 차원별로 하나의 계층만 가질 수 있다는 점입니다. 일반적으로 중간 멤버에 대해 집계를 계산하는 경우 성능 저하가 발생합니다.

차원에 둘 이상의 비정형 계층이 포함되어 있는 경우 HideMemberIf를 설정하는 첫 번째 방법을 사용해야 합니다. 비정형 계층에 대한 실습 작업 경험이 있는 BI 개발자는 물리적 데이터 테이블에서 추가 변경을 지원하고 각 수준에 대해 별도의 테이블을 만드는 등에 대한 추가 작업을 수행할 수 있습니다. 이 기술에 대한 자세한 내용은 Martin Mason의 SSAS 재무 큐브-1a부–비정형 계층(블로그)을 참조하십시오.

일반 계층 구조에서 멤버를 숨기도록 HideMemberIf 설정

비정형 차원 테이블의 경우 논리적으로 누락된 멤버를 여러 방법으로 표시할 수 있습니다. 테이블 셀에는 Null 또는 빈 문자열을 포함할 수 있습니다. 또는 자리 표시자 역할을 하기 위해 부모와 같은 값을 포함할 수도 있습니다. 자리 표시자의 표현은 클라이언트 응용 프로그램에 대한 MDX Compatibility 연결 문자열 속성 및 HideMemberIf 속성에 의해 결정되는 자식 멤버의 자리 표시자 상태에 의해 결정됩니다.

비정형 계층의 표시를 지원하는 클라이언트 응용 프로그램의 경우 논리적으로 누락된 멤버를 숨기도록 이러한 속성을 사용할 수 있습니다.

  1. SSDT에서 차원을 두 번 클릭하여 차원 디자이너에서 차원을 엽니다. 계층 창에서 첫 번째 탭, 차원, 구조가 특성 계층을 나타냅니다.

  2. 계층 내의 멤버를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. HideMemberIf를 아래 설명된 값 중 하나로 설정합니다.

    HideMemberIf 설정

    설명

    Never

    수준 멤버를 숨기지 않습니다. 이 값은 기본값입니다.

    OnlyChildWithNoName

    부모의 유일한 자식이고 이름이 Null 또는 빈 문자열인 수준 멤버를 숨깁니다.

    OnlyChildWithParentName

    부모의 유일한 자식이고 이름이 부모와 동일한 수준 멤버를 숨깁니다.

    NoName

    이름이 비어 있는 수준 멤버를 숨깁니다.

    ParentName

    이름이 부모와 동일한 수준 멤버를 숨깁니다.

클라이언트 응용 프로그램에서 자리 표시자를 표현하는 방식을 결정하도록 MDX 호환성 설정

계층 수준에서 HideMemberIf를 설정한 후 클라이언트 응용 프로그램에서 전송된 연결 문자열에 MDX Compatibility 속성도 설정해야 합니다. MDX Compatibility 설정은 HideMemberIf 가 사용되는지 여부를 결정합니다.

MDX 호환성 설정

설명

사용법

1

자리 표시자 값을 표시합니다.

이 값은 Excel, SSDT 및 SSMS에서 사용되는 기본값입니다. 비정형 계층에서 빈 수준을 드릴다운할 때 서버에서 자리 표시자 값을 반환하도록 지시합니다. 자리 표시자 값을 클릭하면 자식(리프) 노드로 계속 드릴다운할 수 있습니다.

Excel은 Analysis Services에 연결하는 데 사용되는 연결 문자열을 소유하고 각 새 연결에 대해 MDX Compatibility을 항상 1로 설정합니다. 이 동작은 이전 버전과의 호환성을 유지됩니다.

2

자리 표시자 값(부모 수준의 null 값 또는 중복)을 숨기지만 관련 값을 가진 다른 수준 및 노드는 표시합니다.

MDX Compatibility=2는 일반적으로 비정형 계층의 개념으로 기본 설정으로 표시됩니다. Reporting Services 보고서 및 일부 타사 클라이언트 응용 프로그램에서는 이 설정을 유지할 수 있습니다.

참고 항목

개념

사용자 정의 계층 만들기

사용자 계층

부모-자식 차원

연결 문자열 속성(Analysis Services)