Compartir vía


Eliminación dinámica de archivos

La eliminación dinámica de archivos puede mejorar significativamente el rendimiento de muchas consultas en tablas de Delta Lake. Desencadenadores de eliminación de archivos dinámicos para consultas que contienen instrucciones de filtro o cláusulas WHERE. Debe usar cómputo habilitado para Photon para utilizar la eliminación dinámica de archivos en las instrucciones MERGE, UPDATEy DELETE. Solo las declaraciones SELECT aprovechan la eliminación dinámica de archivos cuando no se utiliza Photon.

La eliminación dinámica de archivos es especialmente eficaz para las tablas sin particiones o para combinaciones en columnas no particionadas. El impacto en el rendimiento de la eliminación dinámica de archivos se suele correlacionar con la agrupación en clústeres de datos, por lo que considere la posibilidad de usar Z-Ordering para maximizar la ventaja.

Para obtener información general y casos de uso de la eliminación dinámica de archivos, consulte Consultas más rápidas en Delta Lake con la eliminación dinámica de archivos.

Configuración

La eliminación dinámica de archivos se controla mediante las siguientes opciones de configuración de Apache Spark:

  • spark.databricks.optimizer.dynamicFilePruning (el valor predeterminado es true): el indicador principal que dirige al optimizador para aplicar filtros. Cuando se establece en false, la eliminación dinámica de archivos no estará en vigor.
  • spark.databricks.optimizer.deltaTableSizeThreshold (el valor predeterminado es 10,000,000,000 bytes (10 GB)): representa el tamaño mínimo (en bytes) de la tabla Delta en el lado de sondeo de la combinación necesaria para desencadenar la eliminación dinámica de archivos. Si el lado del sondeo no es muy grande, probablemente no merece la pena hacer descender los filtros y simplemente podemos examinar toda la tabla. Para encontrar el tamaño de una tabla Delta, ejecute el comando DESCRIBE DETAIL table_name y examine la columna sizeInBytes.
  • spark.databricks.optimizer.deltaTableFilesThreshold (el valor predeterminado es 10): representa el número de archivos de la tabla Delta en el lado de sondeo de la combinación necesaria para desencadenar la eliminación de archivos dinámicos. Cuando la tabla lateral del sondeo contiene menos archivos que el valor de umbral, no se desencadena la eliminación dinámica de archivos. Si una tabla tiene solo unos pocos archivos, probablemente no merece la pena habilitar la eliminación de archivos dinámicos. Para encontrar el tamaño de una tabla Delta, ejecute el comando DESCRIBE DETAIL table_name y examine la columna numFiles.