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 contengan instrucciones de filtro o cláusulas WHERE. Para utilizar la eliminación dinámica de archivos en las sentencias MERGE, UPDATE, yDELETE debe utilizar el procesamiento habilitada para Photon. Solo SELECT las instrucciones sacan provecho de la eliminación dinámica de archivos cuando no se utiliza Photon.

La eliminación dinámica de archivos es eficaz especialmente para tablas sin particiones o para combinaciones en columnas sin particiones. El impacto en el rendimiento de la eliminación dinámica de archivos a menudo se correlaciona con la agrupación en clústeres de datos, por lo que considere la posibilidad de usar la ordenación Z para maximizar las ventajas.

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): La marca principal que dirige al optimizador para hacer descender los filtros. Cuando se establece en false, la eliminación dinámica de archivos no está 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 de Delta en el lado del 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 de Delta, ejecute el comando DESCRIBE DETAIL table_name y, a continuación, busque la columna sizeInBytes.
  • spark.databricks.optimizer.deltaTableFilesThreshold (el valor predeterminado es 10): Representa el número de archivos de la tabla de Delta en el lado del sondeo de la combinación necesaria para desencadenar la eliminación dinámica de archivos. Cuando la tabla del lado 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 valga la pena habilitar la eliminación dinámica de archivos. Para encontrar el tamaño de una tabla de Delta, ejecute el comando DESCRIBE DETAIL table_name y, a continuación, busque la columna numFiles.