3단원에서는 이름 또는 키 값에 따라 특성 멤버를 정렬하는 방법을 알아보았습니다. 복합 멤버 키를 사용하여 특성 멤버에 영향을 미치고 순서를 정렬하는 방법도 알아보았습니다. 자세한 내용은 날짜 차원 수정을 참조하세요. 그러나 특성의 이름이나 키가 원하는 정렬 순서를 제공하지 않는 경우 보조 특성을 사용하여 원하는 정렬 순서를 달성할 수 있습니다. 특성 간의 관계를 정의하여 두 번째 특성을 사용하여 첫 번째 특성의 멤버를 정렬할 수 있습니다.
특성 관계는 특성 간의 관계 또는 종속성을 정의합니다. 단일 관계형 테이블을 기반으로 하는 차원에서 모든 특성은 일반적으로 키 특성을 통해 서로 관련됩니다. 차원의 모든 특성은 각 관련 측정값 그룹에 대한 팩트 테이블의 팩트에서 차원의 키 특성으로 연결된 멤버에 대한 정보를 제공하기 때문입니다. 여러 테이블을 기반으로 하는 차원에서 특성은 일반적으로 테이블 간의 조인 키를 기반으로 연결됩니다. 기본 데이터가 지원하는 경우 관련 특성을 사용하여 정렬 순서를 지정할 수 있습니다. 예를 들어 관련 특성에 대한 정렬 논리를 제공하는 새 특성을 만들 수 있습니다.
차원 디자이너를 사용하면 특성 간의 추가 관계를 정의하거나 기본 관계를 변경하여 성능을 높일 수 있습니다. 특성 관계를 만들 때 주요 제약 조건은 참조된 특성에 관련된 특성의 멤버에 대해 둘 이상의 값이 없는지 확인하는 것입니다. 두 특성 간의 관계를 정의할 때 멤버 간의 관계가 시간이 지남에 따라 변경될지 여부에 따라 관계를 경직되거나 유연하게 정의할 수 있습니다. 예를 들어 직원이 다른 판매 지역으로 이동할 수 있지만 도시는 다른 상태로 이동하지 않습니다. 관계가 경직된 것으로 정의되면 차원이 증분 처리될 때마다 특성 집계가 다시 계산되지 않습니다. 그러나 멤버 간의 관계가 변경되면 차원이 완전히 처리되어야 합니다. 자세한 내용은 특성 관계정의, 특성 관계 정의, 특성 관계 속성 구성 및 User-Defined 계층 구조에서 특성 간의 특성 관계 지정을 참조하세요.
이 항목의 작업에서는 기본 차원 테이블의 기존 열을 기반으로 Date 차원에 새 특성을 정의합니다. 이 새 특성을 사용하여 사전순이 아닌 시간순으로 달력 월 멤버를 정렬합니다. 또한 Commute Distance 특성 멤버를 정렬하는 데 사용할 명명된 계산에 따라 Customer 차원에 새 특성을 정의합니다. 다음 항목의 작업에서는 특성 관계를 사용하여 쿼리 성능을 향상시키는 방법을 알아봅니다.
날짜 차원의 특성 관계 및 정렬 순서 정의
Date 차원에 대한 차원 디자이너를 연 다음 속성 창에서 Month Name 특성에 대한 OrderBy 속성을 검토합니다.
Month Name 특성 멤버는 해당 키 값에 따라 정렬됩니다.
브라우저 탭으로 전환하고, 계층 목록에서 일정 날짜가 선택되어 있는지 확인한 다음, 사용자 정의 계층 구조의 수준을 확장하여 달력 월의 정렬 순서를 검토합니다.
특성 계층의 멤버는 해당 멤버 키의 ASCII 값(월 및 연도)에 따라 정렬됩니다. 이 경우 특성 이름 또는 키를 기준으로 정렬해도 달력 월은 시간순으로 정렬되지 않습니다. 이 문제를 해결하려면 새 특성인 MonthNumberOfYear 특성에 따라 특성 계층의 멤버를 정렬합니다. Date 차원 테이블에 편리하게 존재하는 열을 기반으로 이 특성을 만듭니다.
날짜 차원의 차원 구조 탭으로 전환하고 데이터 원본 뷰 창에서 MonthNumberOfYear를 마우스 오른쪽 단추로 클릭한 다음 열에서 새 특성을 클릭합니다.
특성 창에서 연도의 월 번호를 선택한 다음 속성 창에서 AttributeHierarchyEnabled 속성을 False로 설정하고 AttributeHierarchyOptimizedState 속성을 NotOptimized로 설정하고 AttributeHierarchyOrdered 속성을 False로 설정합니다.
이러한 설정은 사용자로부터 특성을 숨기고 처리 시간을 향상시킵니다. 이 특성은 검색에 사용되지 않습니다. 다른 특성의 멤버를 정렬하는 데만 사용됩니다.
비고
속성 창에서 속성을 사전순으로 정렬하면 이 세 가지 속성이 서로 인접하게 정렬되므로 이 작업이 간소화됩니다.
특성 관계 탭을 클릭합니다.
Date 차원의 모든 특성은 차원 멤버와 관련 측정값 그룹의 팩트를 연관시키는 멤버 키인 Date 특성과 직접 관련됩니다. Month Name 특성과 Month Number of Year 특성 사이에는 관계가 정의되어 있지 않습니다.
다이어그램에서 월 이름 특성을 마우스 오른쪽 단추로 클릭한 다음 새 특성 관계를 선택합니다.
특성 관계 만들기 대화 상자에서 원본 특성은 월 이름입니다. 관련 특성을월 연도 수로 설정합니다.
관계 유형 목록에서 관계 유형을 강형으로 설정합니다.
Month Name 특성의 멤버와 Month Number of Year 특성 간의 관계는 시간이 지남에 따라 변경되지 않습니다. 따라서 Analysis Services는 증분 처리 중에 이 관계에 대한 집계를 삭제하지 않습니다. 변경이 발생하면 증분 처리 중에 처리 오류가 발생하고 차원의 전체 프로세스를 수행해야 합니다. 이제 월 이름의 멤버에 대한 정렬 순서를 설정할 준비가 되었습니다.
OK를 클릭합니다.
차원 구조 탭을 클릭합니다.
특성 창에서 월 이름을 선택한 다음 속성 창의 OrderBy 속성 값을 AttributeKey로 변경하고 OrderByAttribute 속성의 값을 연도의 월 번호로 변경합니다.
빌드 메뉴에서 Analysis Services 배포 자습서를 클릭합니다.
배포가 성공적으로 완료되면 날짜 차원의 브라우저 탭으로 전환하고 다시 연결한 다음 일정 날짜 및 회계 날짜 사용자 계층 구조를 찾아 월이 시간순으로 정렬되었는지 확인합니다.
이제 다음 이미지와 같이 월이 시간순으로 정렬됩니다.
고객 차원에서 특성 관계 및 정렬 순서 정의
고객 차원에 대한 차원 디자이너의 브라우저 탭으로 전환한 다음 , Commute Distance 특성 계층의 멤버를 찾습니다.
이 특성 계층의 멤버는 멤버 키의 ASCII 값을 기준으로 정렬됩니다. 이 경우 특성 이름 또는 키를 기준으로 정렬해도 통근 거리가 최소에서 대부분으로 정렬되지 않습니다. 이 작업에서는 CommuteDistanceSort라는 명명된 계산을 사용하여 열의 각 고유 값에 적절한 정렬 번호를 할당하고, 이 정렬 번호에 따라 특성 계층의 구성원을 정렬합니다. 시간을 절약하기 위해 이 명명된 계산이 Adventure Works DW 데이터 원본 뷰의 Customer 테이블에 이미 추가되었습니다. 이 데이터 원본 뷰로 전환하여 이 명명된 계산에 사용되는 SQL 스크립트를 볼 수 있습니다. 자세한 내용은 데이터 원본 뷰에서의 명명 계산 정의(Analysis Services)를 참조하세요.
다음 이미지는 멤버 키의 ASCII 값을 기준으로 정렬된 Commute Distance 특성 계층 구조의 멤버를 보여줍니다.
고객 차원에 대한 차원 디자이너의 차원 구조 탭으로 전환하고 데이터 원본 뷰 창의 Customer 테이블에서 CommuteDistanceSort를 마우스 오른쪽 단추로 클릭한 다음 열에서 새 특성을 클릭합니다.
특성 창에서 통근 거리 정렬을 선택한 다음 속성 창에서 이 특성에 대한 AttributeHierarchyEnabled 속성을 False로 설정하고 AttributeHierarchyOptimizedState 속성을 NotOptimized로 설정하고 AttributeHierarchyOrdered 속성을 False로 설정합니다.
이러한 설정은 사용자로부터 특성을 숨기고 처리 시간을 향상시킵니다. 이 특성은 검색에 사용되지 않습니다. 다른 특성의 멤버를 정렬하는 데만 사용됩니다.
Geography를 선택한 다음 속성 창에서 AttributeHierarchyVisible 속성을 False로 설정하고 AttributeHierarchyOptimizedState 속성을 NotOptimized로 설정하고 AttributeHierarchyOrdered 속성을 False로 설정합니다.
이러한 설정은 사용자로부터 특성을 숨기고 처리 시간을 향상시킵니다. 이 특성은 검색에 사용되지 않습니다. 다른 특성의 멤버를 정렬하는 데만 사용됩니다. Geography에는 멤버 속성이 있으므로 AttributeHierarchyEnabled 속성은True로 설정해야 합니다. 따라서 특성을 숨기려면 AttributeHierarchyVisible 속성을 False로 설정합니다.
특성 관계 탭을 클릭합니다.
특성 목록에서 통근 거리 특성을 마우스 오른쪽 단추로 클릭한 다음 새 특성 관계를 선택합니다.
특성 관계 만들기 대화 상자에서 원본 특성은 통근 거리입니다. 관련 특성을통근 거리 정렬로 설정합니다.
관계 유형 목록에서 관계 유형을 강형으로 설정합니다.
통근 거리 특성과 통근 거리 정렬 특성의 멤버 간의 관계는 시간이 지남에 따라 변경되지 않습니다.
OK를 클릭합니다.
이제 Commute Distance 특성의 정렬 순서를 설정할 준비가 되었습니다.
차원 구조 탭을 클릭합니다.
특성 창에서 통근 거리를 선택한 다음 속성 창에서 OrderBy 속성의 값을 AttributeKey로 변경하고 OrderByAttribute 속성 값을 통근 거리 정렬로 변경합니다.
빌드 메뉴에서 Analysis Services 배포 자습서를 클릭합니다.
배포가 성공적으로 완료되면 고객 차원에 대한 차원 디자이너의 브라우저 탭으로 전환하고 다시 연결한 다음 통근 거리 특성 계층 구조를 탐색합니다.
이제 특성 계층 구조 멤버는 다음 이미지와 같이 증가된 거리를 기준으로 논리적 순서로 정렬됩니다.