问题
自动优化在砖(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