hive 索引

hive 索引,第1张

hive 索引

目录
  • 1、机制和原理
  • 2、优缺点
    • 2.1、优点
    • 2.2、缺点
  • 3、索引 *** 作
    • 3.1、创建索引
    • 2、查看索引
    • 3、删除索引
    • 4、加载索引数据
    • 5、使用索引

1、机制和原理

Hive的索引其实是一张索引表(Hive的物理表),在表里面存储索引列的值,该值对应的HDFS的文件路径,该值在数据文件中的偏移量。

当Hive通过索引列执行查询时,首先通过一个MR Job去查询索引表,根据索引列的过滤条件,查询出该索引列值对应的HDFS文件目录及偏移量,并且把这些数据输出到HDFS的一个文件中,然后再根据这个文件中去筛选原文件,作为查询Job的输入。

2、优缺点 2.1、优点
  • 可以避免全表扫描和资源浪费
  • 可以加快含有group by的语句的查询速度
2.2、缺点
  • 使用过程繁琐
  • 需用额外Job扫描索引表
  • 不会自动刷新,如果表有数据变动,索引表需要手动刷新
3、索引 *** 作 3.1、创建索引
create index index_name on table table_name(column_name)
as 'org.apache.hadoop.hive.ql.index.compact.compactindexhandler'
with deferred rebuild
in table index_table_name;

参数解释:

'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler':创建索引需要的实现类
index_name:索引名称
table_name:表名
column_name:索引列名
index_table_name:创建索引后生成的索引表名
2、查看索引
show index on table_name;
3、删除索引
drop index if exists index_name on table_name;
4、加载索引数据
alter index index_name on table_name rebuild;
5、使用索引
set hive.input.format=org.apache.hadoop.hive.ql.io.hiveinputformat;
set hive.optimize.index.filter=true;
set hive.optimize.index.filter.compact.minsize=0;

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5479512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存