Partager via


Élagage de fichiers dynamiques

L'élagage dynamique de fichiers peut améliorer considérablement les performances de nombreuses requêtes sur les tables Delta Lake. Déclencheurs d'élagage dynamique des fichiers pour les requêtes qui contiennent des instructions de filtre ou des clauses WHERE. Il est impératif d'utiliser un calcul activé par Photon pour utiliser l'élagage dynamique des fichiers dans les instructions MERGE, UPDATEet DELETE. Seules des instructions SELECT tirent parti du nettoyage dynamique de fichiers lorsque Photon n’est pas utilisé.

L'élagage dynamique des 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 de fichiers dynamiques est souvent corrélé au clustering de données. Envisagez donc d’utiliser Z-Ordering pour 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

L'élagage dynamique des fichiers est contrôlé par les options de configuration Apache Spark suivantes :

  • spark.databricks.optimizer.dynamicFilePruning (la valeur par défaut est true) : indicateur principal qui dirige l’optimiseur pour pousser les filtres vers le bas. Lorsque la valeur est définie sur false, l’exécution de fichiers dynamiques n’est pas active.
  • spark.databricks.optimizer.deltaTableSizeThreshold (la valeur par défaut est 10,000,000,000 bytes (10 GB)) : représente la taille minimale (en octets) de la table Delta côté sonde de la jointure requise pour déclencher l’élagage de 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 commande DESCRIBE DETAIL table_name, puis en examinant la colonne sizeInBytes.
  • spark.databricks.optimizer.deltaTableFilesThreshold (la valeur par défaut est 10) : 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 latérale de la sonde contient moins de fichiers que la valeur de seuil, l'élagage dynamique des fichiers n'est pas activé. 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 commande DESCRIBE DETAIL table_name, puis en examinant la colonne numFiles.