Élagage de fichiers dynamiques
L’élagage de fichiers dynamiques peut améliorer considérablement les performances de nombreuses requêtes sur les tables Delta Lake. L’élagage des fichiers dynamiques 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 des fichiers dynamiques est souvent lié au clustering des données. Envisagez donc d’utiliser l'ordre Z pour en optimiser l’avantage.
Important
Vous devez utiliser le calcul compatible avec Photon pour utiliser le nettoyage dynamique des fichiers dans des instructions MERGE
, UPDATE
et DELETE
. Seules des instructions SELECT
tirent parti du nettoyage dynamique de fichiers lorsque Photon n’est pas utilisé.
Pour plus d’informations sur l’arrière-plan et les cas d'usage de l’élagage des fichiers dynamiques, consultez Accélérer les requêtes SQL sur Delta Lake avec l’élagage de fichiers dynamiques.
Configuration
DFP est contrôlé par les options de configuration Apache Spark suivantes :
spark.databricks.optimizer.dynamicFilePruning
(valeur par défaut :true
) : indicateur principal qui indique à l’optimiseur d’envoyer (push) les filtres. Lorsque la valeur est définie surfalse
, l’exécution de fichiers dynamiques n’est pas active.spark.databricks.optimizer.deltaTableSizeThreshold
(valeur par défaut :10,000,000,000 bytes (10 GB)
) : représente la taille minimale (en octets) de la table Delta du côté sonde d’intégrité de la jointure requise pour déclencher l’élagage des fichiers dynamiques. Si le côté sonde d’intégrité n’est pas très important, il n’est probablement pas judicieux d’envoyer (push) les filtres, et nous pouvons simplement analyser la table entière. 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
(valeur par défaut :10
dans Databricks Runtime 8.4 et versions ultérieures,1000
dans Databricks Runtime 8.3 et versions antérieures) : représente le nombre de fichiers de la table Delta côté sonde d’intégrité de la jointure requise pour déclencher l’élagage de fichiers dynamiques. Lorsque la table côté sonde d’intégrité contient moins de fichiers que la valeur de seuil, l’élagage de fichiers dynamiques n’est pas déclenché. Si une table ne contient que quelques fichiers, il n’est probablement pas judicieux d’activer l’élagage de fichiers dynamiques. Vous pouvez trouver la taille d’une table Delta en exécutant la commandeDESCRIBE DETAIL table_name
, puis en examinant la colonnenumFiles
.