修改索引状态
索引信息中的索引状态反映了索引当前的使用情况,总共有正常、被禁用、异常、正在生成、正在被删除五种状态,可通过命令对状态进行修改。
索引状态介绍
索引状态反映了索引当前的使用情况,全局二级索引支持以下五种状态。
- ACTIVE:索引正常,可以正常读写。
- UNUSABLE:索引被禁用,索引数据会正常更新,但查询时无法使用这个索引。
- INACTIVE:索引异常,索引数据与数据表不一致,索引数据不更新,查询数据时无法使用这个索引。
- BUILDING:索引数据正在生成,索引数据生成工具执行结束会自动转换到ACTIVE状态,存在该状态的索引时,不能对相关数据表进行修改。
- DROPPING:索引正在被删除,查询数据时无法使用这个索引。
索引各种状态之间的转化条件如图1所示。
场景介绍
用户可以使用全局二级索引工具或者调用API修改索引状态。
使用方法
执行以下命令可禁用/启用某个索引。
hbase com.huawei.boostkit.hindex.mapreduce.GlobalTableIndexer -Dtablename.to.index='table' -D[idx_state_opt]='idx1'

命令参数说明:
- tablename.to.index:表示需修改索引状态的数据表的名称。
- idx_state_opt:表示修改索引的目标状态,可选参数如下。
- indexnames.to.inactive:表示将指定的索引转换为INACTIVE状态。
- indexnames.to.active:表示将指定的索引转换为ACTIVE状态。
- indexnames.to.unusable:表示将指定的索引转换为UNUSABLE状态。
例如:修改状态为ACTIVE的tablename表的索引idx_1的状态为UNUSABLE。
1
|
hbase com.huawei.boostkit.hindex.mapreduce.GlobalTableIndexer -Dtablename.to.index='tablename' -Dindexnames.to.unusable='idx_1' |
执行成功后,再次查看索引信息。
1
|
hbase com.huawei.boostkit.hindex.mapreduce.GlobalTableIndexer -Dtablename.to.show=tablename |
结果如下图所示,idx_1的索引状态已被修改为UNUSABLE。
1 2 3 |
The index information of table : IndexName : idx_0, IndexColumns : [cf_0:q_0 -> type:STRING, cf_0:q_1 -> type:STRING], CoveredColumns : [cf_0:q_0 -> type:STRING], IndexState : ATIVE IndexName : idx_1, IndexColumns : [cf_0:q_0 -> type:STRING, cf_0:q_1 -> type:STRING, cf_0:q_2 -> type:STRING], CoveredColumns : [], IndexState : UNUSABLE |