Élagage dynamique des fichiers
L’élagage dynamique de fichiers peut améliorer considérablement les performances de nombreuses requêtes sur les tables Delta Lake. L’optimiseur de requêtes Trigger l’élagage dynamique de fichiers pour les requêtes qui contiennent des instructions de filtre ou des clauses WHERE. L'élagage dynamique de fichiers dans les instructions MERGE, UPDATE et DELETE nécessite un compute compatible Photon. Pour les instructions SELECT, Photon fournit un élagage dynamique de fichiers plus large et plus fiable. Sans Photon, l’élagage dynamique de fichiers peut toujours s’appliquer aux instructions SELECT, selon la forme de la query et le plan d’exécution.
L'élagage dynamique de fichiers est particulièrement efficace pour les tables non partitionnées, ou pour les jointures sur des colonnes non partitionnées. L'impact sur les performances de l'élagage dynamique de fichiers est souvent corrélé à la mise en cluster des données, envisagez donc d'utiliser le clustering liquide pour maximiser les avantages. Consultez Utiliser le clustering liquide pour les tables.
Pour obtenir des informations générales et des cas d’utilisation de l’élagage dynamique de fichiers, consultez Accélérez les query SQL sur Delta Lake avec l’élagage dynamique de fichiers.
Configuration
L'élagage dynamique des fichiers est contrôlé par les options de configuration Apache Spark suivantes :
spark.databricks.optimizer.dynamicFilePruning(default esttrue) : le drapeau principal qui dirige l'optimiseur pour pousser les filtres. Lorsqu'il est défini surfalse, l'élagage dynamique de fichiers ne sera pas appliqué.spark.databricks.optimizer.deltaTableSizeThreshold(default is10,000,000,000 bytes (10 GB)) : Représente la taille minimale (en octets) de la table Delta du côté sonde de la jointure requise pour trigger l'élagage dynamique de fichiers. Si le côté de la sonde n'est pas très grand, il n'est probablement pas utile de réduire les filtres et nous pouvons simplement analyser toute la table. Vous pouvez trouver la taille d'une table Delta en exécutant la commandeDESCRIBE DETAIL table_name, puis en examinant la colonnesizeInBytes.spark.databricks.optimizer.deltaTableFilesThreshold(default is10) : Représente le nombre de fichiers de la table Delta du côté de la sonde de la jointure nécessaire pour trigger l'élagage dynamique des fichiers. Lorsque la table côté sonde contient moins de fichiers que la valeur threshold, l'élagage dynamique de fichiers n'est pas déclenché. Si une table ne contient que quelques fichiers, il n'est probablement pas utile d'activer l'élagage dynamique des fichiers. Vous pouvez trouver la taille d'une table Delta en exécutant la commandeDESCRIBE DETAIL table_name, puis en examinant la colonnenumFiles.