알 수 없는 멤버 및 Null 처리 속성 정의
Analysis Services가 차원을 처리할 때 테이블의 기본 열 또는 데이터 원본 뷰의 뷰에서 모든 고유 값이 차원의 특성을 채웁니다. Analysis Services에서 처리 중에 null 값이 발생하는 경우 기본적으로 이 null을 숫자 열의 경우 0으로 변환하거나 문자열 열의 빈 문자열로 변환합니다. 기본 관계형 데이터 웨어하우스의 추출, 변환 및 로드 프로세스(있을 경우)에서 이러한 기본 설정을 수정하거나 Null 값을 변환할 수 있습니다. 또한 Analysis Services는 차원의 UnknownMember 및 UnknownMemberName 속성과 차원의 키 특성에 대한 NullProcessing 속성의 세 가지 속성을 구성하여 Null 값을 지정된 값으로 변환하도록 할 수 있습니다.
차원 마법사와 큐브 마법사는 차원의 키 특성이 Null을 허용하는지 또는 눈송이 차원의 루트 특성이 Null 허용 열을 기반으로 하는지 여부에 따라서 이러한 속성을 설정합니다. 이러한 경우에 키 특성의 NullProcessing 속성은 UnknownMember 로 설정되고 UnknownMember 속성은 Visible로 설정됩니다.
그러나 이 자습서에서 Product 차원의 경우처럼 눈송이 차원을 증분식으로 작성하거나 차원 디자이너를 사용하여 차원을 정의한 다음 이러한 기존 차원을 큐브에 통합할 경우 UnknownMember 및 NullProcessing 속성을 수동으로 설정해야 할 수 있습니다.
이 항목의 작업에서는 Adventure Works DW 데이터 원본 뷰에 추가할 눈 덮인 테이블의 제품 차원에 제품 범주 및 제품 하위 범주 특성을 추가합니다. 그런 다음 Product 차원에 대해 UnknownMember 속성을 사용하도록 설정하고, UnknownMemberName 속성의 값으로 지정 Assembly Components
하고, 및 특성을 제품 이름 특성과 Category
연결 Subcategory
한 다음, 눈 덮인 테이블을 연결하는 멤버 키 특성에 대한 사용자 지정 오류 처리를 정의합니다.
참고
원래 큐브 마법사를 사용하여 Analysis Services 자습서 큐브를 정의할 때 하위 범주 및 범주 특성을 추가한 경우 이러한 단계가 자동으로 수행되었을 것입니다.
Product 차원의 오류 처리 및 알 수 없는 멤버 속성 검토
Product 차원의 차원 디자이너로 전환하고 차원 구조 탭을 클릭한 후 특성 창의 Product 를 선택합니다.
이렇게 하면 차원 자체의 속성을 보고 수정할 수 있습니다.
속성 창에서 UnknownMember 및 UnknownMemberName 속성을 검토합니다.
해당 값이 Visible 또는 Hidden 대신 None 으로 설정되어 있고 UnknownMemberName속성에 대해 지정된 이름이 없으므로 UnknownMember 속성이 설정되지 않습니다.
속성 창의 ErrorConfiguration 속성 셀에서 (사용자 지정) 을 선택한 후 ErrorConfiguration 속성 컬렉션을 확장합니다.
ErrorConfiguration 속성을 (사용자 지정) 으로 설정하면 기본 오류 구성 설정을 볼 수 있습니다. 이로 인해 설정이 변경되지는 않습니다.
키 및 Null 키 오류 구성 속성을 검토만 하고 변경하지 마십시오.
기본적으로 Null 키가 알 수 없는 멤버로 변환되는 경우 이 변환과 연관된 처리 오류는 무시됩니다.
다음 이미지는 ErrorConfiguration 속성 컬렉션의 속성 설정을 보여 줍니다.
브라우저 탭을 클릭하고 계층 목록에서제품 모델 줄이 선택되어 있는지 확인한 다음 을 확장합니다
All Products
.Product Line 수준의 5개 멤버가 표시됩니다.
Components를 확장한 후 레이블이 없는 Model Name 수준의 멤버를 확장합니다.
이 수준에는 다음 이미지에 표시된 것처럼 다른 구성 요소를 작업할 때 사용되는 어셈블리 구성 요소가 들어 있으며 Adjustable Race 제품으로 시작합니다.
눈송이 테이블 및 제품 범주 사용자 정의 계층의 특성 정의
Adventure Works DW 데이터 원본 보기에 대한 데이터 원본 뷰 Designer 열고 다이어그램 구성 도우미 창에서 재판매인 판매를 선택한 다음, SQL Server Data Tools(SSDT)의 데이터 원본 뷰 메뉴에서 개체 추가/제거를 클릭합니다.
테이블 추가/제거 대화 상자가 열립니다.
포함된 개체 목록에서 DimProduct (dbo)를 선택한 후 관련 테이블 추가를 클릭합니다.
DimProductSubcategory (dbo) 및 FactProductInventory (dbo) 가 둘 다 추가됩니다. DimProductSubcategory (dbo) 테이블만 포함된 개체 목록에 추가되도록 FactProductInventory (dbo) 를 제거합니다.
DimProductSubcategory (dbo) 테이블이 가장 최근에 추가된 테이블로 기본적으로 선택된 상태에서 관련 테이블 추가 를 다시 클릭합니다.
DimProductCategory (dbo) 테이블이 포함된 개체 목록에 추가됩니다.
확인을 클릭합니다.
SQL Server Data Tools 서식 메뉴에서 자동 레이아웃을 가리킨 다음 다이어그램을 클릭합니다.
DimProductSubcategory (dbo) 테이블 및 DimProductCategory (dbo) 테이블은 서로 연결되어 있으며 Product 테이블을 통해 ResellerSales 테이블과도 연결되어 있습니다.
Product 차원의 차원 디자이너로 전환한 다음 차원 구조 탭을 클릭합니다.
데이터 원본 뷰 창의 어느 곳이든 마우스 오른쪽 단추로 클릭한 다음 모든 테이블 표시를 클릭합니다.
데이터 원본 뷰 창에서 DimProductCategory 테이블을 찾아 해당 테이블의 ProductCategoryKey 를 마우스 오른쪽 단추로 클릭한 다음 열의 새 특성을 클릭합니다.
특성 창에서 이 새 특성의 이름을 로
Category
변경합니다.속성 창 NameColumn 속성 필드를 클릭한 다음 찾아보기(...) 단추를 클릭하여 이름 열 대화 상자를 엽니다.
원본 열 목록에서 EnglishProductCategoryName 을 선택하고 확인을 클릭합니다.
데이터 원본 뷰 창에서 DimProductSubcategory 테이블을 찾아 해당 테이블의 ProductSubcategoryKey 를 마우스 오른쪽 단추로 클릭한 다음 열의 새 특성을 클릭합니다.
특성 창에서 이 새 특성의 이름을 로
Subcategory
변경합니다.속성 창 NameColumn 속성 필드를 클릭한 다음 찾아보기(...) 단추를 클릭하여 열 이름 대화 상자를 엽니다.
원본 열 목록에서 EnglishProductSubcategoryName 을 선택하고 확인을 클릭합니다.
위에서 아래로
Category
순서대로 제품 범주라는 새 사용자 정의 계층을 만듭니다. ,Subcategory
및 제품 이름.Product Categories 사용자 정의 계층 구조의 AllMemberName 속성 값으로 를 지정
All Products
합니다.
Product 차원에서 사용자 정의 계층 찾아보기
Product 차원에 대한 차원 디자이너 의 차원 구조 탭에 있는 도구 모음에서 처리를 클릭합니다.
해당 프로젝트를 작성 및 배포하려면 예 를 클릭한 후 실행 을 클릭하여 Product 차원을 처리합니다.
처리가 성공하면 처리 진행률 대화 상자의 차원 'Product' 처리가 완료되었습니다. , 차원 특성 'Product Name' 처리가 완료되었습니다.및 SQL 쿼리 1을 차례로 확장합니다.
SELECT DISTINCT 쿼리를 클릭한 후 자세히 보기를 클릭합니다.
다음 이미지에 표시된 것처럼 ProductSubcategoryKey 열에 값이 없는 제품을 제거하는 SELECT DISTINCT 절에 WHERE 절이 추가되었습니다.
닫기 를 3번 클릭하여 처리 중인 대화 상자를 모두 닫습니다.
Product 차원의 차원 디자이너에서 브라우저 탭을 클릭한 후 다시 연결을 클릭합니다.
제품 모델 라인이 계층 구조 목록에 표시되는지 확인하고, 를 확장
All Products
한 다음, 구성 요소를 확장합니다.계층 목록에서제품 범주를 선택하고, 를 확장
All Products
한 다음, 구성 요소를 확장합니다.어셈블리 구성 요소가 나타나지 않습니다.
이전 작업에서 언급한 동작을 수정하려면 Products 차원의 UnknownMember 속성을 사용하도록 설정하고, UnknownMemberName 속성에 대한 값을 설정하고, 및 모델 이름 특성의 Subcategory
NullProcessing 속성을 UnknownMember로 설정하고, 특성을 특성의 Subcategory
관련 특성으로 정의 Category
한 다음, Product Line 특성을 모델 이름 특성의 관련 특성으로 정의합니다. 이러한 단계를 수행하면 Analysis Services가 다음 작업과 같이 SubcategoryKey 열에 대한 값이 없는 각 제품에 대해 알 수 없는 멤버 이름 값을 사용합니다.
알 수 없는 멤버 활성화, 특성 관계 정의 및 Null에 대한 사용자 지정 프로세싱 속성 지정
Product 차원의 차원 디자이너에서 차원 구조 탭을 클릭한 후 특성 창의 Product 를 선택합니다.
속성 창에서 UnknownMember 속성을 Visible로 변경한 다음 UnknownMemberName 속성
Assembly Components
의 값을 로 변경합니다.UnknownMember 속성을 Visible 또는 Hidden 으로 변경하면 차원에 대한 UnknownMember 속성이 활성화됩니다.
특성 관계 탭을 클릭합니다.
다이어그램에서 특성을 마우스 오른쪽 단추로
Subcategory
클릭한 다음 새 특성 관계를 선택합니다.특성 관계 만들기 대화 상자에서 원본 특성은 입니다
Subcategory
. 관련 특성을 로Category
설정합니다. 관계 유형 설정은 고정으로 둡니다.확인을 클릭합니다.
특성 창에서 Subcategory를 선택합니다.
속성 창에서 KeyColumns 속성을 확장한 후 DimProductSubcategory.ProductSubcategoryKey (Integer) 속성을 확장합니다.
NullProcessing 속성을 UnknownMember로 변경합니다.
특성 창에서 Model Name을 선택합니다.
속성 창에서 KeyColumns 속성을 확장한 후 Product.ModelName (WChar) 속성을 확장합니다.
NullProcessing 속성을 UnknownMember로 변경합니다.
이러한 변경으로 인해 Analysis Services에서 처리 중에 특성 또는 모델 이름 특성에 대한
Subcategory
null 값이 발견되면 알 수 없는 멤버 값이 키 값으로 대체되고 사용자 정의 계층이 올바르게 생성됩니다.
Product 차원 다시 찾아보기
빌드 메뉴에서 Analysis Services Tutorial 배포를 클릭합니다.
배포가 성공적으로 완료되면 Product 차원에 대한 차원 디자이너에서 브라우저 탭을 클릭한 후 다시 연결을 클릭합니다.
계층 목록에서제품 범주가 선택되어 있는지 확인한 다음 을 확장합니다
All Products
.Assembly Components가 Category 수준의 새 멤버로 나타납니다.
수준의 멤버를
Assembly Components
확장한Category
다음, 수준 멤버를Assembly Components
확장합니다Subcategory
.다음 그림에 표시된 것처럼 이제 모든 어셈블리 구성 요소가 Product Name 수준에 나타납니다.