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