Dynamiczne oczyszczanie plików

Dynamiczne oczyszczanie plików może znacznie poprawić wydajność wielu zapytań w tabelach usługi Delta Lake. 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.

Ważne

Aby używać dynamicznego oczyszczania plików w instrukcjach MERGE, UPDATEi DELETE , należy użyć obliczeń z obsługą funkcji Photon. Tylko SELECT instrukcje wykorzystują dynamiczne oczyszczanie plików, gdy photon nie jest używany.

Aby zapoznać się z tłami i przypadkami użycia dynamicznego oczyszczania plików, zobacz Szybsze zapytania SQL w usłudze Delta Lake z dynamicznym oczyszczaniem plików.

Konfigurowanie

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, która kieruje optymalizator do wypychania filtrów. W przypadku ustawienia opcji 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 delta po stronie sondy sprzężenia wymaganego do wyzwolenia dynamicznego oczyszczania pliku. 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 DESCRIBE DETAIL table_name polecenie , a następnie przeglądając kolumnę sizeInBytes .
  • spark.databricks.optimizer.deltaTableFilesThreshold (wartość domyślna to 10): reprezentuje liczbę plików tabeli delty po stronie sondy sprzężenia wymaganego 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 DESCRIBE DETAIL table_name polecenie , a następnie przeglądając kolumnę numFiles .