我在执行bucketed map join时遇到问题。Hive Bucketed Map加入
我正在使用配置单元0.10。
表1是年,月,日的分区表。每个分区数据由列c1分成128个存储桶。我每天有近1亿条记录。
Table 1
create table1
(
....
....
)
partitioned by (year int,month int,day int)
CLUSTERED BY(c1) INTO 128 BUCKETS;
表2是分时段上柱C1的大型查找表。我有8000万条记录加载到128个桶中。
Table 2
create table2
(
c1
c2
...
)
CLUSTERED BY(c1) INTO 128 BUCKETS;
我检查了数据,它按照期望加载到桶中。
现在,我试图强制bucketed地图加入。这就是我卡住的地方。
set hive.auto.convert.join=true;
set hive.optimize.bucketmapjoin = true;
set hive.mapjoin.bucket.cache.size=1000000;
select a.c1 as c1_tb2,a.c2
b.c1,b....
from table2 a
JOIN table1 b
ON (a.c1=b.c1);
我还没有得到bucketed地图连接。我错过了什么吗?即使我试图只在一个分区上执行连接。但是,我仍然得到相同的结果。
或
Bucketed map join不起作用分区表?
请帮忙。谢谢。
你有没有设置'hive.enforce.bucketing = TRUE'前加载数据?另外,由于桶的数量是相同的,我认为你最好使用'sort-merge'加入。 – visakh
我已经设置了hive.enforce.bucketing = true参数。我尝试使用排序合并连接。但是,我不知道如何知道排序合并连接是否正在发生? – jigarshah
以确保在查询中使用explain命令尝试进行操作 – fd8s0