Compartir a través de


Procesar objetos (XMLA)

En Microsoft SQL Server Analysis Services, el procesamiento es el paso o 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 objeto de Analysis Services, puede usar el comando Process . El Process comando puede procesar los siguientes objetos en una instancia de Analysis Services:

  • 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 los objetos, pueden establecerse diversas propiedades del comando Process. El comando Process tiene propiedades para controlar: qué cantidad de procesamiento se va a realizar, qué objetos se van a procesar, si se van a utilizar o no enlaces fuera de línea, cómo controlar los errores y cómo administrar las tablas de reescritura.

Especificar opciones de procesamiento

La propiedad Type del Process comando especifica la opción de procesamiento que se va a 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 para la propiedad Type y los diversos objetos que se pueden procesar con cada una de las constantes.

Valor de Type 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 de objetos de Analysis Services, vea Procesamiento de objetos del modelo multidimensional.

Especificar los objetos que se van a procesar

La propiedad Object del Process comando contiene el identificador de objeto del objeto que se va a procesar. En un comando Process solamente puede especificarse un objeto, si bien al procesar un objeto también se procesan sus objetos secundarios. 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 procesa 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 en el Process comando , cualquier partición cuyas agregaciones se invalidan debido a que Analysis Services ProcessAffectedObjects también procesa o elimina los miembros si se establece en true. En este caso, un único Process comando puede procesar varios objetos en una instancia de Analysis Services, pero Analysis Services determina qué objetos además del único objeto especificado en el Process comando también se deben procesar.

No obstante, puede procesar diversos objetos (como dimensiones) al mismo tiempo si utiliza 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 con el atributo y permiten optimizar el ProcessAffectedObjects 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 un comando no contiene Batch el Process comando, opcionalmente puede especificar enlaces fuera de línea en las propiedades Bindings, DataSource y DataSourceView del Process comando para que los objetos se procesen. Los enlaces fuera de línea son referencias a orígenes de datos, vistas del origen de datos y otros objetos en los que el enlace existe solamente durante la ejecución del comando Process y que invalidan cualquier enlace existente asociado 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 en 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 Orígenes de datos y enlaces (SSAS multidimensionales).

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 Process comando , 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, utilizando 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 Combinación de particiones (XMLA).

Controlar los errores de procesamiento

La propiedad ErrorConfiguration del Process comando 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 que Analysis Services encontró una clave duplicada y continúa el procesamiento.

Hay muchas condiciones similares para las que ErrorConfiguration proporciona opciones durante la ejecución de un comando Process.

Administrar tablas de reescritura

Si el comando Process encuentra una partición habilitada para escritura (o un cubo o grupo de medida para este tipo de partición) que aún no se haya procesado por completo, puede que aún no exista una tabla de reescritura para esa partición. La propiedad WritebackTableCreation del Process comando determina si Analysis Services debe crear una tabla de reescritura.

Ejemplos

Descripción

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

Código

<Process xmlns="https://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 en la base de datos de Analysis Services de ejemplo Adventure Works DW 2012. El Process comando agrega 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 Bindings propiedad del Process comando para recuperar las filas de la tabla de hechos de las que se van a generar agregaciones para agregar a la partición.

Código

<Process ProcessAffectedObjects="true" xmlns="https://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>