我在執行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