我正在分析在hive表上使用索引的影响.我创建了一个包含5列(COL1,COL2,COL3,COL4,COL5)的表格,并在其中加载了100000行.我还在这张桌子上创建了一个关于COL1的索引.
我在COL1上运行select * with WHERE子句,这是一个索引列.
与在运行索引之前运行相同查询的情况相比,我发现查询运行时没有任何改进.
我在我的选择查询上做了一个EXPLAIN,它显示了TableScan而不是IndexScan,我无法弄清楚为什么它没有使用索引.
请帮忙.
>创建索引
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 …;
希望能帮助到你