次の方法で共有


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

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

  • サーバー

  • データベース

  • Dimensions

  • キューブ

  • メジャー グループ

  • [ パーティション]

  • パースペクティブ

  • [マイニング モデル]

  • ロール

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

  • データ ソース

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

オブジェクトの作成

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

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

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

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

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

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

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

注意

Session 設定を使用する場合、ObjectDefinition 要素には DimensionCube、または MiningModel ASSL 要素のみを含めることができます。

オブジェクトの変更

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

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

ObjectDefinition 要素には、変更するメジャー オブジェクトを定義する ASSL 要素が含まれています。 ASSL の詳細については、「 Analysis Services スクリプト言語 (ASSL) を使用した開発」を参照してください。

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

ObjectExpansion 属性の使用

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

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

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

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

注意

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 属性が ObjectProperties に設定されました。 この設定により、マイナー オブジェクトである ImpersonationInfo 要素を ObjectDefinition で定義されたデータ ソースから除外できます。 そのため、そのデータ ソースに関する権限借用情報は、最初の例で指定したとおりにサービス アカウントに対して設定されたままになります。

参照

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