Poda dinâmica de arquivos
A remoção dinâmica de arquivos pode melhorar significativamente o desempenho de muitas consultas em tabelas Delta Lake. Gatilhos dinâmicos de remoção de arquivos para consultas que contêm instruções de filtro ou cláusulas WHERE
. Você deve usar a computação com Fóton ativado para realizar o aparo dinâmico de arquivos nas instruções MERGE
, UPDATE
e DELETE
. Apenas SELECT
declarações aproveitam a poda dinâmica de ficheiros quando o Photon não é utilizado.
A remoção dinâmica de arquivos é especialmente eficiente para tabelas não particionadas ou para junções em colunas não particionadas. O impacto no desempenho da remoção dinâmica de arquivos geralmente está correlacionado ao agrupamento de dados, portanto, considere o uso do Z-Ordering para maximizar o benefício.
Para contextos e casos de uso de poda dinâmica de arquivos, consulte consultas SQL mais rápidas no Delta Lake com poda 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
(padrão étrue
): O indicador principal que direciona o otimizador para aplicar filtros. Quando definido comofalse
, a remoção dinâmica de arquivos 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 sonda da junção necessária para acionar a remoção dinâmica de arquivos. Se o lado da sonda não for muito grande, provavelmente não vale a pena empurrar os filtros para baixo e podemos simplesmente digitalizar toda a mesa. Você pode encontrar o tamanho de uma tabela Delta executando o comandoDESCRIBE DETAIL table_name
e, em seguida, examinando a colunasizeInBytes
. -
spark.databricks.optimizer.deltaTableFilesThreshold
(o padrão é10
): Representa o número de arquivos da tabela Delta no lado da sonda da junção necessária para acionar a remoção dinâmica de arquivos. Quando a tabela lateral da sonda contém menos arquivos do que o valor limite, a remoção dinâmica de arquivos não é acionada. Se uma tabela tiver apenas alguns arquivos, provavelmente não vale a pena habilitar a remoção dinâmica de arquivos. Você pode encontrar o tamanho de uma tabela Delta executando o comandoDESCRIBE DETAIL table_name
e, em seguida, examinando a colunanumFiles
.