低洗牌合並磚

請注意

低洗牌合並在磚運行時支持9.0及以上。它是通常可用(GA)在運行時10.3及以上和磚公共預覽在磚運行時的9.0,9.1,10.0,10.1和10.2。我們建議客戶預覽遷移到磚運行時的10.3或以上。beplay体育app下载地址

合並命令用於執行同步更新、插入和刪除從三角洲湖表。磚的優化的實現合並為常見的工作量,大大提高了性能降低洗牌操作的數量。

磚低洗牌合並提供了更好的性能在一個單獨的處理修改的行,更具流線型的處理模式,而不是處理他們一起修改的行。因此,打亂數據的數量顯著減少,導致改進的性能。低洗牌合並也減少了用戶需要重新運行優化ZORDER由命令執行後合並操作。

優化的性能

許多合並工作負載隻更新一個相對較小的表中的行數。然而,三角洲表隻能在上麵的基礎上更新。當合並命令需要更新或刪除一個小數量的行存儲在一個特定的文件,那麼它也必須過程和重寫所有剩餘的行存儲在相同的文件,即使這些行被修改的。低洗牌合並優化處理修改的行。此前,他們以同樣的方式處理修改行,他們穿過多個洗牌階段和昂貴的計算。在低洗牌合並,修改的行,而不是加工沒有任何打亂,昂貴的處理或其他增加開銷。

優化的數據布局

除了運行更快,洗牌合並低福利後續操作。越早合並實現了修改的數據的數據布局完全改變,導致較低的性能對後續操作。低洗牌合並試圖保護的現有數據布局修改的記錄,包括z值的優化力所能及。因此,較低的洗牌合並,三角洲表操作的性能將降低運行一個或多個後更慢合並命令。

請注意

低洗牌合並試圖保持現有數據的數據布局不修改。更新或新插入數據的數據布局可能不是最優,所以它可能仍然需要運行優化優化ZORDER由命令。

可用性

低洗牌的合並是默認啟用磚運行時10.4及以上。在早期支持磚啟用運行時版本可以通過設置的配置spark.databricks.delta.merge.enableLowShuffle真正的。這個標誌在磚運行時10.4及以上沒有影響。