MDX 데이터 정의 - CREATE GLOBAL CUBE
서버의 큐브에서 하위 큐브를 기반으로 로컬로 유지되는 큐브를 만들고 채웁니다. 로컬로 유지되는 큐브에 연결하려면 서버에 연결할 필요가 없습니다. 로컬 큐브에 대한 자세한 내용은 로컬 큐브(Analysis Services - 다차원 데이터)참조하세요.
통사론
CREATE GLOBAL CUBE local_cube_name STORAGE 'Cube_Location'
FROM source_cube_name (<param list>)
<param list>::= <param> ,<param list> | <param>
<param>::= <dims list> | <measures list>
<measures list>::= <measure>[, <measures list>]
<dims list>::= <dim def> [, <dims list>]
<measure>::= MEASURE source_cube_name.measure_name [<visibility qualifier>] [AS measure_name]
<dim def>::= <source dim def> | <derived dim def>
<source dim def>::= DIMENSION source_cube_name.dimension_name [<dim flags>] [<visibility qualifier>] [AS dimension_name>] [FROM <dim from clause> ] [<dim content def>]
<dim flags>::= NOT_RELATED_TO_FACTS
<dim from clause>::= < dim DM from clause> | <reg dim from clause>
<dim DM from clause>::= dm_model_name> COLUMN column_name
<dim reg from clause>::= dimension_name
<dim content def>::= ( <level list> [,<grouping list>] [,<member slice list>] [,<default member>] )
<level list>::= <level def> [, <level list>]
<level def>::= LEVEL level_name [<level type> ] [AS level_name] [<level content def>]
<level content def>::= ( <property list> ) | NO_PROPERTIES
<level type>::= GROUPING
<property list>::= <property def> [, <property list>]
<property def>::= PROPERTY property_name
<grouping list>::= <grouping entity> [,<grouping list>]
<grouping entity>::= GROUP group_level_name.group_name (<mixed list>)
<grp mixed list>::= <grp mixed element> [,<grp mixed list>]
<grp mixed element>::= <grouping entity> | <member def>
<member slice list>::= <member list>
<member list>::= <member def> [, <member list>]
<member def>::= MEMBER member_name
<default member>::= DEFAULT_MEMBER AS MDX_expression
<visibility qualifier>::= HIDDEN
구문 요소
local_cube_name
로컬 큐브의 이름입니다.
'Cube_Location'
로컬로 유지되는 큐브의 이름 및 경로입니다.
source_cube_name
로컬 큐브의 기반이 되는 큐브의 이름입니다.
source_cube_name.measure_name
로컬 큐브에 포함되는 원본 측정값의 정규화된 이름입니다. Measures 차원의 계산 멤버는 허용되지 않습니다.
measure_name
로컬 큐브에 있는 측정값의 이름입니다.
source_cube_name.dimension_name
로컬 큐브에 포함되는 원본 차원의 정규화된 이름입니다.
dimension_name
로컬 큐브에 있는 차원의 이름입니다.
절> FROM <dim
파생 차원 정의에 대해서만 유효한 사양입니다.
NOT_RELATED_TO_FACTS
파생 차원 정의에 대해서만 유효한 사양입니다.
<수준 형식>
파생 차원 정의에 대해서만 유효한 사양입니다.
발언
로컬 큐브는 해당 큐브를 정의하는 측정값 및 정의 측면에서 정의됩니다. 차원에는 두 가지 유형이 있습니다.
원본 차원 - 더 많은 원본 큐브 중 하나의 일부인 차원입니다.
파생 차원 - 새 분석 기능을 제공하는 차원입니다. 파생 차원은 세로 또는 가로로 조각화되거나 차원 멤버의 사용자 지정 그룹화가 포함된 원본 차원을 기반으로 정의된 일반 차원일 수 있습니다. 파생 차원은 데이터 마이닝 모델을 기반으로 하는 데이터 마이닝 차원이 될 수도 있습니다.
메모
Dimension 키워드는 차원 또는 계층을 참조할 수 있습니다.
로컬 큐브에서 다음 작업을 수행할 수 있습니다.
원본 큐브에 있는 차원 제거
차원에서 계층 구조 추가 또는 제거
측정값 그룹 또는 특정 측정값 제거
CREATE GLOBAL CUBE 문은 다음 규칙을 따릅니다.
CREATE GLOBAL CUBE 문은 계산된 측정값 또는 작업과 같은 모든 명령을 로컬 큐브에 자동으로 복사합니다. 명령에 부모 큐브를 명시적으로 참조하는 MDX(Multidimensional Expressions) 식이 포함된 경우 로컬 큐브는 해당 명령을 실행할 수 없습니다. 이 문제를 방지하려면 명령에 대한 MDX 식을 정의할 때 CURRENTCUBE 키워드를 사용합니다. CURRENTCUBE 키워드는 MDX 식 내에서 큐브를 참조할 때 현재 큐브 컨텍스트를 사용합니다.
로컬 큐브 파일의 기존 전역 큐브에서 만든 전역 큐브는 동일한 로컬 큐브 파일에 저장할 수 없습니다. 예를 들어 SalesLocal1이라는 전역 큐브를 만들고 이 큐브를 C:\SalesLocal.cub 파일에 저장합니다. 그런 다음, C:\SalesLocal.cub 파일에 연결하고 SalesLocal2라는 두 번째 전역 큐브를 만듭니다. 이제 SalesLocal2 전역 큐브를 C:\SalesLocal.cub 파일에 저장하려고 하면 오류가 발생합니다. 그러나 SalesLocal2 전역 큐브를 다른 로컬 큐브 파일에 저장할 수 있습니다.
전역 큐브는 고유 개수 측정값을 지원하지 않습니다. 고유 개수 측정값을 포함하는 큐브는 적정이 아니므로 CREATE GLOBAL CUBE 문은 고유 개수 측정값의 생성 또는 사용을 지원할 수 없습니다.
로컬 큐브에 측정값을 추가할 때 추가되는 측정값과 관련된 차원을 하나 이상 포함해야 합니다.
로컬 큐브에 부모-자식 계층을 추가하는 경우 부모-자식 계층 구조의 수준 및 필터가 무시되고 전체 부모-자식 계층이 포함됩니다.
멤버 속성은 로컬 큐브에서 지원되지 않습니다.
큐브 뷰에서는 로컬 큐브를 만들 수 없습니다.
로컬 큐브에 반가산적 측정값을 포함하는 경우 다음 규칙이 적용됩니다.
추가되는 측정값의 AggregateFunction 속성이 ByAccount인 경우 Account 차원을 포함해야 합니다.
추가되는 AggregateFunction 속성 측정값이 FirstChild, LastChild, FirstNonEmpty, LastNonEmpty 또는 AverageOfChildren인 경우 전체 Time 차원을 포함해야 합니다.
데이터 마이닝 차원은 로컬 큐브에 추가할 수 없습니다.
참조 차원은 구체화되고 일반 차원으로 추가됩니다.
다대다 차원을 포함하는 경우 다음 규칙이 적용됩니다.
전체 다대다 차원을 추가해야 합니다.
중간 측정값 그룹을 추가해야 합니다.
다 대 5 관계와 관련된 두 측정값 그룹에 공통적인 모든 차원 전체를 추가해야 합니다.
다음 예제에서는 Reseller Sales Amount 측정값, 재판매인 차원 및 날짜 차원만 포함하는 Adventure Works 큐브의 지속형 로컬 버전을 만드는 방법을 보여 줍니다.
CREATE GLOBAL CUBE [LocalReseller]
Storage 'C:\LocalAWReseller1.cub'
FROM [Adventure Works]
(
MEASURE [Adventure Works].[Reseller Sales Amount],
DIMENSION [Adventure Works].[Reseller],
DIMENSION [Adventure Works].[Date]
)
다음 예제에서는 로컬 큐브를 만들 때 조각화 하는 방법을 보여 줍니다. 생성되는 전역 큐브는 2005 회계 연도 수준의 멤버에 의해 세로로 분할된 Adventure Works 큐브를 기반으로 하며 회계 연도 및 월 수준에 따라 가로로 정렬됩니다.
CREATE GLOBAL CUBE [LocalReseller]
Storage 'C:\LocalAWReseller2.cub'
FROM [Adventure Works]
(
MEASURE [Adventure Works].[Reseller Sales Amount],
DIMENSION [Adventure Works].[Reseller],
DIMENSION [Adventure Works].[Date]
(
LEVEL [Fiscal Year],
LEVEL [Month],
MEMBER [Date].[Fiscal].[Fiscal Year].&[2005]
)
)
참고 항목
MDX(MDX 데이터 정의 문)
CREATE SESSION CUBE 문(MDX)