Partilhar via


Mesclagem de baixa shuffle no Azure Databricks

Observação

A mesclagem de baixa shuffle está disponível em geral (GA) no Databricks Runtime 10.4 lTS e superior e no Public Preview no Databricks Runtime 9.1 LTS. A Databricks recomenda que os clientes do Preview migrem para o Databricks Runtime 10.4 LTS ou superior.

O comando MERGE é utilizado para realizar atualizações, inserções e exclusões simultâneas no Delta Lake table. O Azure Databricks tem uma implementação otimizada de MERGE que melhora substancialmente o desempenho ao reduzir o número de operações de shuffle em cargas de trabalho comuns.

A mesclagem de baixa shuffle do Databricks oferece melhor desempenho processando linhas não modificadas em um modo de processamento separado e mais simplificado, em vez de processá-las junto com as linhas modificadas. Como resultado, a quantidade de dados embaralhados é reduzida significativamente, levando a um melhor desempenho. A mesclagem de baixa shuffle também reduz a necessidade de os usuários executarem novamente o comando OPTIMIZE ZORDER BY depois de executar uma operação MERGE.

Desempenho otimizado

Muitas cargas de trabalho MERGE só update um número relativamente pequeno de linhas em um table. No entanto, o Delta tables só pode ser atualizado por arquivo. Quando o comando MERGE precisa update ou excluir um pequeno número de linhas armazenadas em um arquivo específico, ele também deve processar e reescrever todas as linhas restantes armazenadas no mesmo arquivo, mesmo que essas linhas não sejam modificadas. A mesclagem de baixa shuffle otimiza o processamento de linhas não modificadas. Anteriormente, elas eram processadas da mesma forma que as linhas modificadas, passando por vários estágios de embaralhamento e cálculos caros. Na mesclagem de baixa shuffle, as linhas não modificadas são processadas sem qualquer shuffles, processamento caro ou outra sobrecarga adicionada.

Layout de dados otimizado

Além de ser mais rápida de executar, a fusão com pouca reorganização também beneficia as operações subsequentes. A implementação MERGE anterior fez com que o layout de dados de dados não modificados fosse totalmente alterado, resultando em menor desempenho nas operações subsequentes. A mesclagem de baixa embaralhamento tenta preservar o layout de dados existente dos registros não modificados, incluindo de otimização de ordem Z com base no melhor esforço. Assim, com a mesclagem aleatória reduzida, o desempenho das operações em um Delta table deteriorará mais lentamente após a execução de um ou mais comandos MERGE.

Observação

A mesclagem com pouca perturbação tenta preservar o layout dos dados em dados existentes que não foram modificados. O layout de dados de dados atualizados ou recém-inseridos pode não ser ideal, portanto, ainda pode ser necessário executar os comandos OPTIMIZE ou OPTIMIZE ZORDER BY.

Disponibilidade

A mesclagem de baixa shuffle é habilitada por padrão no Databricks Runtime 10.4 e superior. Em versões anteriores suportadas do Databricks Runtime, pode ser ativado através da definição da configuração spark.databricks.delta.merge.enableLowShuffle para true. Este sinalizador não tem efeito no Databricks Runtime 10.4 e superior.