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 filtru lub WHERE
klauzule. Aby używać dynamicznego oczyszczania plików w instrukcjach MERGE
, UPDATE
i 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.
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ł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 totrue
): flaga główna, która kieruje optymalizator do wypychania filtrów. W przypadku ustawienia opcjifalse
dynamiczne oczyszczanie plików nie będzie obowiązywać.spark.databricks.optimizer.deltaTableSizeThreshold
(wartość domyślna to10,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ącDESCRIBE DETAIL table_name
polecenie , a następnie przeglądając kolumnęsizeInBytes
.spark.databricks.optimizer.deltaTableFilesThreshold
(wartość domyślna to10
): 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ącDESCRIBE DETAIL table_name
polecenie , a następnie przeglądając kolumnęnumFiles
.