적용 대상:
SQL Server Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
SQL Server Analysis Services는 사용자 지정 애플리케이션에서 사용할 추가 데이터 또는 메타데이터를 반환하거나 모델 조사 또는 생성을 지원하기 위해 쿼리에 포함할 수 있는 차원 멤버에 대한 내장 속성을 노출합니다. SQL Server 클라이언트 도구를 사용하는 경우 SSMS(SQL Server Management Studio)에서 기본 속성을 볼 수 있습니다.
내장 속성에는 모든 수준에서 모든 멤버가 노출하는 속성인 ID, KEY, KEYx 및 NAME이 포함됩니다. LEVEL_NUMBER 또는 PARENT_UNIQUE_NAME 같은 위치 정보를 반환할 수도 있습니다.
쿼리를 생성하는 방법과 쿼리를 실행하는 데 사용하는 클라이언트 애플리케이션에 따라 멤버 속성이 결과 집합에 표시되거나 표시되지 않을 수 있습니다. SQL Server Management Studio를 사용하여 쿼리를 테스트하거나 실행하는 경우 결과 집합에서 멤버를 두 번 클릭하여 멤버 속성 대화 상자를 열고 각 기본 멤버 속성의 값을 표시할 수 있습니다.
차원 멤버 속성 사용 및 보기에 대한 소개는 SSMS의 MDX 쿼리 창 내에서 SSAS 멤버 속성 보기를 참조하세요.
비고
Microsoft SQL Server SQL Server Analysis Services는 1999년 3월(2.6일자) OLE DB 사양의 OLAP 섹션을 준수하는 공급자로서 이 항목에 나열된 기본 멤버 속성을 지원합니다.
SQL ServerSQL Server Analysis Services 이외의 공급자는 추가 내장 멤버 속성을 지원할 수 있습니다. 다른 공급자가 지원하는 기본 멤버 속성에 대한 자세한 내용은 해당 공급자와 함께 제공되는 설명서를 참조하세요.
멤버 속성의 형식
SQL Server SQL Server Analysis Services에서 지원하는 기본 멤버 속성은 다음 두 가지 유형입니다.
상황에 맞는 멤버 속성
이러한 멤버 속성은 특정 계층 또는 수준의 컨텍스트에서 사용해야 하며 지정된 차원 또는 수준의 각 멤버에 대한 값을 제공해야 합니다.
다음 예제에는 KEY 속성 MEMBER [Measures].[Parent Member Key] AS [Product].[Product Categories].CurrentMember.Parent.PROPERTIES("KEY")에 대한 경로가 포함됩니다.
컨텍스트에 민감하지 않은 멤버 속성
이러한 멤버 속성은 특정 차원 또는 수준의 컨텍스트에서 사용할 수 없으며 축의 모든 멤버에 대한 값을 반환합니다.
컨텍스트를 구분하지 않는 속성은 독립 실행형이며 경로 정보를 포함하지 않습니다. 다음 예제에서는 PARENT_UNIQUE_NAME 대해 지정된 차원이나 수준이 없는지 확인합니다. DIMENSION PROPERTIES PARENT_UNIQUE_NAME ON COLUMNS
내장 멤버 속성이 컨텍스트에 중요한지 여부에 관계없이 다음 사용 규칙이 적용됩니다.
축에 투영된 차원 멤버와 관련된 기본 멤버 속성만 지정할 수 있습니다.
동일한 쿼리에서 컨텍스트에 중요한 멤버 속성에 대한 요청을 비 컨텍스트 구분 기본 멤버 속성과 혼합할 수 있습니다.
PROPERTIES 키워드를 사용하여 속성을 쿼리합니다.
다음 섹션에서는 SQL Server SQL Server Analysis Services에서 사용할 수 있는 다양한 컨텍스트 구분 및 비 컨텍스트 구분 기본 멤버 속성과 각 속성 유형에 PROPERTIES 키워드를 사용하는 방법에 대해 설명합니다.
상황에 맞는 멤버 속성
모든 차원 멤버 및 수준 멤버는 컨텍스트에 중요한 기본 멤버 속성 목록을 지원합니다. 다음 표에서는 이러한 상황에 맞는 속성을 나열합니다.
| 재산 | 설명 |
|---|---|
| 아이디 | 멤버의 내부적으로 유지 관리되는 ID입니다. |
| 키 | 원래 데이터 형식의 멤버 키 값입니다. MEMBER_KEY 이전 버전과의 호환성을 위한 것입니다. MEMBER_KEY 복합 키가 아닌 키의 경우 KEY0과 동일한 값을 하며 MEMBER_KEY 속성은 복합 키에 대해 null입니다. |
| KEYx | 멤버의 키입니다. 여기서 x는 키의 0부터 시작하는 서수입니다. KEY0은 복합 키와 비 복합 키에 사용할 수 있지만 주로 복합 키에 사용됩니다. 복합 키, KEY0, KEY1, KEY2 등의 경우 복합 키를 집합적으로 구성합니다. 쿼리에서 각각을 독립적으로 사용하여 복합 키의 해당 부분을 반환할 수 있습니다. 예를 들어 KEY0을 지정하면 복합 키의 첫 번째 부분이 반환되고 KEY1을 지정하면 복합 키의 다음 부분이 반환됩니다. 키가 복합 키가 아닌 경우 KEY0은 키와 동일합니다. KEYx는 컨텍스트와 컨텍스트 없이도 사용할 수 있습니다. 이러한 이유로 두 목록에 모두 표시됩니다. |
| 이름 | 멤버의 이름입니다. |
컨텍스트 민감 속성에 대한 PROPERTIES 구문
특정 차원 또는 수준의 컨텍스트에서 이러한 멤버 속성을 사용하고 지정된 차원 또는 수준의 각 멤버에 대한 값을 제공합니다.
차원 멤버 속성의 경우 속성의 이름 앞에 속성이 적용되는 차원의 이름이 앞에 섰습니다. 다음 예제에서는 적절한 구문을 보여줍니다.
DIMENSION PROPERTIES Dimension.Property_name
수준 멤버 속성의 경우 속성 이름 앞에 수준 이름만 지정하거나 추가 사양의 경우 차원과 수준 이름을 둘 다 지정할 수 있습니다. 다음 예제에서는 적절한 구문을 보여줍니다.
DIMENSION PROPERTIES [Dimension.]Level.Property_name
예를 들어, [Sales] 차원의 참조된 각 멤버의 모든 이름을 나열하고자 합니다. 이러한 이름을 반환하려면 MDX(다차원 식) 쿼리에서 다음 문을 사용합니다.
DIMENSION PROPERTIES [Sales].Name
비컨텍스트 감지 멤버 속성
모든 멤버는 컨텍스트에 관계없이 동일한 기본 멤버 속성 목록을 지원합니다. 이러한 속성은 사용자 환경을 향상시키기 위해 애플리케이션에서 사용할 수 있는 추가 정보를 제공합니다.
다음 표에서는 SQL Server SQL Server Analysis Services에서 지원하는 비 컨텍스트 구분 내장 속성을 나열합니다.
비고
MEMBERS 스키마 행 집합의 열은 다음 표에 나열된 기본 멤버 속성을 지원합니다. MEMBERS 스키마 행 집합에 대한 자세한 내용은 MDSCHEMA_MEMBERS 행 집합을 참조하세요.
| 재산 | 설명 |
|---|---|
| CATALOG_NAME | 이 멤버가 속한 큐브의 이름입니다. |
| CHILDREN_CARDINALITY | 멤버가 있는 자식 수입니다. 이는 추정치일 수 있으므로 정확한 개수에 의존해서는 안 됩니다. 공급자는 가능한 최상의 추정치를 반환해야 합니다. |
| CUSTOM_ROLLUP | 사용자 지정 멤버 식입니다. |
| 사용자 지정 집계 속성 | 사용자 지정 멤버 속성입니다. |
| 설명 | 멤버에 대한 사람이 읽을 수 있는 설명입니다. |
| 차원_고유_이름 | 이 멤버가 속한 차원의 고유한 이름입니다. 자격별로 고유한 이름을 생성하는 공급자의 경우 이 이름의 각 구성 요소가 구분됩니다. |
| 계층_고유_이름 | 계층의 고유한 이름입니다. 멤버가 둘 이상의 계층 구조에 속하는 경우 멤버가 속한 각 계층에 대해 하나의 행이 있습니다. 자격별로 고유한 이름을 생성하는 공급자의 경우 이 이름의 각 구성 요소가 구분됩니다. |
| IS_DATAMEMBER | 멤버가 데이터 멤버인지 여부를 나타내는 불 값입니다. |
| IS_PLACEHOLDERMEMBER | 멤버가 자리 표시자인지 여부를 나타내는 부울입니다. |
| KEYx | 멤버의 키입니다. 여기서 x는 키의 0부터 시작하는 서수입니다. KEY0은 복합 및 비 복합 키에 사용할 수 있습니다. 키가 복합 키가 아닌 경우 KEY0은 키와 동일합니다. 복합 키, KEY0, KEY1, KEY2 등의 경우 복합 키를 집합적으로 구성합니다. 쿼리에서 각각을 독립적으로 참조하여 복합 키의 해당 부분을 반환할 수 있습니다. 예를 들어 KEY0을 지정하면 복합 키의 첫 번째 부분이 반환되고 KEY1을 지정하면 복합 키의 다음 부분이 반환됩니다. KEYx는 컨텍스트와 컨텍스트 없이도 사용할 수 있습니다. 이러한 이유로 두 목록에 모두 표시됩니다. |
| LCIDx | 로캘 ID 16진수 값에서 멤버 캡션의 변환입니다. 여기서 x 는 로캘 ID 10진수 값입니다(예: English-CanadaLCID1009). 변환에 데이터 원본에 바인딩된 캡션 열이 있는 경우에만 사용할 수 있습니다. |
| LEVEL_NUMBER | 계층의 루트로부터 멤버까지의 거리입니다. 루트 수준은 0입니다. |
| LEVEL_UNIQUE_NAME | 멤버가 속한 수준의 고유 이름입니다. 자격별로 고유한 이름을 생성하는 공급자의 경우 이 이름의 각 구성 요소가 구분됩니다. |
| MEMBER_CAPTION | 멤버와 연결된 레이블 또는 캡션입니다. 캡션은 주로 표시용입니다. 캡션이 없으면 쿼리는 MEMBER_NAME 반환합니다. |
| MEMBER_KEY | 원래 데이터 형식의 멤버 키 값입니다. MEMBER_KEY 이전 버전과의 호환성을 위한 것입니다. MEMBER_KEY 복합 키가 아닌 키의 경우 KEY0과 동일한 값을 하며 MEMBER_KEY 속성은 복합 키에 대해 null입니다. |
| MEMBER_NAME | 멤버의 이름입니다. |
| MEMBER_TYPE | 멤버의 형식입니다. 이 속성은 다음 값 중 하나입니다. MDMEMBER_TYPE_REGULAR (정규 회원 유형) MDMEMBER_TYPE_ALL MDMEMBER_TYPE_FORMULA MDMEMBER_TYPE_MEASURE MDMEMBER_TYPE_UNKNOWN (회원 유형 알 수 없음) 참고: MDMEMBER_TYPE_FORMULA이 MDMEMBER_TYPE_MEASURE보다 우선합니다. 따라서 Measures 차원에 수식(계산) 멤버가 있는 경우 계산 멤버의 MEMBER_TYPE 속성은 MDMEMBER_TYPE_FORMULA. |
| 회원_고유_이름 | 멤버의 고유 이름입니다. 자격별로 고유한 이름을 생성하는 공급자의 경우 이 이름의 각 구성 요소가 구분됩니다. |
| MEMBER_VALUE | 원래 형식의 멤버 값입니다. |
| PARENT_COUNT | 이 구성원이 가지고 있는 부모 수입니다. |
| PARENT_LEVEL | 계층 트리의 루트 수준과 멤버 부모 간의 거리입니다. 루트 수준은 0입니다. |
| PARENT_UNIQUE_NAME | 멤버 부모의 고유한 이름입니다. 루트 수준의 모든 멤버에 대해 NULL이 반환됩니다. 자격별로 고유한 이름을 생성하는 공급자의 경우 이 이름의 각 구성 요소가 구분됩니다. |
| SKIPPED_LEVELS | 회원이 건너뛴 단계의 수입니다. |
| UNARY_OPERATOR | 멤버의 단항 연산자입니다. |
| UNIQUE_NAME | 멤버의 완전한 정규화된 이름은 다음 형식을 따릅니다: [차원].[수준].[key6.] |
컨텍스트가 아닌 중요한 속성에 대한 속성 구문
PROPERTIES 키워드를 사용하여 컨텍스트가 아닌 기본 멤버 속성을 지정하려면 다음 구문을 사용합니다.
DIMENSION PROPERTIES Property
이 구문에서는 차원 또는 수준에서 속성을 정규화할 수 없습니다. 컨텍스트에 민감하지 않은 기본 멤버 속성이 축의 모든 멤버에 적용되므로 속성을 정규화할 수 없습니다.
예를 들어 DESCRIPTION 내장 멤버 속성을 지정하는 MDX 문에는 다음 구문이 사용됩니다.
DIMENSION PROPERTIES DESCRIPTION
이 문은 축 차원의 각 멤버에 대한 설명을 반환합니다. 차원 또는 수준으로 속성을 한정하려고 하면 문장이 유효하지 않을 것입니다.
예시
다음 예제에서는 내장 속성을 반환하는 MDX 쿼리를 보여 줍니다.
예제 1: 쿼리에서 상황에 맞는 내장 속성 사용
다음 예제에서는 각 제품 범주에 대한 부모 ID, 키 및 이름을 반환합니다. 속성이 측정값으로 노출되는 방식을 확인합니다. 이렇게 하면 SSMS의 멤버 속성 대화 상자 대신 쿼리를 실행할 때 셀 집합의 속성을 볼 수 있습니다. 이와 같은 쿼리를 실행하여 이미 배포된 큐브에서 멤버 메타데이터를 검색할 수 있습니다.
WITH
MEMBER [Measures].[Parent Member ID] AS
[Product].[Product Categories].CurrentMember.Parent.PROPERTIES("ID")
MEMBER [Measures].[Parent Member Key] AS
[Product].[Product Categories].CurrentMember.Parent.PROPERTIES("KEY")
MEMBER [Measures].[Parent Member Name] AS
[Product].[Product Categories].CurrentMember.Parent.PROPERTIES("Name")
SELECT
{[Measures].[Parent Member ID], [Measures].[Parent Member Key], [Measures].[Parent Member Name] } on COLUMNS,
[Product].[Product Categories].AllMembers on ROWS
FROM [Adventure Works]
예제 2: 컨텍스트에 민감하지 않은 내장 속성
다음 예제는 컨텍스트에 민감하지 않은 내장 속성의 전체 목록입니다. SSMS에서 쿼리를 실행한 후 개별 멤버를 클릭하여 멤버 속성 대화 상자에서 속성을 봅니다.
SELECT [Measures].[Sales Amount Quota] on COLUMNS,
[Employee].[Employees].members
DIMENSION PROPERTIES
CATALOG_NAME ,
CHILDREN_CARDINALITY ,
CUSTOM_ROLLUP ,
CUSTOM_ROLLUP_PROPERTIES ,
DESCRIPTION ,
DIMENSION_UNIQUE_NAME ,
HIERARCHY_UNIQUE_NAME ,
IS_DATAMEMBER ,
IS_PLACEHOLDERMEMBER ,
KEY0 ,
LCID ,
LEVEL_NUMBER ,
LEVEL_UNIQUE_NAME ,
MEMBER_CAPTION ,
MEMBER_KEY ,
MEMBER_NAME ,
MEMBER_TYPE ,
MEMBER_UNIQUE_NAME ,
MEMBER_VALUE ,
PARENT_COUNT ,
PARENT_LEVEL ,
PARENT_UNIQUE_NAME ,
SKIPPED_LEVELS ,
UNARY_OPERATOR ,
UNIQUE_NAME
ON ROWS
FROM [Adventure Works]
WHERE [Employee].[Employee Department].[Department].&[Sales]
예제 3: 결과 집합의 데이터로 멤버 속성 반환
다음 예제에서는 지정된 로캘에 대한 Adventure Works 큐브의 Product 차원에 있는 제품 범주 멤버에 대한 번역된 캡션을 반환합니다.
WITH
MEMBER Measures.CategoryCaption AS Product.Category.CurrentMember.MEMBER_CAPTION
MEMBER Measures.SpanishCategoryCaption AS Product.Category.CurrentMember.Properties("LCID3082")
MEMBER Measures.FrenchCategoryCaption AS Product.Category.CurrentMember.Properties("LCID1036")
SELECT
{ Measures.CategoryCaption, Measures.SpanishCategoryCaption, Measures.FrenchCategoryCaption } ON 0
,[Product].[Category].MEMBERS ON 1
FROM [Adventure Works]
또한 참조하십시오
PeriodsToDate(MDX)
자식(MDX)
계층화(MDX)
개수(집합)(MDX)
필터(MDX)
계산된 멤버 추가 (MDX)
DrilldownLevel(MDX)
속성(MDX)
PrevMember(MDX)
멤버 속성 사용(MDX)
MDX(MDX 함수 참조)