Eliminação de ficheiros dinâmica
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 ou WHERE
cláusulas de filtro. Você deve usar a computação habilitada para Fóton para usar a remoção dinâmica de arquivos em MERGE
, UPDATE
e DELETE
instruções. Somente SELECT
instruções aproveitam a remoção dinâmica de arquivos quando o Photon não é usado.
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 obter casos de plano de fundo e de uso para remoção dinâmica de arquivos, consulte Consultas SQL mais rápidas 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
(padrão étrue
): O sinalizador principal que direciona o otimizador para empurrar filtros para baixo. Quando definido comofalse
, a remoção dinâmica de arquivos não estará em vigor.spark.databricks.optimizer.deltaTableSizeThreshold
(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 oDESCRIBE DETAIL table_name
comando e, em seguida, olhando para asizeInBytes
coluna.spark.databricks.optimizer.deltaTableFilesThreshold
(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 oDESCRIBE DETAIL table_name
comando e, em seguida, olhando para anumFiles
coluna.