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. Dynamiczne oczyszczanie plików uruchamiane na podstawie decyzji optymalizatora zapytań i w odniesieniu do zapytań zawierających instrukcje filtrowania lub klauzule WHERE. Aby zapewnić użycie dynamicznego oczyszczania plików w instrukcjach MERGE, UPDATE oraz DELETE, należy korzystać z obliczeń obsługiwanych przez Photon. Tylko SELECT instrukcje gwarantują użycie dynamicznego oczyszczania 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. Efekt dynamicznego oczyszczania plików jest często skorelowany z klastrowaniem danych, dlatego rozważ użycie klastrowania płynnego w celu zmaksymalizowania korzyści. Zobacz Używaj płynnego grupowania dla tabel.

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.