Procesar objetos (XMLA)

En Microsoft SQL Server Analysis Services, el procesamiento es el paso o la serie de pasos que convierten los datos en información para el análisis empresarial. El procesamiento varía en función del tipo de objeto, pero siempre forma parte de la conversión de datos en información.

Para procesar un Analysis Services, puede usar el comando Process. El comando Process puede procesar los siguientes objetos en una Analysis Services de datos:

  • Cubos

  • Bases de datos

  • Dimensions

  • Grupos de medida

  • Modelos de minería de datos

  • Estructuras de minería de datos

  • Particiones

Para controlar el procesamiento de objetos, el comando Process tiene varias propiedades que se pueden establecer. El comando Process tiene propiedades que controlan: cuánto procesamiento se realizará, qué objetos se procesarán, si usar enlaces fuera de línea, cómo controlar errores y cómo administrar tablas de reescribición.

Especificar opciones de procesamiento

La propiedad Type del comando Process especifica la opción de procesamiento que se usará al procesar el objeto. Para obtener más información sobre las opciones de procesamiento, vea Opciones de procesamiento y Configuración (Analysis Services)).

En la tabla siguiente se enumeran las constantes de la propiedad Type y los distintos objetos que se pueden procesar mediante cada constante.

Valor de tipo Objetos aplicables
ProcessFull Cubo, base de datos, dimensión, grupo de medida, modelo de minería de datos, estructura de minería de datos, partición
ProcessAdd Dimensión, partición
ProcessUpdate Dimensión
ProcessIndexes Dimensión, cubo, grupo de medida, partición
ProcessData Dimensión, cubo, grupo de medida, partición
ProcessDefault Cubo, base de datos, dimensión, grupo de medida, modelo de minería de datos, estructura de minería de datos, partición
ProcessClear Cubo, base de datos, dimensión, grupo de medida, modelo de minería de datos, estructura de minería de datos, partición
ProcessStructure Cubo, estructura de minería de datos
ProcessClearStructureOnly Estructura de minería de datos
ProcessScriptCache Cubo

Para obtener más información sobre el procesamiento Analysis Services objetos, vea Procesamiento de un modelo multidimensional (Analysis Services)..

Especificar los objetos que se van a procesar

La propiedad Object del comando Process contiene el identificador de objeto del objeto que se va a procesar. Solo se puede especificar un objeto en un comando Process , pero el procesamiento de un objeto también procesa cualquier objeto secundario. Por ejemplo, al procesar un grupo de medida de un cubo se procesan todas las particiones de dicho grupo de medida, mientras que al procesar una base de datos se procesan todos los objetos contenidos en ésta (incluidos los cubos, las dimensiones y las estructuras de minería de datos).

Si establece el atributo ProcessAffectedObjects del comando Process en true, también se procesará cualquier objeto relacionado afectado por el procesamiento del objeto especificado. Por ejemplo, si una dimensión se actualiza incrementalmente mediante la opción de procesamiento ProcessUpdate del comando Process , las particiones cuyas agregaciones se invalidan debido a miembros que se agregan o eliminan también se procesan mediante Analysis Services si ProcessAffectedObjects está establecido en true. En este caso, un único comando Process puede procesar varios objetos en una instancia de Analysis Services, pero Analysis Services determina qué objetos además del único objeto especificado en el comando Process también se deben procesar.

Sin embargo, puede procesar varios objetos, como dimensiones, al mismo tiempo mediante el uso de varios comandos Process dentro de un comando batch . Las operaciones por lotes proporcionan un nivel de control más preciso para el procesamiento en serie o paralelo de objetos en una instancia de Analysis Services que el uso del atributo ProcessAffectedObjects , y permiten ajustar el enfoque de procesamiento para bases de datos de Analysis Services más grandes. Para obtener más información sobre cómo realizar operaciones por lotes, vea Realizar operaciones por lotes (XMLA).

Especificar enlaces fuera de línea

Si el comando Process no está contenido en un comando de Batch , opcionalmente puede especificar enlaces fuera de línea en las propiedades Bindings, DataSource y DataSourceView del comando Process para los objetos que se procesarán. Los enlaces fuera de línea son referencias a orígenes de datos, vistas de origen de datos y otros objetos en los que el enlace solo existe durante la ejecución del comando Process y que invalidan los enlaces existentes asociados a los objetos que se procesan. Si no se especifican enlaces fuera de línea, se utilizan los enlaces actualmente asociados a los objetos que se van a procesar.

Los enlaces fuera de línea se utilizan en las circunstancias siguientes:

  • Procesamiento incremental de una partición, donde debe especificarse una tabla de hechos alternativa o aplicarse un filtro a la tabla de hechos existente para asegurarse de que las filas no se cuentan dos veces.

  • Usar una tarea de flujo de datos Microsoft SQL Server Integration Services para proporcionar datos al procesar una dimensión, un modelo de minería de datos o una partición.

Los enlaces fuera de línea se describen como parte de Analysis Services Scripting Language (ASSL). Para obtener más información sobre los enlaces fuera de línea en ASSL, vea Data Sources and Bindings (SSAS Multidimensional).

Actualizar particiones de forma incremental

La actualización incremental de una partición ya procesada suele requerir un enlace fuera de línea, ya que el enlace especificado para la partición hace referencia a datos de la tabla de hechos ya agregados en la partición. Al actualizar incrementalmente una partición ya procesada mediante el comando Process , Analysis Services realiza las siguientes acciones:

  • Crea una partición temporal con una estructura idéntica a la de la partición que se va a actualizar incrementalmente.

  • Procesa la partición temporal mediante el enlace fuera de línea especificado en el comando Process.

  • Mezcla la partición temporal con la partición existente seleccionada.

Para obtener más información sobre cómo combinar particiones mediante XML for Analysis (XMLA), vea Combinar particiones (XMLA).

Controlar los errores de procesamiento

La propiedad ErrorConfiguration del comando Process permite especificar cómo controlar los errores detectados durante el procesamiento de un objeto. Por ejemplo, al procesar una dimensión, Analysis Services encuentra un valor duplicado en la columna de clave del atributo de clave. Dado que las claves de atributo deben ser únicas, Analysis Services descarta los registros duplicados. En función de la propiedad KeyDuplicate de ErrorConfiguration, Analysis Services podría:

  • Omitir el error y continuar el procesamiento de la dimensión.

  • Devuelve un mensaje que indica Analysis Services una clave duplicada y continuar el procesamiento.

Hay muchas condiciones similares para las que ErrorConfiguration proporciona opciones durante un comando Process .

Administrar tablas de reescritura

Si el comando Process encuentra una partición habilitada para escritura o un cubo o un grupo de medida para dicha partición, que aún no está totalmente procesada, es posible que no exista ya una tabla de reescribir para esa partición. La propiedad WritebackTableCreation del comando Process determina si Analysis Services crear una tabla de reescribición.

Ejemplos

Descripción

En el ejemplo siguiente se procesa completamente el ejemplo de Adventure Works DW 2012 Analysis Services base de datos.

Código

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

Descripción

En el ejemplo siguiente se procesa incrementalmente la partición Internet_Sales_2004 en el grupo de medida Internet Sales del cubo Adventure Works DW del ejemplo adventure works DW 2012 Analysis Services base de datos. El comando Process agrega agregaciones para las fechas de pedido posteriores al 31 de diciembre de 2006 a la partición mediante un enlace de consulta fuera de línea en la propiedad Bindings del comando Process para recuperar las filas de la tabla de hechos a partir de las cuales se generan agregaciones para agregar a la partición.

Código

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