dropIndices API用于删除索引,可调用接口删除不再需要的索引表。
void dropIndices(TableName tableName, List<String> indexNames)
参数名称 |
取值类型 |
描述 |
---|---|---|
tableName |
TableName |
用户数据表 |
List<String> indexNames |
List<String> |
将要删除的索引表 |
//创建用户表myuser,并添加数据 Admin admin = connection.getAdmin(); TableName myuser = TableName.valueOf("myuser"); HTableDescriptor hTableDescriptor = new HTableDescriptor(myuser); HColumnDescriptor f1 = new HColumnDescriptor("f1"); hTableDescriptor.addFamily(f1); admin.createTable(hTableDescriptor); try (Table table = conn.getTable(myuser)) { Put put0 = new Put(Bytes.toBytes("001")); put0.addColumn(Bytes.toBytes("f1"), Bytes.toBytes("q1"), Bytes.toBytes("test")); table.put(ImmutableList.of(put0)); } //创建索引表myindex TableIndices myindex = new TableIndices(); HIndexSpecification spec = new HIndexSpecification("myindex"); //对数据表f1列族的q1创建索引,数据类型是STRING spec.addIndexColumn(Bytes.toBytes("f1"), Bytes.toBytes("q1"), ValueType.STRING); myindex.addIndex(spec); GlobalIndexAdmin globalIndexAdmin = GlobalIndexClient.newIndexAdmin(admin); globalIndexAdmin.addIndicesWithData(myuser, myindex); // 删除索引表myindex globalIndexAdmin.dropIndices(myuser, Collections.singletonList("myindex"));