使用刪除時性能下降與子查詢運行時10.4 LTS磚

自動優化應該禁用與子查詢,當你有一個刪除廣播一邊足夠小。

寫的sergios.lalas

去年發表在:2023年4月21日

問題

自動優化在磚(AWS|Azure|GCP)是一個可選的特性,自動緊湊的小文件在個人寫一個三角洲表。支付一個小成本在寫積極為表查詢提供了顯著的好處。

盡管汽車優化可以在很多情況下是有益的,可以看到磚運行時性能下降10.4 LTS當你有一個刪除用子查詢廣播一方足夠小。

例如查詢可能看起來像:

從< tableToDelete >刪除日期= < ' SampleDate ' >和SampleID(從< OtherTable >選擇MatchId MatchId =“價值”)

導致

優化中默認啟用刪除子查詢,在磚運行時10.4 LTS,假設數據將被打亂。在一方足夠小的情況下播放,這不會發生,你可能會出現性能下降。

解決方案

如果你遇到這個問題,你不想升級到一個新磚運行時,您應該禁用自動優化表通過設置在你的三角洲delta.autoOptimize。optimizeWrite = false表中的屬性。

你也應該在集群的設置這個值火花配置(AWS|Azure|GCP):

spark.databricks.delta.delete.forceOptimizedWrites = false
刪除

信息

磚運行時11.2及以上的禁用自動優化寫道刪除默認情況下,子查詢。

這篇文章有用嗎?