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é obecně dostupné 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í současných aktualizací, vkládání a odstranění z Delta Lake table. Azure Databricks má optimalizovanou implementaci MERGE
, která výrazně zlepšuje výkon u běžných úloh snížením počtu operací přeskupení.
Sloučení s nízkým přetřásáním v Databricks poskytuje lepší výkon zpracováním neupravených řádků v samostatném, efektivnějším režimu místo jejich zpracování společně s upravenými řádky. V důsledku toho se výrazně sníží množství přesouvaných dat, což vede ke zlepšení výkonu. Sloučení s nízkým promícháváním také snižuje potřebu zopakování příkazu OPTIMIZE ZORDER BY po provedení operace MERGE
.
Optimalizovaný výkon
Mnoho MERGE
úloh zpracovává pouze update relativně malý počet řádků v table. Delta tables je však možné aktualizovat pouze pro jednotlivé soubory. Pokud příkaz MERGE
potřebuje update 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 uložené ve stejném souboru, i když jsou tyto řádky nezměněné. Sloučení s nízkým prohazováním optimalizuje zpracování nemodifikovaných řádků. Dříve byly zpracovávány stejným způsobem jako řádky, které byly upraveny, procházely několika fázemi třídění a náročný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ší při spuštění, přináší nízké nároky na přenos dat při slučování také výhody pro následující operace. Předchozí MERGE
implementace způsobila, že se zcela změnilo rozložení dat neupravených dat, což vedlo k nižšímu výkonu při následných operacích. Nízké prohazování při sloučení se snaží zachovat stávající rozložení dat neupravených záznamů, včetně optimalizace pořadí Z podle nejlepší snahy. Díky nízkému sloučení prohazování se výkon operací na Deltě table po spuštění jednoho nebo více příkazů MERGE
degraduje pomaleji.
Poznámka
Sloučení s nízkým přesunem se snaží zachovat rozložení 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 příkazy OPTIMIZE
nebo OPTIMIZE ZORDER BY.
Dostupnost
Ve výchozím nastavení je v Databricks Runtime 10.4 a novějším povoleno nízké spojování přeuspořádávání. V dřívějších podporovaných verzích Databricks Runtime je možné ji povolit nastavením konfiguračního spark.databricks.delta.merge.enableLowShuffle
na true
. Tento příznak nemá žádný vliv na Databricks Runtime 10.4 a novější.