Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dynamisches Pruning von Dateien kann die Leistung vieler Abfragen in Delta Lake-Tabellen erheblich verbessern. Der Abfrageoptimierer löst dynamisches Löschen von Dateien für Abfragen aus, die Filteranweisungen oder WHERE Klauseln enthalten. Die dynamische Dateibereinigung in den Anweisungen MERGE, UPDATE und DELETE erfordert Photon-fähige Compute-Ressourcen. Für SELECT-Anweisungen bietet Photon ein umfassenderes und zuverlässigeres dynamisches Pruning von Dateien. Ohne Photon kann dynamisches Pruning von Dateien je nach Abfragestruktur und Ausführungsplan weiterhin auf SELECT-Anweisungen angewendet werden.
Die dynamische Dateibereinigung ist besonders effizient für nicht partitionierte Tabellen oder für Verknüpfungen für nicht partitionierte Spalten. Der Leistungseffekt der dynamischen Dateibereinigung wird häufig mit dem Clustering von Daten korreliert. Ziehen Sie daher in Betracht, flüssiges Clustering zu verwenden, um den Nutzen zu maximieren. Siehe Verwenden von Flüssigclustering für Tabellen.
Hintergründe und Anwendungsfälle für die dynamische Löschung von Dateien finden Sie unter Schnellere SQL-Abfragen auf Delta Lake mit dynamischem Datei-Beschneiden.
Konfiguration
Das dynamische Datei-Pruning wird durch die folgenden Apache Spark-Konfigurationsoptionen gesteuert:
-
spark.databricks.optimizer.dynamicFilePruning(Standardeinstellung:true): Das Hauptflag, das den Optimierer anweist, DFP-Filter nach unten zu pushen. Wenn dieser Wert auffalsefestgelegt ist, wird dynamische Dateibereinigung nicht wirksam. -
spark.databricks.optimizer.deltaTableSizeThreshold(Standard ist10,000,000,000 bytes (10 GB)): Stellt die Mindestgröße (in Byte) der Delta-Tabelle auf der Probeseite der Verknüpfung dar, die erforderlich ist, um die dynamische Dateizuschneidung auszulösen. Wenn die Testseite nicht sehr groß ist, lohnt es sich nicht, die Filter nach unten zu pushen. Stattdessen kann einfach die gesamte Tabelle überprüft werden. Sie finden die Größe einer Delta-Tabelle, indem Sie denDESCRIBE DETAIL table_nameBefehl ausführen und dann diesizeInBytesSpalte betrachten. -
spark.databricks.optimizer.deltaTableFilesThreshold(Standardeinstellung):10Stellt die Anzahl der Dateien der Delta-Tabelle auf der Probeseite der Verknüpfung dar, die erforderlich ist, um die dynamische Dateizuschneidung auszulösen. Wenn die Randtabelle des Prüfpunkts weniger Dateien als den Schwellenwert enthält, wird die dynamische Dateibereinigung nicht ausgelöst. Wenn eine Tabelle nur wenige Dateien enthält, lohnt es sich wahrscheinlich nicht, die dynamische Datei pruning zu aktivieren. Sie finden die Größe einer Delta-Tabelle, indem Sie denDESCRIBE DETAIL table_nameBefehl ausführen und dann dienumFilesSpalte betrachten.