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