Nízká míra náhodného náhodného prohazování v Azure Databricks
Poznámka:
Sloučení s nízkým shufflem je obecně dostupné (GA) v Databricks Runtime 10.4 lTS a vyšší a ve verzi Public Preview v Databricks Runtime 9.1 LTS. Databricks doporučuje, aby zákazníci verze Preview migrovali na Databricks Runtime 10.4 LTS nebo novější.
Příkaz MERGE slouží k provádění souběžných aktualizací, vkládání a odstraňování z tabulky Delta Lake. Azure Databricks má optimalizovanou implementaci MERGE
, která výrazně zvyšuje výkon pro běžné úlohy snížením počtu operací náhodného náhodného prohazování.
Sloučení s nízkým náhodném prohazování Databricks poskytuje lepší výkon zpracováním neupravených řádků v samostatném, jednodušším režimu zpracování místo jejich zpracování společně s upravenými řádky. V důsledku toho se výrazně sníží množství prohazovaných dat, což vede ke zlepšení výkonu. Sloučení s nízkým náhodném prohazování také snižuje potřebu, aby uživatelé po provedení MERGE
operace znovu spustili příkaz OPTIMIZE ZORDER BY.
Optimalizovaný výkon
Mnoho MERGE
úloh aktualizuje pouze relativně malý počet řádků v tabulce. Tabulky Delta se ale dají aktualizovat pouze pro jednotlivé soubory. MERGE
Když příkaz potřebuje aktualizovat nebo odstranit malý počet řádků uložených v určitém souboru, musí také zpracovat a přepsat všechny zbývající řádky, které jsou uložené ve stejném souboru, i když tyto řádky nejsoumodifikované. Sloučení s nízkým náhodném prohazování optimalizuje zpracování nemodifikovaných řádků. Dříve se zpracovávaly stejným způsobem jako upravené řádky, předávaly je několika fázemi náhodného prohazu a nákladným výpočtům. V případě nízkého náhodného sloučení se nemodifikované řádky místo toho zpracovávají bez jakýchkoli náhodného prohazování, nákladného zpracování nebo jiných přidaných režijních nákladů.
Optimalizované rozložení dat
Kromě toho, že je rychlejší spouštění, má nízká míra náhodného sloučení také výhody následných operací. MERGE
Předchozí implementace způsobila úplné změny rozložení dat neupravených dat, což vedlo k nižšímu výkonu při následných operacích. Sloučení s nízkým náhodném prohazování se pokusí zachovat stávající rozložení dat neupravených záznamů, včetně optimalizace pořadí Z na základě maximálního úsilí. Díky nízkému náhodnému sloučení se výkon operací v tabulce Delta sníží po spuštění jednoho nebo více MERGE
příkazů pomaleji.
Poznámka:
Sloučení s nízkým náhodném prohazování se pokusí zachovat rozložení dat u existujících dat, která nejsou upravena. Rozložení dat aktualizovaných nebo nově vložených dat nemusí být optimální, takže může být stále nutné spustit OPTIMIZE
příkazy OPTIMIZE ZORDER BY .
Dostupnost
Ve výchozím nastavení je ve službě Databricks Runtime 10.4 a novější povolená nízká sloučení náhodného náhodného prohazování. V dřívějších podporovaných verzích Databricks Runtime je možné ji povolit nastavením konfigurace spark.databricks.delta.merge.enableLowShuffle
na true
. Tento příznak nemá žádný vliv na Databricks Runtime 10.4 a vyšší.