개체 만들기 및 변경(XMLA)
주요 개체는 독립적으로 만들고 변경하고 삭제할 수 있습니다. 주요 개체에는 다음과 같은 개체가 포함됩니다.
서버
데이터베이스
차원
큐브
측정값 그룹
파티션
큐브 뷰
마이닝 모델
역할
서버 또는 데이터베이스에 연결된 명령
데이터 원본
Create 명령을 사용하면 Microsoft SQL Server Analysis Services 인스턴스에 주요 개체를 만들 수 있으며, Alter 명령을 사용하면 인스턴스의 기존 주요 개체를 변경할 수 있습니다. 두 명령 모두 Execute 메서드를 사용하여 실행됩니다.
개체 만들기
Create 메서드를 사용하여 개체를 만들려면 먼저 만들려는 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 요소(XMLA)를 참조하십시오.
세션 개체 만들기
세션 개체는 클라이언트 응용 프로그램에서 사용하는 명시적 또는 암시적 세션에만 사용할 수 있는 임시 개체로, 세션이 종료될 때 삭제됩니다. Create 명령의 Scope 특성을 Session으로 설정하면 세션 개체를 만들 수 있습니다.
[!참고]
Session 설정을 사용하는 경우 ObjectDefinition 요소는 Dimension, Cube 또는 MiningModel ASSL 요소만 포함할 수 있습니다.
개체 변경
Alter 메서드를 사용하여 개체를 수정하려면 먼저 Alter 명령의 Object 속성에 개체 참조를 제공하여 수정할 개체를 식별해야 합니다. 각 개체 참조에는 Alter 명령에 대한 개체를 고유하게 식별하는 데 필요한 개체 식별자가 들어 있습니다. 개체 참조에 대한 자세한 내용은 개체 정의 및 식별(XMLA)을 참조하십시오.
예를 들어 큐브의 구조를 수정하려면 큐브에 대한 개체 참조를 제공해야 합니다. 동일한 큐브 식별자를 다른 데이터베이스에서도 사용할 수 있으므로 Object 속성의 큐브에 대한 개체 참조에는 데이터베이스 식별자와 큐브 식별자가 모두 들어 있습니다.
ObjectDefinition 요소는 수정할 주요 개체를 정의하는 ASSL 요소를 포함합니다. ASSL에 대한 자세한 내용은 ASSL(Analysis Services Scripting Language)을 사용하여 개발을 참조하십시오.
Alter 명령의 AllowCreate 특성을 true로 설정하면 지정된 주요 개체가 없는 경우 해당 개체를 만들 수 있습니다. true로 설정하지 않으면 지정된 주요 개체가 없을 경우 오류가 발생합니다.
ObjectExpansion 특성 사용
주요 개체의 속성만 변경하고 주요 개체에 포함된 보조 개체를 다시 정의하지 않은 경우 Alter 명령의 ObjectExpansion 특성을 ObjectProperties로 설정할 수 있습니다. 이 경우 ObjectDefinition 속성은 주요 개체의 속성에 대한 요소만 포함해야 하며 Alter 명령은 주요 개체에 연결된 보조 개체를 그대로 유지합니다.
주요 개체의 보조 개체를 다시 정의하려면 ObjectExpansion 특성을 ExpandFull로 설정해야 하며, 개체 정의에는 주요 개체에 포함된 모든 보조 개체가 포함되어야 합니다. 주요 개체에 포함된 보조 개체가 Alter 명령의 ObjectDefinition 속성에 명시적으로 포함되지 않은 경우 포함되지 않은 보조 개체는 삭제됩니다.
세션 개체 변경
Create 명령으로 만든 세션 개체를 수정하려면 Alter 명령의 Scope 특성을 Session으로 설정합니다.
[!참고]
Session 설정을 사용하는 경우 ObjectDefinition 요소는 Dimension, Cube 또는 MiningModel ASSL 요소만 포함할 수 있습니다.
하위 개체 만들기 또는 변경
Create 또는 Alter 명령으로는 최상위의 주요 개체를 한 개만 만들거나 변경할 수 있지만 만들거나 수정하려는 주요 개체는 묶는 ObjectDefinition 속성 내에 다른 주요 개체 및 해당 주요 개체에 종속된 보조 개체에 대한 정의를 포함할 수 있습니다. 예를 들어 큐브를 정의하고 ParentObject에 부모 데이터베이스를 지정한 경우 ObjectDefinition의 큐브 정의 내에서는 큐브에 대한 측정값 그룹을 정의할 수 있으며, 이 측정값 그룹 내에서는 각 측정값 그룹에 대한 파티션을 정의할 수 있습니다. 보조 개체는 자신이 포함된 주요 개체 아래에만 정의될 수 있습니다. 주요 개체 및 보조 개체에 대한 자세한 내용은 데이터베이스 개체(Analysis Services - 다차원 데이터)를 참조하십시오.
예
설명
다음 예에서는 Adventure Works DW Multidimensional 2012 예제 Microsoft SQL Server 데이터베이스를 참조하는 관계형 데이터 원본을 만듭니다.
코드
<Create xmlns="https://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>
설명
다음 예제에서는 이전 예제에서 만든 관계형 데이터 원본을 변경하여 데이터 원본에 대한 쿼리 제한 시간을 30초로 설정합니다.
코드
<Alter ObjectExpansion="ObjectProperties" xmlns="https://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로 설정되었습니다. 이렇게 설정하면 보조 개체인 ImpersonationInfo 요소를 ObjectDefinition에 정의된 데이터 원본에서 제외할 수 있습니다. 따라서 해당 데이터 원본에 대한 가장 정보가 첫 번째 예제에서 지정한 대로 서비스 계정으로 설정된 채 유지됩니다.