首页 > 解决方案 > 非 equi 中的分桶加入蜂巢

问题描述

目前 hive 确实支持非 equi 连接。但是随着叉积变得非常大,我想知道有哪些选项可以处理大型事实(2570 亿行,37 tb)和相对较小(8.7 gb)的维度表连接。

在 equi join 的情况下,我可以通过在 join column/columns 上进行适当的分桶使其轻松工作。(使用相同数量的桶进行 SMBM 实际上转换为地图连接)。但是,如果我们认为当它是非等值连接时这不会有任何优势,因为这些值将存在于其他存储桶中,实际上会触发洗牌,即减少阶段。

如果有人有任何想法来克服这个问题,请提出......

标签: joinhivepartitioningmapjoin

解决方案


如果维度表适合内存,您可以按照此处所述创建自定义用户定义函数 (UDF) ,并在内存中执行不等连接。


推荐阅读