美文网首页
Hive-索引

Hive-索引

作者: 三分清醒 | 来源:发表于2020-02-06 01:13 被阅读0次

Hive 索引

Lefty Leverenz创建,最后修改于六月17,2018

从3.0开始删除索引

还有一些替代选项可能与索引相似:

  • 具有自动重写的物化视图可以产生非常相似的结果。 Hive 2.3.0 添加了对实体视图的支持。
  • 使用列式存储文件格式(ParquetORC) – 它们可以进行选择性扫描;他们甚至可能会跳过整个文件/块。

索引已 在3.0版(HIVE-18448)中删除

Hive索引概述

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

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

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

索引资源

可以在以下位置找到有关如何使用Hive索引的文档和示例:

Hive索引的配置参数

配置属性文件描述参数配置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;

相关文章

  • Hive-索引

    简介 Hive从0.7.0版本开始加入了索引,目的是提高Hive表指定列的查询速度。没有索引的时候,Hive在执行...

  • Hive-索引

    Hive 索引 由Lefty Leverenz创建,最后修改于六月17,2018 从3.0开始删除索引 Hive索...

  • 数仓--Hive--面试题准备

    数仓--Hive-面试之Hive与HBase的区别数仓--Hive-面试之Hive架构原理数仓--Hive-面试之...

  • hsql优化

    HSQL 转载:https://www.fangxuan.win/2018/08/09/hive-%E6%80%A...

  • Apache Hive - 通用调优

    Apache Hive-通用优化-featch抓取机制 mr本地模式 Fetch抓取机制 功能:在执行sql的时...

  • hive-函数

    1、建表导入json数据 建表:create table rating_json(json string); 导入...

  • hive-入门

    hive脚本执行: hive建表语句: 创建一个文件并上传到hdfs: 查看表中的数据: 以上创建的表都是内部表,...

  • HIVE- 数据倾斜

    数据倾斜就是由于数据分布不均匀,数据大量集中到一点上,造成数据热点。大多数情况下,分为一下三种情况: 1.map端...

  • Hive-函数汇总

    [toc] 关系运算 1、等值比较: = 语法:A=B操作类型:所有基本类型描述: 如果表达式A与表达式B相等,则...

  • Hive-初识HIVE(一)

    转载自:https://www.cnblogs.com/qingyunzong/p/8707885.html Hi...

网友评论

      本文标题:Hive-索引

      本文链接:https://www.haomeiwen.com/subject/qnijxhtx.html