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
Cubes
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
Use o comando Criar 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 usando o método Execute .
Criando objetos
Ao criar objetos usando o Create
método , primeiro você deve identificar o objeto pai que contém o objeto Analysis Services a ser criado. Identifique o objeto pai fornecendo uma referência de objeto na propriedade ParentObject do Create
comando. 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 ASSL (Analysis Services Scripting Language) que definem o objeto principal a ser criado. Para obter mais informações sobre ASSL, consulte Desenvolvendo com o ASSL (Analysis Services Scripting Language).
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 Create
comando, 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 Scope
atributo do Create
comando como Sessão.
Observação
Ao usar a configuração Sessão , o ObjectDefinition
elemento só pode conter elementos ASSL Dimension, Cube ou MiningModel .
Alterando objetos
Ao modificar objetos usando o Alter
método , primeiro você deve identificar o objeto a ser modificado fornecendo uma referência de objeto na propriedade Object do Alter
comando . 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 Desenvolvendo com o ASSL (Analysis Services Scripting Language).
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 apenas as propriedades do objeto principal e não estiver redefinindo objetos secundários contidos no objeto principal, poderá definir o ObjectExpansion
atributo do Alter
comando 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, você deve definir o ObjectExpansion
atributo como ExpandFull e a definição de objeto deve 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 Create
comando, defina o Scope
atributo do Alter
comando como Session.
Observação
Ao usar a configuração Sessão , o ObjectDefinition
elemento só pode conter elementos ASSL Dimension, Cube ou MiningModel .
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 faz referência ao banco de dados microsoft SQL Server de exemplo do Adventure Works DW Multidimensional 2012.
Código
<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>
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>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>
Comentários
O ObjectExpansion
atributo do Alter
comando 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.
Consulte Também
Método Execute (XMLA)
Desenvolvendo com ASSL (linguagem de script do Analysis Services)
Desenvolvendo com XMLA no Analysis Services