オブジェクトの作成と変更 (XMLA)

主要なオブジェクトは、個別に作成、変更、削除することができます。 主要なオブジェクトには以下のオブジェクトが含まれます。

  • サーバー

  • データベース

  • Dimensions

  • キューブ

  • メジャー グループ

  • メジャー グループ

  • パースペクティブ

  • [マイニング モデル]

  • ロール

  • サーバーまたはデータベースに関連付けられているコマンド

  • データ ソース

createコマンドを使用して Microsoft SQL Server Analysis Services のインスタンスにメジャーオブジェクトを作成し、 alterコマンドを使用してインスタンス上の既存の主要なオブジェクトを変更します。 どちらのコマンドも、 Execute メソッドを使用して実行されます。

オブジェクトの作成

Createメソッドを使用してオブジェクトを作成する場合は、最初に作成する Analysis Services オブジェクトを含む親オブジェクトを特定する必要があります。 親オブジェクトを特定するには、 CreateコマンドのParentObjectプロパティにオブジェクト参照を指定します。 各オブジェクト参照には、 Create コマンドの親オブジェクトを一意に識別するために必要なオブジェクト識別子が含まれています。 オブジェクト参照の詳細については、「 オブジェクトの定義と識別 (XMLA)」を参照してください。

たとえば、キューブに新しいメジャー グループを作成するには、キューブへのオブジェクト参照を指定する必要があります。 ParentObjectプロパティのキューブのオブジェクト参照には、データベース識別子とキューブ識別子の両方が含まれています。これは、同じキューブ識別子が別のデータベースで使用される可能性があるためです。

Objectdefinition要素には、作成する主要なオブジェクトを定義する Analysis Services スクリプト言語 (assl) 要素が含まれています。 ASSL の詳細については、「 Analysis Services Scripting Language (assl) を使用した開発」を参照してください。

Createコマンドのallowoverwrite属性を true に設定すると、指定した識別子を持つ既存の主要なオブジェクトを上書きできます。 そうしない場合、親オブジェクト内に指定された識別子を持つ主要なオブジェクトが既に存在するときに、エラーが発生します。

Createコマンドの詳細については、「 CREATE Element (XMLA)」を参照してください。

セッション オブジェクトの作成

セッション オブジェクトは一時オブジェクトであり、クライアント アプリケーションで使用される明示的または暗黙的なセッションでのみ使用でき、セッションの終了時には削除されます。 セッションオブジェクトを作成するには、 createコマンドのScope属性をsessionに設定します。

注意

セッション設定を使用する場合、 objectdefinition要素にはDimensionCube、またはMiningModel assl の要素のみを含めることができます。

オブジェクトの変更

Alterメソッドを使用してオブジェクトを変更する場合は、まず、 Alterコマンドのobjectプロパティにオブジェクト参照を指定して、変更するオブジェクトを特定する必要があります。 各オブジェクト参照には、 Alter コマンドのオブジェクトを一意に識別するために必要なオブジェクト識別子が含まれています。 オブジェクト参照の詳細については、「 オブジェクトの定義と識別 (XMLA)」を参照してください。

たとえば、キューブの構造を変更するためには、キューブへのオブジェクト参照を指定する必要があります。 オブジェクトプロパティのキューブのオブジェクト参照には、データベース識別子とキューブ識別子の両方が含まれています。これは、同じキューブ識別子が別のデータベースで使用される可能性があるためです。

Objectdefinition要素には、変更する主要なオブジェクトを定義する assl 要素が含まれています。 ASSL の詳細については、「 Analysis Services Scripting Language (assl) を使用した開発」を参照してください。

Alterコマンドのallowcreate属性を true に設定した場合、オブジェクトが存在しない場合は、指定された主要なオブジェクトを作成できます。 そうしない場合、指定された主要なオブジェクトが存在していないときに、エラーが発生します。

ObjectExpansion 属性の使用

主要なオブジェクトのプロパティのみを変更し、主要なオブジェクトに含まれているマイナーオブジェクトを再定義しない場合は、 AlterコマンドのObjectexpansion属性をobjectexpansionに設定できます。 Objectdefinitionプロパティには、主要なオブジェクトのプロパティの要素のみを含める必要があります。また、 Alterコマンドは、主要なオブジェクトに関連付けられているマイナーオブジェクトをそのまま残します。

主要なオブジェクトの副オブジェクトを再定義するには、 Objectexpansion 属性を expandfull に設定し、オブジェクト定義に、主要なオブジェクトに含まれるすべてのマイナーオブジェクトを含める必要があります。 Alterコマンドのobjectdefinitionプロパティに、主要なオブジェクトに含まれているマイナーオブジェクトが明示的に含まれていない場合、含まれていなかったマイナーオブジェクトは削除されます。

セッション オブジェクトの変更

Createコマンドによって作成されたセッションオブジェクトを変更するには、 AlterコマンドのScope属性をsessionに設定します。

注意

セッション設定を使用する場合、 objectdefinition要素にはDimensionCube、またはMiningModel assl の要素のみを含めることができます。

下位オブジェクトの作成または変更

CreateコマンドまたはAlterコマンドでは、最上位の主要オブジェクトが1つだけ作成または変更されますが、作成または変更される主要なオブジェクトには、その下位にある他の主要なオブジェクトおよびマイナーオブジェクトの外側のobjectdefinitionプロパティ内の定義を含めることができます。 たとえば、キューブを定義する場合は、 ParentObjectで親データベースを指定し、 objectdefinition のキューブ定義内でキューブのメジャーグループを定義できます。メジャーグループ内では、メジャーグループごとにパーティションを定義できます。 副次オブジェクトは、それを格納する主要なオブジェクトの中でのみ定義できます。 メジャーおよびマイナーオブジェクトの詳細については、「 データベースオブジェクト (Analysis Services-多次元データ)」を参照してください。

説明

次の例では、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>  

説明

次の例では、前の例で作成されたリレーショナル データ ソースを変更して、データ ソースのクエリ タイムアウトを 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属性がobjectexpansionに設定されました。 この設定により、 ImpersonationInfo 要素 (マイナーオブジェクト) を objectdefinitionで定義されたデータソースから除外できます。 そのため、そのデータ ソースに関する権限借用情報は、最初の例で指定したとおりにサービス アカウントに対して設定されたままになります。

参照

Execute メソッド (XMLA)
Analysis Services スクリプト言語 (ASSL) での開発
Analysis Services での XMLA による開発