我明白什么是蜂巢中的桶,我对它有深刻的了解。 我正在经历hive documentation,并在那里提到:
Bucketed table非常棒,因为它们可以提高效率 采样比非隔离表,他们可能以后允许 节省时间的操作,例如mapside连接。
有人可以解释一下bucketing如何对地图边连接有益吗?
提前致谢。
答案 0 :(得分:0)
shuffle阶段非常昂贵,因为它需要排序和合并。管理shuffle和reduce阶段可以提高任务性能。地图连接的动机是去除shuffle并减少阶段,并在Map阶段自己进行连接。因此,当其中一个表足够小以适合内存时,所有映射器都可以将数据保存在内存中并在那里进行连接工作。 因此,在Sort Merge bucketed join中,两个表都被删除,并且一个表中的桶数量是另一个表的一半。由于其中一个bucketed表小到足以适合内存,所以我们可以利用Map通过跳过shuffle并完全减少阶段来加入这里。