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


Обработка объектов (XMLA)

В службах MicrosoftSQL ServerAnalysis Services обработка — это шаг или ряд шагов, которые преобразуют данные в сведения для бизнес-анализа. Характеристики обработки меняются в зависимости от типа объекта, но обработка всегда является составной частью процесса преобразования данных в сведения.

Для обработки объекта служб Analysis Services можно воспользоваться командой Process. В экземпляре служб Analysis Services команда Process может обрабатывать следующие объекты:

  • Кубы

  • Databases

  • Dimensions

  • Группы мер

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

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

  • Partitions

Чтобы управлять обработкой объектов у команды Process есть различные свойства, которые можно задавать. Свойства команды Process управляют тем: какой объем обработки будет выполнен, какие объекты будут обработаны, будут ли использоваться внешние привязки, как обрабатываются ошибки, а также как управлять таблицами обратной записи.

Указание параметров обработки

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

В следующей таблице приведены константы для свойства Type, а также различные объекты, которые можно обрабатывать при помощи каждой константы.

Значение Type

Применимые объекты

ProcessFull

Куб, база данных, измерение, группа мер, модель интеллектуального анализа данных, структура интеллектуального анализа данных, секция

ProcessAdd

Измерение, секция

ProcessUpdate

Dimension

ProcessIndexes

Измерение, куб, группа мер, секция

ProcessData

Измерение, куб, группа мер, секция

ProcessDefault

Куб, база данных, измерение, группа мер, модель интеллектуального анализа данных, структура интеллектуального анализа данных, секция

ProcessClear

Куб, база данных, измерение, группа мер, модель интеллектуального анализа данных, структура интеллектуального анализа данных, секция

ProcessStructure

Куб, структура интеллектуального анализа данных

ProcessClearStructureOnly

Структура интеллектуального анализа данных

ProcessScriptCache

Cube

Дополнительные сведения об обработке объектов служб Analysis Services см. в разделе Обработка объектов служб Analysis Services.

Указание объектов для обработки

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

Если атрибуту ProcessAffectedObjects команды Process задать значение TRUE, то все связанные объекты, вовлеченные в обработку указанного объекта, также будут обработаны. Например, если осуществляется добавочное обновление измерения при помощи параметра обработки ProcessUpdate в команде Process, все секции, агрегаты которых становятся недействительными из-за добавления или удаления элементов, также обрабатываются службами Analysis Services, если атрибуту ProcessAffectedObjects задано значение TRUE. В этом случае одна команда Process может обрабатывать несколько объектов в экземпляре служб Analysis Services, при этом службы Analysis Services определяют, какие объекты помимо одного объекта, указанного в команде Process, также должно обрабатываться.

Однако несколько объектов, например измерений, можно обрабатывать одновременно при помощи нескольких команд Process в рамках команды Batch. Пакетные операции позволяют лучше управлять последовательной или параллельной обработкой объектов в экземпляре служб Analysis Services, чем при использовании атрибута ProcessAffectedObjects, они также позволяют подстраивать подход к обработке для более крупных баз данных служб Analysis Services. Дополнительные сведения о выполнении пакетных операций см. в разделе Выполнение пакетных операций (XMLA).

Указание внешних привязок

Если команда Process не содержится в команде Batch, то при необходимости в свойствах Bindings, DataSource и DataSourceView команды Process можно указать внешние привязки для объектов, которые должны быть обработаны. Внешние привязки — это ссылки на источники данных, представления источников данных и другие объекты, в которых привязка существует только во время выполнения команды Process, и которые переопределяют любые существующие привязки, связанные с обрабатываемыми объектами. Если внешние привязки не указаны, используются привязки, связанные в данный момент с обрабатываемыми объектами.

Внешние привязки используются в следующих ситуациях:

  • В случае постепенной обработки секции, в которой должна быть указана альтернативная таблица фактов или фильтр для существующей таблицы фактов с тем, чтобы строки не считались дважды.

  • При использовании в службах MicrosoftSQL ServerIntegration Services задачи потока данных для предоставления данных при обработке измерения, модели интеллектуального анализа данных или секции.

Внешние привязки описаны как часть языка сценариев служб Analysis Services (язык ASSL). Дополнительные сведения о внешних привязках в языке ASSL см. в разделе Источники данных и привязки (службы Analysis Services — многомерные данные).

Добавочное обновление секций

Для добавочного обновления уже обработанной секции обычно требуется внешняя привязка, так как привязка, указанная для этой секции, ссылается на данные таблицы фактов, которые уже были статистически обработаны в рамках данной секции. При выполнении добавочного обновления уже обработанной секции с помощью команды Process службы Analysis Services выполняют следующие действия:

  • Создают временную секцию с такой же структурой, как у секции, добавочное обновление которой необходимо выполнить.

  • Обрабатывают временную секцию при помощи внешней привязки, указанной в команде Process.

  • Объединяют временную секцию с существующей выделенной секцией.

