Partilhar via


Modificação de dados MDX - Usando escritas de volta em cubo

Aplica-se a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Atualiza um cubo usando a instrução UPDATE CUBE . Esta instrução permite-lhe atualizar uma tupla com um valor específico. Para usar eficazmente a instrução UPDATE CUBE para atualizar um cubo, é preciso compreender a sintaxe da instrução, as condições de erro que podem ocorrer e o efeito que as atualizações podem ter num cubo.

Sintaxe da Declaração UPDATE CUBE

A seguinte sintaxe descreve a instrução UPDATE CUBE:

UPDATE [CUBE] <Cube_Name> SET <tuple>.VALUE = <value> [,<tuple>.VALUE = <value>...]  
 [ USE_EQUAL_ALLOCATION | USE_EQUAL_INCREMENT |  
  USE_WEIGHTED_ALLOCATION [BY <weight value_expression>] |  
  USE_WEIGHTED_INCREMENT [BY <weight value_expression>] ]   

Se não for especificado um conjunto completo de coordenadas para a tupla, as coordenadas não especificadas usarão o membro padrão da hierarquia. A tupla identificada deve fazer referência a uma célula que esteja agregada com a função Soma e não deve usar um membro calculado como uma das coordenadas da célula.

Pode pensar na instrução UPDATE CUBE como uma sub-rotina que gera uma série de operações individuais de escrita para células atómicas. Todas estas operações individuais de writeback acumulam-se depois na soma especificada.

Observação

Quando as células atualizadas não se sobrepõem, a propriedade de cadeia de ligação Update Isolation Level pode ser usada para melhorar o desempenho do UPDATE CUBE. Para obter mais informações, consulte ConnectionString.

Example

Pode testar o UPDATE CUBE utilizando o grupo de medidas "Sales Targets" no cubo Adventure Works. Este grupo de medidas consiste em medidas agregadas por SUM, que é um requisito para o UPDATE CUBE.

  1. Ative a escrita no grupo de medidas de Metas de Vendas da base de dados Adventure Works. No Management Studio, clique com o botão direito num grupo de medidas, aponte para Opções de Escrita, escolha Ativar Writeback.

    Deves ver uma nova tabela de writeback na pasta Writeback. O nome da tabela é WriteTable_Fact Sales Quota.

  2. Abra uma janela de consulta MDX. Execute a seguinte instrução select para visualizar o valor original:

    SELECT [Measures].[Sales Amount Quota] on 0 ,  
    [Employee].[Employee Department].[Title].&[Sales Representative].children on 1  
    FROM [Adventure Works]  
    
    

    Deverá ver as quotas de vendas para cada representante.

  3. Executa a instrução update cube para reescrever um novo valor. Neste exemplo, estamos a definir a quota de vendas para 0. Como o novo valor é 0, não especifique um método de alocação.

    UPDATE CUBE [Adventure Works]   
    SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 0  
    
    
  4. Execute novamente a instrução SELECT. Agora deverá ver zero nas quotas.

O valor de writeback está limitado à sessão atual. Para assegurar a persistência do valor entre utilizadores e sessões, processe a tabela de writeback. No Management Studio, clique com o botão direito WriteTable_Fact Quota de Vendas e escolha Processo.

Para especificar um método de alocação, o novo valor deve ser maior que zero. Neste exemplo, o novo valor para a Quota de Valor de Vendas é de dois milhões e o método de alocação distribui o montante por todos os representantes de vendas.

UPDATE CUBE [Adventure Works]   
SET ([Measures].[Sales Amount Quota], [Employee].[Employee Department].[Department].&[Sales]) = 2000000   
USE_EQUAL_ALLOCATION  

Condições de Erro

A tabela seguinte descreve tanto o que pode causar falhas nos registos como os resultados desses erros.

Condição de erro Result
A atualização inclui membros da mesma dimensão que não coexistem entre si. A atualização vai falhar. O espaço do cubo não conterá a célula referenciada.
A atualização inclui uma medida baseada numa medida de tipo não assinado. A atualização vai falhar. Os incrementos exigem que a medida possa obter um valor negativo.
A atualização inclui uma medida que agrega para além da soma. Ocorre um erro.
A atualização foi testada num subcube. É gerado um erro.

Efeito das Alterações do Cubo

As seguintes alterações não terão efeito numa escrita de retorno:

  • Processamento de um cubo, dos grupos de medida do cubo ou das dimensões do cubo.

  • Adicionar atributos a qualquer dimensão.

  • Acrescentando uma nova dimensão.

  • Eliminar uma dimensão que não inclui o processo de escrita reversa.

  • Adicionar, modificar ou remover uma hierarquia.

  • Adicionar uma nova medida.

As seguintes alterações não podem ser feitas sem remover os dados de writeback:

  • Eliminar um atributo, ou a sua hierarquia de atributos, caso o atributo esteja incluído na escrita de retorno. Isto inclui remover explicitamente o atributo, ou a sua hierarquia de atributos, ou remover a dimensão pai do atributo.

  • Eliminar uma medida incluída no writeback.

  • Adicionar um atributo sem um nível (All) a uma dimensão incluída no writeback.

  • Alterar a granularidade de uma dimensão incluída no writeback.

Ver também

Modificação de Dados (MDX)