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

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

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

  • Кубы

  • Базы данных

  • Измерения

  • Группы мер

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

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

  • Секции

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

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

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

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

Значение типа Применимые объекты
ProcessFull Куб, база данных, измерение, группа мер, модель интеллектуального анализа данных, структура интеллектуального анализа данных, секция
ProcessAdd Измерение, секция
ProcessUpdate Измерение
ProcessIndexes Измерение, куб, группа мер, секция
ProcessData Измерение, куб, группа мер, секция
ProcessDefault Куб, база данных, измерение, группа мер, модель интеллектуального анализа данных, структура интеллектуального анализа данных, секция
ProcessClear Куб, база данных, измерение, группа мер, модель интеллектуального анализа данных, структура интеллектуального анализа данных, секция
ProcessStructure Куб, структура интеллектуального анализа данных
ProcessClearStructureOnly Структура интеллектуального анализа данных
ProcessScriptCache Куб

Дополнительные сведения об обработке SQL Server Analysis Services объектов см. в разделе "Обработка многомерной модели (службы Analysis Services)".

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

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

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

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

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

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

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

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

  • Использование задачи потока данных в Microsoft SQL Server Integration Services для предоставления данных при обработке измерения, модели интеллектуального анализа данных или секции.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

Описание

В следующем примере полностью обрабатывается пример многомерной базы данных Adventure Works DW 2012 SQL Server Analysis Services базы данных.

Код

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

Описание

В следующем примере выполняется добавочная обработка секции Internet_Sales_2004 в группе мер "Продажи в Интернете" куба Adventure Works DW в примере Multidimensional 2012 dw SQL Server Analysis Services базе данных Adventure Works. Команда Process добавляет агрегаты для дат заказа позднее 31 декабря 2006 г. в секцию с помощью привязки внестрочного запроса в свойстве Bindings команды Process для получения строк таблицы фактов, из которых создаются агрегаты для добавления в секцию.

Код

<Process ProcessAffectedObjects="true" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">  
  <Object>  
    <DatabaseID>Adventure Works DW Multidimensional 2012</DatabaseID>  
    <CubeID>Adventure Works DW</CubeID>  
    <MeasureGroupID>Fact Internet Sales 1</MeasureGroupID>  
    <PartitionID>Internet_Sales_2006</PartitionID>  
  </Object>  
  <Bindings>  
    <Binding>  
      <DatabaseID>Adventure Works DW Multidimensional 2012</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 > '1280'  
        </QueryDefinition>  
      </Source>  
    </Binding>  
  </Bindings>  
  <Type>ProcessAdd</Type>  
  <WriteBackTableCreation>UseExisting</WriteBackTableCreation>  
</Process>