Partilhar via


Objetos de processamento (XMLA)

No Microsoft SQL Server Analysis Services, o processamento é a etapa ou série de etapas que transformam dados em informações para análise de negócios. O processamento é diferente dependendo do tipo de objeto, mas o processamento sempre faz parte da conversão de dados em informações.

Para processar um objeto do Analysis Services, você pode usar o comando Process . O Process comando pode processar os seguintes objetos em uma instância do Analysis Services:

  • Cubos

  • Bancos de dados

  • Dimensões

  • Grupos de medidas

  • Modelos de mineração

  • Estruturas de mineração

  • Partições

Para controlar o processamento de objetos, o Process comando tem várias propriedades que podem ser definidas. O Process comando tem propriedades que controlam: quanto processamento será feito, quais objetos serão processados, se devem usar associações fora de linha, como lidar com erros e como gerenciar tabelas de write-back.

Especificando opções de processamento

A propriedade Type do Process comando especifica a opção de processamento a ser usada ao processar o objeto. Para obter mais informações sobre opções de processamento, consulte Opções e Configurações de Processamento (Analysis Services).

A tabela a seguir lista as constantes da Type propriedade e os vários objetos que podem ser processados usando cada constante.

Valor Type Objetos aplicáveis
ProcessFull Cubo, banco de dados, dimensão, grupo de medidas, modelo de mineração, estrutura de mineração, partição
ProcessAdd Dimensão, partição
ProcessUpdate Dimensão
ProcessIndexes Dimensão, cubo, grupo de medidas, partição
ProcessData Dimensão, cubo, grupo de medidas, partição
ProcessDefault Cubo, banco de dados, dimensão, grupo de medidas, modelo de mineração, estrutura de mineração, partição
ProcessClear Cubo, banco de dados, dimensão, grupo de medidas, modelo de mineração, estrutura de mineração, partição
ProcessStructure Cubo, estrutura de mineração
ProcessClearStructureOnly Estrutura de mineração
ProcessScriptCache Cubo

Para obter mais informações sobre como processar objetos do Analysis Services, consulte Processamento de objeto de modelo multidimensional.

Especificando objetos a serem processados

A propriedade Object do Process comando contém o identificador de objeto do objeto a ser processado. Apenas um objeto pode ser especificado em um Process comando, mas o processamento de um objeto também processa objetos filho. Por exemplo, o processamento de um grupo de medidas em um cubo processa todas as partições desse grupo de medidas, enquanto o processamento de um banco de dados processa todos os objetos, incluindo cubos, dimensões e estruturas de mineração, contidos no banco de dados.

Se você definir o ProcessAffectedObjects atributo do Process comando como true, qualquer objeto relacionado afetado pelo processamento do objeto especificado também será processado. Por exemplo, se uma dimensão for atualizada incrementalmente usando a opção de processamento ProcessUpdate no Process comando, qualquer partição cujas agregações serão invalidadas devido a membros que estão sendo adicionados ou excluídos também será processada pelo Analysis Services se ProcessAffectedObjects for definida como true. Nesse caso, um único Process comando pode processar vários objetos em uma instância do Analysis Services, mas o Analysis Services determina quais objetos além do único objeto especificado no Process comando também devem ser processados.

No entanto, você pode processar vários objetos, como dimensões, ao mesmo tempo usando vários Process comandos dentro de um Batch comando. As operações em lote fornecem um nível mais fino de controle para processamento serial ou paralelo de objetos em uma instância do Analysis Services do que o uso do ProcessAffectedObjects atributo e permitem que você ajuste sua abordagem de processamento para bancos de dados do Analysis Services maiores. Para obter mais informações sobre como executar operações em lotes, consulte a execução de XMLA (Operações em Lote).

Especificando associações fora de linha

Se o Process comando não estiver contido por um Batch comando, você poderá, opcionalmente, especificar associações fora de linha nas propriedades Bindings, DataSource e DataSourceView do Process comando para que os objetos sejam processados. Associações fora de linha são referências a fontes de dados, exibições de fonte de dados e outros objetos nos quais a associação existe somente durante a execução do Process comando e que substituem as associações existentes associadas aos objetos que estão sendo processados. Se as associações fora de linha não forem especificadas, as associações atualmente associadas aos objetos a serem processados serão usadas.

As associações fora de linha são usadas nas seguintes circunstâncias:

  • Processando incrementalmente uma partição, na qual uma tabela de fatos alternativa ou um filtro na tabela de fatos existente deve ser especificada para garantir que as linhas não sejam contadas duas vezes.

  • Usando uma tarefa de fluxo de dados no Microsoft SQL Server Integration Services para fornecer dados durante o processamento de uma dimensão, modelo de mineração ou partição.

As associações fora de linha são descritas como parte da ASSL (Linguagem de Script do Analysis Services). Para obter mais informações sobre associações fora de linha no ASSL, consulte Fontes de Dados e Associações (SSAS Multidimensional).

Atualizando incrementalmente partições

Atualizar incrementalmente uma partição já processada normalmente requer uma associação fora de linha porque a associação especificada para a partição faz referência aos dados da tabela de fatos já agregados dentro da partição. Ao atualizar incrementalmente uma partição já processada usando o comando, o Process Analysis Services executa as seguintes ações:

  • Cria uma partição temporária com uma estrutura idêntica à da partição a ser atualizada incrementalmente.

  • Processa a partição temporária usando a associação fora de linha especificada no Process comando.

  • Mescla a partição temporária com a partição selecionada existente.

Para obter mais informações sobre a mesclagem de partições usando XMLA (XML for Analysis), consulte Mesclagem de partições (XMLA).

Manipulando erros de processamento

A propriedade ErrorConfiguration do comando permite que você especifique como lidar com erros encontrados durante o Process processamento de um objeto. Por exemplo, ao processar uma dimensão, o Analysis Services encontra um valor duplicado na coluna de chave do atributo de chave. Como as chaves de atributo devem ser exclusivas, o Analysis Services descarta os registros duplicados. Com base na propriedade KeyDuplicate de ErrorConfiguration, o Analysis Services poderia:

  • Ignore o erro e continue processando a dimensão.

  • Retorne uma mensagem informando que o Analysis Services encontrou uma chave duplicada e continua o processamento.

Há muitas condições semelhantes para as quais ErrorConfiguration fornece opções durante um Process comando.

Gerenciando tabelas de write-back

Se o Process comando encontrar uma partição habilitada para gravação ou um cubo ou grupo de medidas para essa partição, que ainda não esteja totalmente processada, uma tabela de write-back poderá ainda não existir para essa partição. A propriedade WritebackTableCreation do comando determina se o Process Analysis Services deve criar uma tabela de write-back.

Exemplos

Descrição

O exemplo a seguir processa totalmente o banco de dados de exemplo do Adventure Works DW Multidimensional 2012 Analysis Services.

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>  

Descrição

O exemplo a seguir processa incrementalmente a partição Internet_Sales_2004 no grupo de medidas vendas pela Internet do cubo DW adventure works no banco de dados de exemplo Adventure Works DW Multidimensional 2012 Analysis Services. O Process comando está adicionando agregações para datas de pedido posteriores a 31 de dezembro de 2006 à partição usando uma associação de consulta fora de linha na Bindings propriedade do Process comando para recuperar as linhas da tabela de fatos das quais gerar agregações para adicionar à partição.

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>