É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. Déclencheurs d’élagage de fichier dynamique pour les requêtes qui contiennent des instructions de filtre ou des clauses WHERE
. 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é.
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.
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
(la valeur par défaut est10
) : représente le nombre de fichiers de la table Delta du côté sonde de la jointure requis pour déclencher l'élagage dynamique des fichiers. 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
.