Compartilhar via


Remoção de arquivo dinâmico

A remoção de arquivo dinâmico pode melhorar significativamente o desempenho de muitas consultas nas tabelas do Delta Lake. Gatilhos de poda de arquivo dinâmico para consultas que contêm instruções de filtro ou cláusulas de WHERE. Você deve usar a computação habilitada para Photon para usar a remoção dinâmica de arquivos nas instruções MERGE, UPDATE e DELETE. Somente as instruções SELECT aproveitam a remoção dinâmica de arquivos quando o Photon não é usado.

A remoção de arquivo dinâmico é especialmente eficiente para tabelas não particionadas ou para junções em colunas não particionadas. O impacto no desempenho da remoção de arquivo dinâmico geralmente está correlacionado ao armazenamento em cluster de dados, portanto, considere usar a Ordenação Z para maximizar o benefício.

Para casos de uso e de plano de fundo de remoção de arquivo dinâmico, consulte Consultas SQL mais rápidas no Delta Lake com remoção de arquivo dinâmico.

Configuração

A remoção de arquivo dinâmico é controlada pelas seguintes opções de configuração do Apache Spark:

  • spark.databricks.optimizer.dynamicFilePruning (o padrão é true): o sinalizador principal que direciona o otimizador para enviar filtros para baixo. Quando definido como false, a remoção de arquivo dinâmico não estará em vigor.
  • spark.databricks.optimizer.deltaTableSizeThreshold (o padrão é 10,000,000,000 bytes (10 GB)): representa o tamanho mínimo (em bytes) da tabela Delta no lado da investigação da junção necessária para disparar a remoção de arquivo dinâmico. Se o lado da investigação não for muito grande, provavelmente não vale a pena efetuar push dos filtros e podemos simplesmente examinar a tabela inteira. Você pode encontrar o tamanho de uma tabela do Delta executando o comando DESCRIBE DETAIL table_name e, em seguida, observando a coluna sizeInBytes.
  • spark.databricks.optimizer.deltaTableFilesThreshold (o padrão é 10): representa o número de arquivos da tabela Delta no lado da investigação da junção exigida para disparar a poda dinâmica de arquivos. Quando a tabela lateral da investigação contiver menos arquivos do que o valor limite, a remoção de arquivo dinâmico não será disparada. Se uma tabela contiver apenas alguns arquivos, provavelmente não valerá a pena habilitar a remoção de arquivo dinâmico. Você pode encontrar o tamanho de uma tabela do Delta executando o comando DESCRIBE DETAIL table_name e, em seguida, observando a coluna numFiles.