Remoção dinâmica de arquivos

A remoção dinâmica de arquivos pode melhorar significativamente o desempenho de muitas query nas tabelas do Delta Lake. A remoção dinâmica de arquivos é especialmente eficiente para tabelas não particionadas ou para join em colunas não particionadas. O impacto no desempenho da remoção de arquivos dinâmicos geralmente está correlacionado aos clusters de dados, portanto, considere o uso de Z-ordering para maximizar o benefício.

Importante

Você deve usar compute habilitada para Photon para usar a remoção de arquivo dinâmico nas instruções MERGE, UPDATE e DELETE. Apenas as instruções SELECT aproveitam a remoção dinâmica de arquivos quando o Photon não é usado.

Para casos de uso e segundo plano para remoção dinâmica de arquivos, consulte query SQL mais rápida no Delta Lake com remoção dinâmica de arquivos.

Configuração

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

  • spark.databricks.optimizer.dynamicFilePruning default é true): o sinalizador principal que direciona o otimizador para empurrar para baixo os filtros. Quando definido como false, a remoção de arquivo dinâmico não terá efeito.

  • spark.databricks.optimizer.deltaTableSizeThreshold default é 10,000,000,000 bytes (10 GB)): representa o tamanho mínimo (em bytes) da tabela Delta no lado da sondagem da join necessária para acionar a remoção de arquivo dinâmico. Se o lado da sonda não for muito grande, provavelmente não vale a pena empurrar os filtros para baixo e podemos simplesmente escanear toda a tabela. Você pode encontrar o tamanho de uma tabela Delta executando o comando DESCRIBE DETAIL table_name e, em seguida, observando a coluna sizeInBytes .

  • spark.databricks.optimizer.deltaTableFilesThreshold default é 10): representa o número de arquivos da tabela Delta no lado da investigação da join necessários para acionar a remoção dinâmica de arquivos. Quando a tabela lateral da análise contém menos arquivos que o valor limite, a remoção dinâmica de arquivos não é acionada. Se uma tabela tiver apenas alguns arquivos, provavelmente não valerá a pena ativar a remoção dinâmica de arquivos. Você pode encontrar o tamanho de uma tabela Delta executando o comando DESCRIBE DETAIL table_name e observando a coluna numFiles .