개체 만들기 및 변경(XMLA)

주요 개체는 독립적으로 만들고 변경하고 삭제할 수 있습니다. 주요 개체에는 다음과 같은 개체가 포함됩니다.

  • 서버

  • 데이터베이스

  • 차원

  • 큐브

  • 측정값 그룹

  • 파티션

  • 큐브 뷰

  • 마이닝 모델

  • 역할

  • 서버 또는 데이터베이스에 연결된 명령

  • 데이터 원본

Create 명령을 사용하여 Microsoft SQL Server SQL Server Analysis Services 인스턴스에 주 개체를 만들고, Alter 명령을 사용하여 인스턴스의 기존 주 개체를 변경합니다. 두 명령 모두 Execute 메서드를 사용하여 실행됩니다.

개체 만들기

Create 메서드를 사용하여 개체를 만드는 경우 먼저 만들 SQL Server Analysis Services 개체가 포함된 부모 개체를 식별해야 합니다. Create 명령의 ParentObject 속성에서 개체 참조를 제공하여 부모 개체를 식별합니다. 각 개체 참조에는 Create 명령에 대한 부모 개체를 고유하게 식별하는 데 필요한 개체 식별자가 포함됩니다. 개체 참조에 대한 자세한 내용은 XMLA(개체 정의 및 식별)를 참조하세요.

예를 들어 큐브에 대한 새 측정값 그룹을 만들려면 큐브에 대한 개체 참조를 제공해야 합니다. ParentObject 속성의 큐브에 대한 개체 참조에는 동일한 큐브 식별자를 다른 데이터베이스에서 사용할 수 있으므로 데이터베이스 식별자와 큐브 식별자가 모두 포함됩니다.

ObjectDefinition 요소에는 만들 주 개체를 정의하는 ASSL(Analysis Services Scripting Language) 요소가 포함됩니다. ASSL에 대한 자세한 내용은 ASSL(Analysis Services Scripting Language)을 사용하여 개발을 참조하세요.

Create 명령의 AllowOverwrite 특성을 true로 설정하면 지정된 식별자가 있는 기존 주 개체를 덮어쓸 수 있습니다. true로 설정하지 않으면 지정된 식별자를 가지고 있는 주요 개체가 부모 개체에 이미 있을 경우 오류가 발생합니다.

Create 명령에 대한 자세한 내용은 Create Element(XMLA)를 참조하세요.

세션 개체 만들기

세션 개체는 클라이언트 애플리케이션에서 사용하는 명시적 또는 암시적 세션에만 사용할 수 있는 임시 개체로, 세션이 종료될 때 삭제됩니다. Create 명령의 Scope 특성을 Session으로 설정하여 세션 개체를 만들 수 있습니다.

참고

Session 설정을 사용하는 경우 ObjectDefinition 요소는 Dimension, Cube 또는 MiningModel ASSL 요소만 포함할 수 있습니다.

개체 변경

Alter 메서드를 사용하여 개체를 수정하는 경우 먼저 Alter명령의Object 속성에 개체 참조를 제공하여 수정할 개체를 식별해야 합니다. 각 개체 참조에는 Alter 명령에 대한 개체를 고유하게 식별하는 데 필요한 개체 식별자가 포함됩니다. 개체 참조에 대한 자세한 내용은 XMLA(개체 정의 및 식별)를 참조하세요.

예를 들어 큐브의 구조를 수정하려면 큐브에 대한 개체 참조를 제공해야 합니다. 개체 속성의 큐브에 대한 개체 참조에는 다른 데이터베이스에서 동일한 큐브 식별자를 사용할 수 있으므로 데이터베이스 식별자와 큐브 식별자가 모두 포함됩니다.

ObjectDefinition 요소에는 수정할 주 개체를 정의하는 ASSL 요소가 포함되어 있습니다. ASSL에 대한 자세한 내용은 ASSL(Analysis Services Scripting Language)을 사용하여 개발을 참조하세요.

Alter 명령의 AllowCreate 특성을 true로 설정하면 개체가 없는 경우 지정된 주 개체를 만들 수 있습니다. true로 설정하지 않으면 지정된 주요 개체가 없을 경우 오류가 발생합니다.

ObjectExpansion 특성 사용

