Sdílet prostřednictvím


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 OPTIMIZEpří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šší.