HBase Phoenix 二级索引

二级索引配置文件

添加如下配置到 HBase 的 HRegionserver 节点的 hbase-site.xml

 
     
hbase.regionserver.wal.codec
org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCod ec 

分发到其他服务器
/home/xsync /opt/module/hbase/conf/hbase-site.xml

全局索引

Global Index 是默认的索引格式,创建全局索引时,会在 HBase 中建立一张新表。也就是说索引数据和数据表是存放在不同的表中的,因此全局索引适用于多读少写的业务场景。

写数据的时候会消耗大量开销,因为索引表也要更新,而索引表是分布在不同的数据节点上的,跨节点的数据传输带来了较大的性能消耗。

在读数据的时候 Phoenix 会选择索引表来降低查询消耗的时间。

创建单个字段的全局索引

连接 Phoenix
/opt/module/phoenix/bin/sqlline.py hadoop100,hadoop101,hadoop102:2181

创建索引
CREATE INDEX my_index ON student(age);

创建包含索引
CREATE INDEX my_index ON student(age) include (addr);

本地索引
CREATE LOCAL INDEX my_index ON student(age,addr);

可以看到如下多了索引表
在这里插入图片描述
删除索引
drop index my_index on student;

查看二级索引是否有效
explain select id from student where age = 10;

有索引,explain结果显示索引扫描
,name
无索引,explain结果显示全局扫描
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部