Impala 的广播式关联 和 分区后散列关联
Impala 如何计划并执行分布式关联查询
广播式关联:
Impala 默认的关联方式就是广播式关联,它的原理是 在多张表进行关联时,将最小的数据集发送到执行sql 计划的 Impalad 中,Impalad接收到数据以后,按照哈希表的方式存放到内存中,在就近读取大的表数据,进行匹配。
分区后散列关联:
这个关联方式,会将sql 中涉及的表按照相同的散列函数形成不同的分区,将数据发送到各个Impalad 中,然后每个Impalad 在进行关联操作。
总结:
网络传输: 广播式关联只使用小表进行网络传输一次, 分区后散列关联则需要进行多次网络传输。
内存:广播式关联明显要使用更多的内存
我们可以在sql 中自定义关联的方式,但是我们一般不建议这么做,因为现在的小表以后不一定是小表,让程序自己判断就好了。

本文深入探讨了Impala中的两种关联查询方式:广播式关联和分区后散列关联。广播式关联通过网络传输小表数据至各节点,利用内存哈希表加速匹配;分区后散列关联则对数据进行分区,减少网络传输次数。文章对比了两种方式在网络传输和内存使用上的区别。
234

被折叠的 条评论
为什么被折叠?



