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