Hive-0.8.1索引的实验
先说一个0.7.1和0.8.1的Metastore不兼容
一。外部表的索引。
因为怕麻烦,就继续用之前的table02的数据,在new meta里也叫table02,不过改成了external表 。最后的结论是Hive的索引也是支持外部表的。
建立索引,运行。还是6个mapper,不行。
二。建立内部表
CTAS from table02,建立一个内部表table03;
?
重点是,换了0.8.1,
<property> ? <name>hive.optimize.index.filter</name> ? <value>true</value> ? <description>Whether to enable automatic use of indexes</description> </property>
建立了索引:
?
[sql] view plaincopyprint?
hive>? create ? index ?table03_index? on ? table ?table03(id)??????????????????????
????>? as ? 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' ?????
????>? with ?deferred?rebuild;???????????????????????????????????????????????
OK??
Time ?taken:?2.221?seconds??
hive>?show?tables;????????????
OK??
default__table02_compact_index__??
default__table03_table03_index__??
table02??
table03??
Time ?taken:?1.073?seconds??
hive>?dfs?-ls?/ user /hive/warehouse/default__table03_table03_index__;????
hive>?dfs?-ls?/ user /hive/warehouse/default__table02_compact_index__;??
Found?1?items??
-rw-r ??
hive>? alter ? index ?table03_index? on ?table03?rebuild;??
现在重新query:
?
?
[sql] view plaincopyprint?
hive>? select ?*? from ?table03? where ?id=500000;???????????????????????????????
Total?MapReduce?jobs?=?1??
Launching?Job?1?
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。