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


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

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

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

  • Кубы

  • Базы данных

  • Измерения

  • Группы мер

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

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

  • Секции

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

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

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

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

Значение Type

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

ProcessFull

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

ProcessAdd

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

ProcessUpdate

Измерение

ProcessIndexes

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

ProcessData

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

ProcessDefault

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

ProcessClear

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

ProcessStructure

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

ProcessClearStructureOnly

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

ProcessScriptCache

Куб

Дополнительные сведения об обработке объектов служб Службы 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 и которые переопределяют любые существующие привязки, связанные с обрабатываемыми объектами. Если внешние привязки не указаны, используются привязки, связанные в данный момент с обрабатываемыми объектами.

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

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

  • При использовании в службах Microsoft SQL Server Integration 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 создавать таблицу обратной записи.

Примеры

Описание

В следующем примере производится полная обработка образца базы данных 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>

Описание

В следующем примере выполняется постепенная обработка секции Internet_Sales_2004 в группе мер Internet Sales куба Adventure Works DW из образца базы данных Adventure Works DW служб Службы Analysis Services. Команда Process добавляет в секцию агрегаты для дат заказов, полученных после 31 декабря 2006 года, извлекая при помощи внешней привязки запроса в свойстве 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_2006</PartitionID>
  </Object>
  <Bindings>
    <Binding>
      <DatabaseID>Adventure Works DW</DatabaseID>
      <CubeID>Adventure Works DW</CubeID>
      <MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>
      <PartitionID>Internet_Sales_2006</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>