주 개체의 속성만 변경하고 주 개체에 포함된 보조 개체를 다시 정의하지 않는 경우 Alter 명령의 ObjectExpansion 특성을 ObjectProperties로 설정할 수 있습니다. 그런 다음 ObjectDefinition 속성은 주 개체의 속성에 대한 요소만 포함해야 하며 Alter 명령은 주 개체와 연결된 보조 개체를 그대로 유지합니다.

주 개체에 대한 보조 개체를 다시 정의하려면 ObjectExpansion 특성을 ExpandFull 로 설정해야 하며 개체 정의에는 주 개체에 포함된 모든 보조 개체가 포함되어야 합니다. Alter 명령의 ObjectDefinition 속성에 주 개체에 포함된 부 개체가 명시적으로 포함되지 않은 경우 포함되지 않은 부 개체가 삭제됩니다.

세션 개체 변경

만들기 명령으로 만든 세션 개체를 수정하려면 Alter 명령의 범위 특성을 세션으로 설정합니다.

참고

Session 설정을 사용하는 경우 ObjectDefinition 요소는 Dimension, Cube 또는 MiningModel ASSL 요소만 포함할 수 있습니다.

하위 개체 만들기 또는 변경

Create 또는 Alter 명령은 최상위 주 개체를 하나만 만들거나 변경하지만, 생성 또는 수정되는 주 개체에는 하위 개체와 하위 개체에 대한 바깥쪽 ObjectDefinition 속성 내의 정의가 포함될 수 있습니다. 예를 들어 큐브를 정의하는 경우 ParentObject에서 부모 데이터베이스를 지정하고 ObjectDefinition 의 큐브 정의 내에서 큐브에 대한 측정값 그룹을 정의할 수 있으며 측정값 그룹 내에서 각 측정값 그룹에 대한 파티션을 정의할 수 있습니다. 보조 개체는 자신이 포함된 주요 개체 아래에만 정의될 수 있습니다. 주 개체 및 부 개체에 대한 자세한 내용은 데이터베이스 개체(Analysis Services - 다차원 데이터)를 참조하세요.

Description

다음 예제에서는 Adventure Works DW 다차원 2012 샘플 Microsoft SQL Server 데이터베이스를 참조하는 관계형 데이터 원본을 만듭니다.

코드

<Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">  
    <ParentObject>  
        <DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>  
    </ParentObject>  
    <ObjectDefinition>  
        <DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">  
            <ID>AdventureWorksDW2012</ID>  
            <Name>AdventureWorksDW2012</Name>  
            <ConnectionString>Data Source=localhost;Initial Catalog=AdventureWorksDW2008R2;Integrated Security=True</ConnectionString>  
            <ImpersonationInfo>  
                <ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode>  
            </ImpersonationInfo>  
            <ManagedProvider>System.Data.SqlClient</ManagedProvider>  
            <Timeout>PT0S</Timeout>  
        </DataSource>  
    </ObjectDefinition>  
</Create>  

Description

다음 예제에서는 이전 예제에서 만든 관계형 데이터 원본을 변경하여 데이터 원본에 대한 쿼리 제한 시간을 30초로 설정합니다.

코드

<Alter ObjectExpansion="ObjectProperties" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">  
    <Object>  
        <DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>  
        <DataSourceID>AdventureWorksDW2012</DataSourceID>  
    </Object>  
    <ObjectDefinition>  
        <DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource">  
            <ID>AdventureWorksDW2012</ID>  
            <Name>AdventureWorksDW2012</Name>  
            <ConnectionString>Data Source=fr-dwk-02;Initial Catalog=AdventureWorksDW2008R2;Integrated Security=True</ConnectionString>  
            <ManagedProvider>System.Data.SqlClient</ManagedProvider>  
            <Timeout>PT30S</Timeout>  
        </DataSource>  
    </ObjectDefinition>  
</Alter>  

주석

Alter 명령의 ObjectExpansion 특성이 ObjectProperties로 설정되었습니다. 이 설정을 사용하면 ObjectDefinition에 정의된 데이터 원본에서 Minor 개체인 ImpersonationInfo 요소를 제외할 수 있습니다. 따라서 해당 데이터 원본에 대한 가장 정보가 첫 번째 예제에서 지정한 대로 서비스 계정으로 설정된 채 유지됩니다.

참고 항목

Execute 메서드(XMLA)
ASSL(Analysis Services Scripting Language)을 사용하여 개발
Analysis Services에서 XMLA를 사용하여 개발