SMB join (针对bucket mapjoin 的一种优化)
条件
1)set hive.auto.convert.sortmerge.join=true;
set hive.optimize.bucketmapjoin = true;
set hive.optimize.bucketmapjoin.sortedmerge = true;
set hive.auto.convert.sortmerge.join.noconditionaltask=true;
2) 小表的bucket数=大表bucket数
3) Bucket 列 ==Join列 == sort 列
4) 必须是应用在bucket mapjoin 的场景中
smb-join基于sorted-merge的有序bucket可实现在map端完成join操作,可以有限地减少或避免shuffle的数据量。