Поделиться через


Создание и изменение объектов (XMLA)

Основные объекты можно создавать, изменять и удалять независимо. Основные объекты включают следующие объекты:

  • Серверы

  • Базы данных

  • Измерения

  • Кубы

  • Группы мер

  • Секции

  • Перспективы

  • Модели интеллектуального анализа данных

  • Роли

  • Команды, связанные с сервером или базой данных

  • Источники данных

Команда Create используется для создания основного объекта в экземпляре служб Microsoft SQL Server Службы Analysis Services, а команда Alter — для изменения основного объекта, существующего в экземпляре. Обе команды запускаются при помощи метода Execute.

Создание объектов

Объекты можно создавать при помощи метода Create; для этого сначала необходимо определить родительский объект, содержащий объект служб Службы Analysis Services, который должен быть создан. Родительский объект определяется путем указания ссылки объекта в свойстве ParentObject команды Create. Каждая ссылка объекта содержит идентификаторы объекта, необходимые, чтобы идентифицировать родительский объект для команды Create уникальным образом. Дополнительные сведения о ссылках на объекты см. в разделе Определение и идентификация объектов (XMLA).

Например, следует указать ссылку объекта на куб, чтобы создать новую группу мер для этого куба. Ссылка на объект для куба в свойстве ParentObject содержит идентификатор базы данных и идентификатор куба, поскольку тот же идентификатор куба может использоваться в другой базе данных.

Элемент ObjectDefinition содержит элементы языка ASSL, которые определяют создаваемый основной объект. Дополнительные сведения о ASSL см. в разделе ASSL.

Если атрибуту AllowOverwrite команды Create задать значение TRUE, можно переписать существующий основной объект, имеющий указанный идентификатор. В противном случае, если основной объект с указанным идентификатором уже существует в родительском объекте, возникает ошибка.

Дополнительные сведения о команде Create см. в разделе Элемент Create (XML для аналитики).

Создание объектов сеанса

Объекты сеанса — это временные объекты, доступные только для явных или неявных сеансов, которые используются клиентским приложением и удаляются по завершении сеанса. Объект сеанса можно создать, присвоив атрибуту Scope команды Create значение Session.

ПримечаниеПримечание

При использовании параметра Session элемент ObjectDefinition может содержать только следующие элементы языка ASSL: Dimension, Cube или MiningModel.

Изменение объектов

При изменении объектов с помощью метода Alter сначала нужно определить объект для изменения, указав ссылку объекта в свойстве Object команды Alter. Каждая ссылка объекта содержит идентификаторы объекта, необходимые, чтобы уникальным образом идентифицировать объект для команды Alter. Дополнительные сведения о ссылках на объекты см. в разделе Определение и идентификация объектов (XMLA).

Например, чтобы изменить структуру куба, необходимо указать ссылку объекта на куб. Ссылка на объект для куба в свойстве Object содержит идентификатор базы данных и идентификатор куба, поскольку тот же идентификатор куба может использоваться в другой базе данных.

Элемент ObjectDefinition содержит элементы языка ASSL, определяющие основной объект, которые должен быть изменен. Дополнительные сведения о ASSL см. в разделе ASSL.

Если атрибуту AllowCreate команды Alter задать значение TRUE, можно создать указанный основной объект, если он не существует. В противном случае, если указанный основной объект еще не существует, возникает ошибка.

Использование атрибута ObjectExpansion

Если изменяются только свойства основного объекта без переопределения второстепенных объектов, содержащихся в нем, атрибуту ObjectExpansion команды Alter можно задать значение ObjectProperties. В этом случае свойство ObjectDefinition должно содержать только элементы для свойств основного объекта, а команда Alter оставляет второстепенные объекты, ассоциированные с основным объектом, без изменений.

Чтобы переопределить второстепенные объекты для основного объекта, атрибуту ObjectExpansion необходимо присвоить значение ExpandFull, а в определение объекта должны быть включены все второстепенные объекты, содержащиеся в основном объекте. Если в свойство ObjectDefinition команды Alter явно не включен второстепенный объект, содержащийся в основном объекте, то не указанный в нем второстепенный объект удаляется.

Изменение объектов сеанса

Чтобы изменить объекты сеанса, созданные командой Create, атрибуту Scope команды Alter присвойте значение Session.

ПримечаниеПримечание

При использовании параметра Session элемент ObjectDefinition может содержать только следующие элементы языка ASSL: Dimension, Cube или MiningModel.

Создание или изменение подчиненных объектов

Хотя команда Create или Alter создает или изменяет только один самый верхний основной объект, создаваемый или изменяемый основной объект может содержать во включающем свойстве ObjectDefinition определения для других основных или второстепенных объектов, которые ему подчинены. Например, при определении куба родительская база данных указывается в свойстве ParentObject, тогда как в рамках определения куба в свойстве ObjectDefinition можно определить группы мер для куба, а в рамках групп мер — определить секции для каждой группы мер. Второстепенный объект можно определить только в содержащем его основном объекте. Дополнительные сведения об основных и второстепенных объектах см. в разделе Объекты баз данных (службы Analysis Services — многомерные данные).

Примеры

Описание

В следующем примере создается реляционный источник данных, который ссылается на образец базы данных Microsoft SQL Server Adventure Works DW.

Код

<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>

Описание

В следующем примере реляционный источник данных, созданный в предыдущем примере, изменяется путем задания времени ожидания запроса для источника данных, равного 30 секундам.

Код

<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>

Комментарии

Атрибуту ObjectExpansion команды Alter было задано значение ObjectProperties. Благодаря этому параметру элемент ImpersonationInfo, т. е. второстепенный объект, можно исключить из источника данных, определенного в атрибуте ObjectDefinition. Поэтому в качестве данных об олицетворении для этого источника данных остается заданной учетная запись службы, как указано в первом примере.