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 MERGE
UPDATE
, 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 jetrue
): Hlavní příznak, který směruje optimalizátor na nabízení filtrů. Pokud je nastavená hodnotafalse
, dynamické vyřezávání souborů nebude platit.spark.databricks.optimizer.deltaTableSizeThreshold
(výchozí hodnota je10,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ímDESCRIBE DETAIL table_name
příkazu a zobrazenímsizeInBytes
sloupce.spark.databricks.optimizer.deltaTableFilesThreshold
(výchozí hodnota je10
): 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ímDESCRIBE DETAIL table_name
příkazu a zobrazenímnumFiles
sloupce.