hive索引

Hive索引概述

Hive索引的目标是提高对表的某些列的查询查询的速度。如果没有索引,使用谓词(如“WHERE tab1.col1 = 10”)的查询将加载整个表或分区,并处理所有行。但是如果col1存在索引,则只需要加载和处理文件的一部分。

索引可以提供的查询速度的提高以创建索引和磁盘空间以存储索引的额外处理为代价。

版本

Hive索引在版本0.7.0中添加,位图索引添加在版本0.8.0中。

索引资源

如何使用Hive索引的文档和示例可以在这里找到:

  • 索引 - 设计文档(列出对当前状态的JIRA建立索引,从HIVE-417开始)
  • Indexed Hive - 概述和示例,Prafulla Tekawade和Nikhil Deshpande,2010年10月

Hive索引的配置参数

配置属性文件描述了配置蜂巢指标参数。

简单示例

本节给出了从Hive测试套件中修改的一些索引示例。

区分大小写

在Hive 0.12.0和更低版本中,对于CREATE INDEX和DROP INDEX语句,索引名称区分大小写。但是,ALTER INDEX需要使用小写字母创建的索引名称(请参阅  HIVE-2752)。 通过使索引名称对所有HiveQL语句不区分大小写,此错误在  Hive 0.13.0中得到了修复。对于0.13.0之前的版本,最佳做法是对所有索引名称使用小写字母。

 

创建/构建,显示和删除索引:

CREATE INDEX table01_index ON TABLE table01(column2)AS'COMPACT';
SHOW INDEX ON table01;
DROP INDEX table01_index ON table01;

创建然后构建,显示格式化(使用列名),并删除索引:

CREATE INDEX table02_index ON TABLE table02(column3)AS'COMPACT'WITH DEFERRED REBUILD;
ALTER INDEX table02_index ON table2 REBUILD;
SHOW FORMATTED INDEX ON table02;
DROP INDEX table02_index ON table02;

创建位图索引,构建,显示和删除:

CREATE INDEX table03_index ON TABLE table03(column4)AS'BITMAP'WITH DEFERRED REBUILD;
ALTER INDEX table03_index ON table03 REBUILD;
SHOW FORMATTED INDEX ON table03;
DROP INDEX table03_index ON table03;

在新表中创建索引:

CREATE INDEX table04_index ON TABLE table04(column5)AS'COMPACT'WITH DEFERRED REBUILD IN TABLE table04_index_table;

创建索引存储为RCFile:

CREATE INDEX table05_index ON TABLE table05(column6)AS'COMPACT'STORED AS RCFILE;

创建索引存储为文本文件:

CREATE INDEX table06_index ON TABLE table06(column7)AS'COMPACT'ROW FORMAT DELIMITED FIELDS TERMINATED BY'\ t'STORED AS TEXTFILE;

创建带索引属性的索引:

CREATE INDEX table07_index ON TABLE table07(column8)AS'COMPACT'IDXPROPERTIES(“prop1”=“value1”,“prop2”=“value2”);

使用表格属性创建索引:

CREATE INDEX table08_index ON TABLE table08(column9)AS'COMPACT'TBLPROPERTIES(“prop3”=“value3”,“prop4”=“value4”);

丢弃索引(如果存在):

DROP INDEX IF EXISTS table09_index ON table09;

在分区上重建索引:

ALTER INDEX table10_index ON table10 PARTITION(columnX ='valueQ',columnY ='valueR')REBUILD;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值