Udostępnij za pośrednictwem


Dynamiczne oczyszczanie plików

Dynamiczne oczyszczanie plików może znacznie poprawić wydajność wielu zapytań w tabelach usługi Delta Lake. Wyzwalacze oczyszczania plików dynamicznych dla zapytań zawierających instrukcje filtrowania lub klauzule WHERE. Aby używać dynamicznego oczyszczania plików w instrukcjach MERGE, UPDATEi DELETE, musisz użyć obliczeń z włączoną usługą Photon. Tylko wyrażenia SELECT wykorzystują dynamiczne przycinanie plików, gdy Photon nie jest używany.

Dynamiczne oczyszczanie plików jest szczególnie wydajne w przypadku tabel bez partycjonowania lub sprzężeń w kolumnach, które nie są partycjonowane. Wpływ dynamicznego oczyszczania plików na wydajność jest często skorelowany z klastrowaniem danych, dlatego rozważ użycie funkcji Porządkowanie Z w celu zmaksymalizowania korzyści.

Aby zapoznać się z tłem i przypadkami użycia dynamicznego oczyszczania plików, zobacz Szybsze zapytania SQL w Delta Lake dzięki dynamicznemu oczyszczaniu plików.

Konfiguracja

Dynamiczne oczyszczanie plików jest kontrolowane przez następujące opcje konfiguracji platformy Apache Spark:

  • spark.databricks.optimizer.dynamicFilePruning (wartość domyślna to true): flaga główna kierująca optymalizator do wypychania filtrów. W przypadku ustawienia wartości falsedynamiczne oczyszczanie plików nie będzie obowiązywać.
  • spark.databricks.optimizer.deltaTableSizeThreshold (wartość domyślna to 10,000,000,000 bytes (10 GB)): reprezentuje minimalny rozmiar (w bajtach) tabeli delty po sondującej stronie sprzężenia wymagany do wyzwolenia dynamicznego przycinania plików. Jeśli strona sondy nie jest zbyt duża, prawdopodobnie nie warto wypchnąć filtry i możemy po prostu zeskanować całą tabelę. Rozmiar tabeli delty można znaleźć, uruchamiając polecenie DESCRIBE DETAIL table_name, a następnie przeglądając kolumnę sizeInBytes.
  • spark.databricks.optimizer.deltaTableFilesThreshold (wartość domyślna to 10): Reprezentuje liczbę plików tabeli Delta po stronie sondy sprzężenia wymaganą do wyzwolenia dynamicznego oczyszczania plików. Gdy tabela po stronie sondy zawiera mniej plików niż wartość progowa, dynamiczne oczyszczanie plików nie jest wyzwalane. Jeśli tabela zawiera tylko kilka plików, prawdopodobnie nie warto włączyć dynamicznego oczyszczania plików. Rozmiar tabeli delty można znaleźć, uruchamiając polecenie DESCRIBE DETAIL table_name, a następnie przeglądając kolumnę numFiles.