低shuffle合並數據

請注意

Databricks Runtime 9.0及以上版本支持Low shuffle merge。它是通用(GA)在Databricks Runtime 10.3及以上版本公共預覽在Databricks Runtime 9.0、9.1、10.0、10.1和10.2版本中安裝。我們建議預覽版客戶遷移到Databricks Runbeplay体育app下载地址time 10.3或更高版本。

合並命令用於同時對Delta Lake表進行更新、插入和刪除。Databricks具有優化的實現合並通過減少shuffle操作的數量,這大大提高了普通工作負載的性能。

Databricks的低shuffle合並提供了更好的性能,它以單獨的、更精簡的處理模式處理未修改的行,而不是將它們與修改的行一起處理。因此,打亂的數據量顯著減少,從而提高了性能。低洗牌合並還減少了用戶重新運行優化zorder在執行合並操作。

優化的性能

許多合並工作負載隻更新表中相對較少的行。但是,Delta表隻能在每個文件的基礎上更新。當合並命令需要更新或刪除存儲在特定文件中的少量行,然後還必須處理和重寫存儲在同一文件中的所有剩餘行,即使這些行未被修改。低洗牌合並優化了未修改行的處理。以前,它們與修改行的處理方式相同,將它們傳遞給多個洗牌階段和昂貴的計算。在低洗牌合並中,未修改的行被處理,沒有任何洗牌、昂貴的處理或其他額外開銷。

優化的數據布局

除了運行速度更快之外,低shuffle合並對後續操作也有好處。越早合並實現導致未修改數據的數據布局完全改變,導致後續操作的性能降低。低隨機合並嚐試保留未修改記錄的現有數據布局,包括z值的優化在盡力的基礎上。因此,使用低shuffle合並,在運行一個或多個Delta表後,對Delta表的操作性能下降得更慢合並命令。

請注意

低shuffle合並嚐試在未修改的現有數據上保留數據布局。更新或新插入數據的數據布局可能不是最佳的,因此可能仍然需要運行優化優化zorder命令。

可用性

在Databricks Runtime 10.4及以上版本中默認啟用Low shuffle merge。在早期支持的Databricks運行時版本中,可以通過設置配置來啟用該功能spark.databricks.delta.merge.enableLowShuffle真正的.此標誌在Databricks Runtime 10.4及以上版本中無效。