問題
自動優化在磚(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