HBase入门 索引 (十四)

文章详细介绍了如何配置HBbase的二级索引,包括开启设置、创建全局索引、包含索引和本地索引的方法,以及删除索引的命令。全局索引在查询时有特定限制,而本地索引则优化了写操作的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、配置HBbase

vim $HBASE_HOME/conf/hbase-site.xml
	
	<!--开启二级索引-->
	<property>
		<name>hbase.regionserver.wal.codec</name>
		<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
    </property>

在这里插入图片描述
记得分发重启hbase
没配置,创建索引会报
Error: ERROR 1029 (42Y88): Mutable secondary indexes must have the hbase.regionserver.wal.codec property set to org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec in the hbase-sites.xml of every region server. tableName=AGE (state=42Y88,code=1029)
在这里插入图片描述

2、创建全局索引

create index age on "bigdata"."student"("msg"."age")

发现创建索引后,还是 ROBIN FULL SCAN OVER
在这里插入图片描述
那是因为全局索引,如果查询除了id,和创建的索引字段,还是不会走索引的
取出"info"."name"就走了
在这里插入图片描述

三、包含索引,解决查询字段必须只能为id和所创建索引字段

create index age on "bigdata"."student"("msg"."age") include ("info"."name")

效果
在这里插入图片描述

四、本地索引

索引数据和数据表的数据是存放在同一张表中(且是同一个 Region),避免了在写操作 的时候往不同服务器的索引表中写索引带来的额外开销。
本地索引会将所有的信息存在一个影子列族中,虽然读取的时候也是范围扫描,但是没有全 局索引快,优点在于不用写多个表了。

create local index age on "bigdata"."student"("msg"."age")

在这里插入图片描述

五、删除索引

drop index age on "bigdata"."student"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值