Compartilhar via


Processando objetos (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 será diferente dependendo do tipo de objeto, mas sempre fará parte da transformaçã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:

  • Cubes

  • 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 comando Process tem várias propriedades que podem ser definidas. O comando Process tem propriedades que controlam: quanto processamento será feito, que objetos serão processados, se as associações fora de linha serão usadas, como manipular 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 para a propriedade Type e os vários objetos que podem ser processados usando cada constante.

Type valor 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. Somente um objeto pode ser especificado em um comando Process, mas processar um objeto também processará qualquer objeto filho. Por exemplo, o processamento de um grupo de medidas em um cubo processará todas as partições desse grupo de medidas, enquanto que o processamento de um banco de dados processará todos os objetos, incluindo cubos, dimensões e estruturas de mineração, contidos nele.

Se você definir o atributo ProcessAffectedObjects do comando Process como verdadeiro, 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 são invalidadas devido a membros que estão sendo adicionados ou excluídos também será processada pelo Analysis Services se ProcessAffectedObjects estiver 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.

Porém, você pode processar vários objetos, como as dimensões, ao mesmo tempo usando vários comandos Process dentro de um comando Batch. 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 ajustar sua abordagem de processamento para bancos de dados do Analysis Services maiores. Para obter mais informações sobre como executar operações em lote, consulte Executando operações em lote (XMLA).

Especificando associações fora de linha

Se o Process comando não estiver contido por um Batch comando, opcionalmente, você poderá especificar associações fora de linha nas propriedades Bindings, DataSource e DataSourceView do Process comando para os objetos a serem processados. As 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 só existe durante a execução do comando Process e que substitui qualquer associação associada aos objetos processados. Se associações fora de linha não forem especificadas, serão usadas as associações atualmente associadas aos objetos a serem processados.

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

  • No processamento incremental de uma partição, no qual uma tabela de fatos alternativa ou um filtro da tabela de fatos existente deve ser especificado para garantir que as linhas não sejam contadas duas vezes.

  • Usar 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 (Analysis Services Scripting Language). Para obter mais informações sobre associações fora de linha no ASSL, consulte Fontes de dados e associações (SSAS multidimensional).

Atualizando partições incrementalmente

Atualizar incrementalmente uma partição já processada normalmente exige uma associação fora de linha, já que a associação especificada para a partição faz referência aos dados da tabela de fatos já agregados na 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 comando Process.

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

Para obter mais informações sobre como mesclar partições usando XMLA (XML for Analysis), consulte Mesclando partições (XMLA).

Manipulando erros de processamento

A propriedade ErrorConfiguration do Process comando permite que você especifique como lidar com erros encontrados durante o 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 do ErrorConfiguration, o Analysis Services pode:

  • Ignorar o erro e continuar o processamento da dimensão.

  • Retornar uma mensagem informando que o Analysis Services encontrou uma chave duplicada e continuar o processamento.

Existem muitas condições semelhantes para as quais ErrorConfiguration oferece opções durante um comando Process.

Gerenciando tabelas de write-back

Se o comando Process encontrar uma partição de write-back, ou um cubo ou um grupo de medidas para essa partição, ela não será totalmente processada, pois pode ainda não haver uma tabela de write-back para ela. 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 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 Adventure Works DW no banco de dados adventure works dw multidimensional 2012 analysis services de exemplo. 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>