低洗牌合并砖

请注意

低洗牌合并在砖运行时支持9.0及以上。它是通常可用(GA)在运行时10.3及以上和砖公共预览在砖运行时的9.0,9.1,10.0,10.1和10.2。我们建议客户预览迁移到砖运行时的10.3或以上。

合并命令用于执行同步更新、插入和删除从三角洲湖表。砖的优化的实现合并为常见的工作量,大大提高了性能降低洗牌操作的数量。

砖低洗牌合并提供了更好的性能在一个单独的处理修改的行,更具流线型的处理模式,而不是处理他们一起修改的行。因此,打乱数据的数量显著减少,导致改进的性能。低洗牌合并也减少了用户需要重新运行优化ZORDER由命令执行后合并操作。

优化的性能

许多合并工作负载只更新一个相对较小的表中的行数。然而,三角洲表只能在上面的基础上更新。当合并命令需要更新或删除一个小数量的行存储在一个特定的文件,那么它也必须过程和重写所有剩余的行存储在相同的文件,即使这些行被修改的。低洗牌合并优化处理修改的行。此前,他们以同样的方式处理修改行,他们穿过多个洗牌阶段和昂贵的计算。在低洗牌合并,修改的行,而不是加工没有任何打乱,昂贵的处理或其他增加开销。

优化的数据布局

除了运行更快,洗牌合并低福利后续操作。越早合并实现了修改的数据的数据布局完全改变,导致较低的性能对后续操作。低洗牌合并试图保护的现有数据布局修改的记录,包括z值的优化力所能及。因此,较低的洗牌合并,三角洲表操作的性能将降低运行一个或多个后更慢合并命令。

请注意

低洗牌合并试图保持现有数据的数据布局不修改。更新或新插入数据的数据布局可能不是最优,所以它可能仍然需要运行优化优化ZORDER由命令。

可用性

低洗牌的合并是默认启用砖运行时10.4及以上。在早期支持砖启用运行时版本可以通过设置的配置spark.databricks.delta.merge.enableLowShuffle真正的。这个标志在砖运行时10.4及以上没有影响。