Compartilhar via


Criando e alterando objetos (XMLA)

Os objetos principais podem ser criados, alterados e excluídos de forma independente. Os objetos principais incluem o seguinte:

  • Servidores

  • Bancos de dados

  • Dimensões

  • Cubos

  • Grupos de medidas

  • Partições

  • Perspectivas

  • Modelos de mineração

  • Funções

  • Comandos associados a um servidor ou a um banco de dados

  • Fontes de dados

Você usa o comando Create para criar um objeto principal em uma instância do Microsoft SQL Server Analysis Services e o comando Alter para alterar um objeto principal existente em uma instância. Ambos os comandos são executados por meio do método Execute método.

Criando objetos

Quando você cria objetos usando o método Create, primeiro deve identificar o objeto pai que contém o objeto do Analysis Services a ser criado. Você identifica o objeto pai fornecendo uma referência de objeto na propriedade ParentObject do comando Create. Cada referência de objeto contém os identificadores de objetos necessários para a identificação exclusiva do objeto pai para o comando Create. Para obter mais informações sobre referências de objeto, consulte Definindo e identificando objetos (XMLA).

Por exemplo, você deve fornecer uma referência de objeto a um cubo para criar um grupo de medidas novo para ele. A referência de objeto para o cubo na propriedade ParentObject contém um identificador de banco de dados e um identificador de cubo, já que, potencialmente, o mesmo identificador de cubo poderia ser usado em um banco de dados diferente.

O elemento ObjectDefinition contém elementos da ASSL (Analysis Services Scripting Language) que definem o objeto principal a ser criado. Para obter mais informações sobre ASSL, consulte ASSL.

Se você definir o atributo AllowOverwrite do comando Create como verdadeiro, poderá substituir um objeto principal existente que tenha o identificador especificado. Caso contrário, ocorrerá um erro se um objeto principal com o identificador especificado já existir no objeto pai.

Para obter mais informações sobre o comando Create, consulte Elemento Create (XMLA).

Criando objetos de sessão

Os objetos de sessão são objetos temporários que só estão disponíveis para a sessão explícita ou implícita usada por um aplicativo cliente e são excluídos quando a sessão é encerrada. Você pode criar objetos de sessão definindo o atributo Scope do comando Create como Session.

ObservaçãoObservação

Ao usar a configuração Session, o elemento ObjectDefinition só pode conter os elementos Dimension, Cube ou MiningModel de ASSL.

Alterando objetos

Ao modificar objetos usando o método Alter, primeiro você deve identificar o objeto a ser modificado fornecendo uma referência de objeto na propriedade Object do comando Alter. Cada referência de objeto contém os identificadores de objetos necessários para a identificação exclusiva do objeto para o comando Alter. Para obter mais informações sobre referências de objeto, consulte Definindo e identificando objetos (XMLA).

Por exemplo, você deve fornecer uma referência de objeto a um cubo para modificar a sua estrutura. A referência de objeto para o cubo na propriedade Object contém um identificador de banco de dados e um identificador de cubo, já que, potencialmente, o mesmo identificador de cubo poderia ser usado em um banco de dados diferente.

O elemento ObjectDefinition contém elementos da ASSL que definem o objeto principal a ser modificado. Para obter mais informações sobre ASSL, consulte ASSL.

Se você definir o atributo AllowCreate do comando Alter como verdadeiro, poderá criar o um objeto principal especificado caso ele ainda não exista. Caso contrário, ocorrerá um erro se um objeto principal especificado ainda não existir.

Usando o atributo ObjectExpansion

Se você estiver alterando somente as propriedades do objeto principal e se não estiver redefinindo objetos secundários contidos pelo objeto principal, poderá definir o atributo ObjectExpansion do comando Alter como ObjectProperties. A propriedade ObjectDefinition só precisará conter os elementos para as propriedades do objeto principal, e o comando Alter não tocará nos objetos secundários associados ao objeto principal.

Para redefinir objetos secundários para um objeto principal, defina o atributo ObjectExpansion como ExpandFull e a definição de objeto deverá incluir todos os objetos secundários contidos no objeto principal. Se a propriedade ObjectDefinition do comando Alter não incluir explicitamente um objeto secundário contido pelo objeto principal, esse objeto secundário será excluído.

Alterando objetos de sessão

Para modificar objetos de sessão criados pelo comando Create, defina o atributo Scope do comando Alter como Session.

ObservaçãoObservação

Ao usar a configuração Session, o elemento ObjectDefinition só pode conter os elementos Dimension, Cube ou MiningModel de ASSL.

Criando ou alterando objetos subordinados

Embora um comando Create ou Alter crie ou altere somente o objeto principal superior, o objeto principal criado ou modificado poderá conter definições na propriedade de circunscrição ObjectDefinition para outros objetos principais e secundários subordinados a ele. Por exemplo, se você definir um cubo, especificará o banco de dados pai em ParentObject, na definição do cubo em ObjectDefinition, você poderá definir grupos de medidas para o cubo e no grupo de medidas poderá definir partições para cada grupo de medidas. Um objeto secundário só pode ser definido sob o objeto principal que o contém. Para obter mais informações sobre objetos principais e secundários, consulte Objetos de banco de dados (Analysis Services – Dados Multidimensionais).

Exemplos

Descrição

O exemplo a seguir cria uma fonte de dados relacional que referencia o banco de dados de exemplo Adventure Works DW do Microsoft SQL Server.

Código

<Create xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
    <ParentObject>
        <DatabaseID>Adventure Works DW 2008R2</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>Adventure Works DW 2008R2</ID>
            <Name>Adventure Works DW 2008R2</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>

Descrição

O exemplo a seguir altera a fonte de dados relacional criada no exemplo anterior para definir o tempo limite da consulta para a fonte de dados como 30 segundos.

Código

<Alter ObjectExpansion="ObjectProperties" xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
    <Object>
        <DatabaseID>Analysis Services Project1</DatabaseID>
        <DataSourceID>Adventure Works DW2 2008R2</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>Adventure Works DW2 2008R2</ID>
            <Name>Adventure Works DW2 2008R2</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>

Comentários

O atributo ObjectExpansion do comando Alter foi definido como ObjectProperties. Essa configuração permite que o elemento ImpersonationInfo, um objeto secundário, seja excluído da fonte de dados definida em ObjectDefinition. Dessa forma, a informações de representação para aquela fonte de dados permanece definida para a conta de serviço, como especificado no primeiro exemplo.