Sdílet prostřednictvím


Dynamické vyřazování souborů

Dynamické vyřezávání souborů může výrazně zlepšit výkon mnoha dotazů v tabulkách Delta Lake. Dynamické vyřešovací triggery souborů pro dotazy, které obsahují příkazy filtru nebo WHERE klauzule. Výpočetní prostředky s podporou Photon je nutné použít k použití dynamického vyřazování souborů v MERGEUPDATE, a DELETE příkazy. Dynamické vyřezávání souborů využívají pouze SELECT příkazy, pokud se photon nepoužívá.

Dynamické vyřazování souborů je zvlášť efektivní pro tabulky, které nejsou rozdělené do oddílů, nebo pro spojení v nedělených sloupcích. Dopad dynamického vyřazení souborů na výkon často koreluje s clusteringem dat, proto zvažte použití řazení Z k maximalizaci výhody.

Případy použití na pozadí a pro vyřazení dynamických souborů najdete v tématu Rychlejší dotazy SQL na Delta Lake s dynamickým vyřezáváním souborů.

Konfigurace

Dynamické vyřezávání souborů se řídí následujícími možnostmi konfigurace Apache Sparku:

  • spark.databricks.optimizer.dynamicFilePruning (výchozí hodnota je true): Hlavní příznak, který směruje optimalizátor na nabízení filtrů. Pokud je nastavená hodnota false, dynamické vyřezávání souborů nebude platit.
  • spark.databricks.optimizer.deltaTableSizeThreshold (výchozí hodnota je 10,000,000,000 bytes (10 GB)): Představuje minimální velikost (v bajtech) tabulky Delta na straně sondy spojení potřebné k aktivaci dynamického vyřezávání souborů. Pokud není strana sondy příliš velká, pravděpodobně není vhodné posunout filtry dolů a můžeme jednoduše naskenovat celou tabulku. Velikost tabulky Delta můžete najít spuštěním DESCRIBE DETAIL table_name příkazu a zobrazením sizeInBytes sloupce.
  • spark.databricks.optimizer.deltaTableFilesThreshold (výchozí hodnota je 10): Představuje počet souborů tabulky Delta na straně sondy spojení potřebné k aktivaci dynamického vyřezávání souborů. Pokud tabulka na straně sondy obsahuje méně souborů než prahová hodnota, dynamické vyřezávání souborů se neaktivuje. Pokud tabulka obsahuje jenom několik souborů, pravděpodobně není vhodné povolit dynamické vyřezávání souborů. Velikost tabulky Delta můžete najít spuštěním DESCRIBE DETAIL table_name příkazu a zobrazením numFiles sloupce.