hadoop – Hive查询不使用索引

我正在分析在hive表上使用索引的影响.我创建了一个包含5列(COL1,COL2,COL3,COL4,COL5)的表格,并在其中加载了100000行.我还在这张桌子上创建了一个关于COL1的索引.

我在COL1上运行select * with WHERE子句,这是一个索引列.

与在运行索引之前运行相同查询的情况相比,我发现查询运行时没有任何改进.

我在我的选择查询上做了一个EXPLAIN,它显示了TableScan而不是IndexScan,我无法弄清楚为什么它没有使用索引.

请帮忙.

最佳答案 您可以查看
this
this,但基本上如下;

>创建索引

CREATE INDEX .. ON TABLE …
>构建索引

ALTER INDEX .. ON .. REBUILD;
>使用索引

INSERT OVERWRITE DIRECTORY’/ tmp / indexes / ..’SELECT _bucketname,_offsets FROM default__t _..__…

SET hive.index.compact.file = / tmp / indexes / x;

SET hive.input.format = org.apache.hadoop.hive.ql.index.compact.HiveCompactIndexInputFormat;

SELECT … from … where … group by …;

希望能帮助到你

点赞