Дополнительные сведения об объединении секций при помощи XML для аналитики (XMLA) см. в разделе Слияние секций (XMLA).

Обработка ошибок

Свойство ErrorConfiguration команды Process позволяет указать способ обработки ошибок, возникающих во время обработки объекта. Например, при обработке измерения службы Analysis Services обнаруживают повторяющиеся значение в ключевом столбце ключевого атрибута. Поскольку ключи атрибутов должны быть уникальны, службы Analysis Services удаляют повторяющиеся записи. исходя из значение свойства KeyDuplicate свойства ErrorConfiguration, службы Analysis Services могут:

  • Пропустить ошибку и продолжить обработку измерения.

  • Возвратить сообщение, указывающее, что службы Analysis Services обнаружили повторяющийся ключ и продолжить обработку.

Существует много схожих условий, для который у свойства ErrorConfiguration имеются параметры при выполнении команды Process.

Управление таблицами обратной записи

Если команда Process обнаруживает секцию, доступную для записи, или куб либо группу мер для такой секции, которые еще не полностью обработаны, таблицы обратной записи для этой секции может еще не существовать. Свойство WritebackTableCreation команды Process определяет, должны ли службы Analysis Services создать таблицу обратной записи.

Примеры

Description

В следующем примере производится полная обработка образца базы данных Adventure Works DW служб Analysis Services.

Код

<Process xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">  <Object>    <DatabaseID>Adventure Works DW</DatabaseID>  </Object>  <Type>ProcessFull</Type>  <WriteBackTableCreation>UseExisting</WriteBackTableCreation></Process>

Description

В следующем примере выполняется постепенная обработка секции Internet_Sales_2004 в группе мер Internet Sales куба Adventure Works DW в образце базы данных Adventure Works DW служб Analysis Services. Команда Process добавляет агрегаты для дат заказов, полученных после 31 декабря 2004 года, в секцию при помощи внешней привязки запроса в свойстве Bindings команды Process, чтобы извлечь строки таблицы фактов, на основе которых будут сформированы агрегаты для добавления в секцию.

Код

<Process ProcessAffectedObjects="true" xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">  <Object>    <DatabaseID>Adventure Works DW</DatabaseID>    <CubeID>Adventure Works DW</CubeID>    <MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>    <PartitionID>Internet_Sales_2004</PartitionID>  </Object>  <Bindings>    <Binding>      <DatabaseID>Adventure Works DW</DatabaseID>      <CubeID>Adventure Works DW</CubeID>      <MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>      <PartitionID>Internet_Sales_2004</PartitionID>      <Source xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="QueryBinding">        <DataSourceID>Adventure Works DW</DataSourceID>        <QueryDefinition>          SELECT            [dbo].[FactInternetSales].[ProductKey],            [dbo].[FactInternetSales].[OrderDateKey],            [dbo].[FactInternetSales].[DueDateKey],            [dbo].[FactInternetSales].[ShipDateKey],             [dbo].[FactInternetSales].[CustomerKey],             [dbo].[FactInternetSales].[PromotionKey],            [dbo].[FactInternetSales].[CurrencyKey],            [dbo].[FactInternetSales].[SalesTerritoryKey],            [dbo].[FactInternetSales].[SalesOrderNumber],            [dbo].[FactInternetSales].[SalesOrderLineNumber],            [dbo].[FactInternetSales].[RevisionNumber],            [dbo].[FactInternetSales].[OrderQuantity],            [dbo].[FactInternetSales].[UnitPrice],            [dbo].[FactInternetSales].[ExtendedAmount],            [dbo].[FactInternetSales].[UnitPriceDiscountPct],            [dbo].[FactInternetSales].[DiscountAmount],            [dbo].[FactInternetSales].[ProductStandardCost],            [dbo].[FactInternetSales].[TotalProductCost],            [dbo].[FactInternetSales].[SalesAmount],            [dbo].[FactInternetSales].[TaxAmt],            [dbo].[FactInternetSales].[Freight],            [dbo].[FactInternetSales].[CarrierTrackingNumber],            [dbo].[FactInternetSales].[CustomerPONumber]          FROM [dbo].[FactInternetSales]          WHERE OrderDateKey &gt; '1280'        </QueryDefinition>      </Source>    </Binding>  </Bindings>  <Type>ProcessAdd</Type>  <WriteBackTableCreation>UseExisting</WriteBackTableCreation></Process>