Crear y modificar objetos (XMLA)
Los objetos principales se pueden crear, modificar y eliminar de forma independiente. Entre los objetos principales se incluyen los siguientes:
Servidores
Bases de datos
Dimensions
Cubos
Grupos de medida
Particiones
Perspectivas
Modelos de minería de datos
Roles
Comandos asociados a un servidor o base de datos
Orígenes de datos
Use el comando Create para crear un objeto principal en una instancia de Microsoft SQL Server SQL Server Analysis Services y el comando Alter para modificar un objeto principal existente en una instancia de . Ambos comandos se ejecutan mediante el método Execute .
Crear objetos
Al crear objetos mediante el método Create, primero debe identificar el objeto primario que contiene el objeto SQL Server Analysis Services que se va a crear. Para identificar el objeto primario, proporcione una referencia de objeto en la propiedad ParentObject del comando Create . Cada referencia de objeto contiene los identificadores de objeto necesarios para identificar de forma única el objeto primario para el comando Create . Para obtener más información sobre las referencias de objetos, vea Definición e identificación de objetos (XMLA).
Por ejemplo, debe proporcionar una referencia de objeto a un cubo para crear un nuevo grupo de medida para el cubo. La referencia de objeto para el cubo de la propiedad ParentObject contiene un identificador de base de datos y un identificador de cubo, ya que el mismo identificador de cubo podría usarse en una base de datos diferente.
El elemento ObjectDefinition contiene elementos de Analysis Services Scripting Language (ASSL) que definen el objeto principal que se va a crear. Para obtener más información sobre ASSL, vea Developing with Analysis Services Scripting Language (ASSL).
Si establece el atributo AllowOverwrite del comando Create en true, puede sobrescribir un objeto principal existente que tenga el identificador especificado. De lo contrario, si ya existe un objeto principal con el identificador especificado en el objeto primario, se produce un error.
Para obtener más información sobre el comando Create , vea Create Element (XMLA).
Crear objetos de sesión
Los objetos de sesión son objetos temporales que solo están disponibles para la sesión explícita o implícita utilizada por una aplicación cliente y que se eliminan cuando finaliza la sesión. Puede crear objetos de sesión estableciendo el atributo Scope del comando Create en Session.
Nota
Cuando se usa la configuración Session , el elemento ObjectDefinition solo puede contener elementos Dimension, Cube o MiningModel ASSL.
Modificar objetos
Al modificar objetos mediante el método Alter , primero debe identificar el objeto que se va a modificar proporcionando una referencia de objeto en la propiedad Object del comando Alter . Cada referencia de objeto contiene los identificadores de objeto necesarios para identificar de forma única el objeto del comando Alter . Para obtener más información sobre las referencias de objetos, vea Definición e identificación de objetos (XMLA).
Por ejemplo, debe proporcionar una referencia de objeto a un cubo para modificar la estructura de un cubo. La referencia de objeto para el cubo de la propiedad Object contiene un identificador de base de datos y un identificador de cubo, ya que el mismo identificador de cubo podría usarse en una base de datos diferente.
El elemento ObjectDefinition contiene elementos ASSL que definen el objeto principal que se va a modificar. Para obtener más información sobre ASSL, vea Developing with Analysis Services Scripting Language (ASSL).
Si establece el atributo AllowCreate del comando Alter en true, puede crear el objeto principal especificado si el objeto no existe. De lo contrario, si un objeto principal especificado no existe aún, se produce un error.
Utilizar el atributo ObjectExpansion
Si solo cambia las propiedades del objeto principal y no está redefiniendo los objetos secundarios contenidos en el objeto principal, puede establecer el atributo ObjectExpansion del comando Alter en ObjectProperties. La propiedad ObjectDefinition solo tiene que contener los elementos de las propiedades del objeto principal y el comando Alter deja los objetos secundarios asociados al objeto principal sin modificar.
Para redefinir los objetos secundarios de un objeto principal, debe establecer el atributo ObjectExpansion en ExpandFull y la definición de objeto debe incluir todos los objetos secundarios contenidos en el objeto principal. Si la propiedad ObjectDefinition del comando Alter no incluye explícitamente un objeto secundario incluido en el objeto principal, se elimina el objeto secundario que no se incluyó.
Modificar objetos de sesión
Para modificar los objetos de sesión creados por el comando Create , establezca el atributo Scope del comando Alter en Session.
Nota
Cuando se usa la configuración Session , el elemento ObjectDefinition solo puede contener elementos Dimension, Cube o MiningModel ASSL.
Crear o modificar objetos subordinados
Aunque un comando Create o Alter crea o modifica solo un objeto principal superior, el objeto principal que se crea o modifica puede contener definiciones dentro de la propiedad ObjectDefinition envolvente para otros objetos principales y secundarios que están subordinados a él. Por ejemplo, si define un cubo, especifica la base de datos primaria en ParentObject y, dentro de la definición de cubo de ObjectDefinition , puede definir grupos de medida para el cubo y, dentro de los grupos de medida, puede definir particiones para cada grupo de medida. Un objeto secundario solamente se puede definir bajo el objeto principal que lo contiene. Para obtener más información sobre los objetos principales y secundarios, vea Objetos de base de datos (Analysis Services - Datos multidimensionales) .
Ejemplos
Descripción
En el ejemplo siguiente se crea un origen de datos relacional que hace referencia al ejemplo Adventure Works DW Multidimensional 2012 de Microsoft SQL Server base de datos.
Código
<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>
Descripción
En el ejemplo siguiente se modifica el origen de datos relacional creado en el ejemplo anterior para establecer en 30 segundos el tiempo de espera de consulta para el origen de datos.
Código
<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>
Comentarios
El atributo ObjectExpansion del comando Alter se estableció en ObjectProperties. Esta configuración permite que el elemento ImpersonationInfo , un objeto secundario, se excluya del origen de datos definido en ObjectDefinition. Por lo tanto, la información de suplantación de ese origen de datos permanece activa en la cuenta de servicio, como se especifica en el primer ejemplo.
Consulte también
Método Execute (XMLA)
Desarrollar aplicaciones con Analysis Services Scripting Language (ASSL)
Desarrollar con XMLA en Analysis Services