2012-07-23 45 views
1

我在hadoop集羣上有一個相當大的Hive表(約200億條記錄),我需要對它進行多次連接。Hive中的索引

是否有可能在一個鍵索引此表?例如,如果表名是表1,我想要做的表1多加入與表2表3 4列關鍵什麼是做到這一點的最有效方法?

如果相關的表2-4是相對非常小(〜億個)

回答

1

恕我直言,指數將在這種情況下幫助,只有當它有table1的非常高的選擇性。如果table1的嚴重部分(我會推測多於1%到5%)將會是連接的結果,那麼索引不會有效。原因是你會在任何情況下閱讀所有頁面/塊。
Hive可以決定一個表很小,並將其用作每個映射器上的內存散列表,而不用混洗。 https://issues.apache.org/jira/browse/HIVE-195
您也可以從事實,你的表是在mapjoin的情況下劃分的改進: https://issues.apache.org/jira/browse/HIVE-917
我不知道,如果蜂巢能夠做常見的連接使用分區信息。