禁用HBase全局二级索引
功能简介
全局二级索引的索引状态决定了索引是否有效,通过修改索引状态,可以实现索引的禁用、启用、弃用(不再生成索引数据)等功能。通过调用“org.apache.hadoop.hbase.hindex.global.GlobalIndexAdmin”中的方法可以完成对索引状态的修改,相关API介绍请参见的“全局二级索引API介绍”章节。
代码样例
以下代码片段在com.huawei.bigdata.hbase.examples包的“GlobalSecondaryIndexSample”类中。
本样例实现了禁用idx_id_age索引功能,即查询时不会使用此索引,但会生成索引数据。
/**
* alter index to UNUSABLE state.
*/
public void testAlterIndex() {
LOG.info("Entering testAlterIndex.");
List<String> indexNameList = Lists.newArrayList("idx_id_age");
// Instantiate HIndexAdmin Object
try (GlobalIndexAdmin iAdmin = GlobalIndexClient.newIndexAdmin(conn.getAdmin())) {
iAdmin.alterGlobalIndicesUnusable(tableName, indexNameList);
LOG.info("Alter indices to UNUSABLE successfully.");
} catch (IOException e) {
LOG.error("Alter indices to UNUSABLE failed.", e);
}
LOG.info("Exiting testAlterIndex.");
}