我在hbase表"mytable“中有以下几行具有这些键的行
user_1
user_2
user_3
...
user_9999999
我想使用Hbase shell删除以下内容中的行:
user_500到user_900
我知道没有办法删除,但是有没有办法我可以用"BulkDeleteProcessor“来删除呢?
我在这里看到:
我只想粘贴导入内容,然后将其粘贴到shell中,但不知道如何操作。有人知道如何在jruby hbase shell中使用这个端点吗?
Table ht = TEST_UTIL.getConnection().getTable("my_table");
long noOfDeletedRows = 0L;
Batch.Call<BulkDeleteService, BulkDeleteResponse> callable =
new Batch.Call<BulkDeleteService, BulkDeleteResponse>() {
ServerRpcController controller = new ServerRpcController();
BlockingRpcCallback<BulkDeleteResponse> rpcCallback =
new BlockingRpcCallback<BulkDeleteResponse>();
public BulkDeleteResponse call(BulkDeleteService service) throws IOException {
Builder builder = BulkDeleteRequest.newBuilder();
builder.setScan(ProtobufUtil.toScan(scan));
builder.setDeleteType(deleteType);
builder.setRowBatchSize(rowBatchSize);
if (timeStamp != null) {
builder.setTimestamp(timeStamp);
}
service.delete(controller, builder.build(), rpcCallback);
return rpcCallback.get();
}
};
Map<byte[], BulkDeleteResponse> result = ht.coprocessorService(BulkDeleteService.class, scan
.getStartRow(), scan.getStopRow(), callable);
for (BulkDeleteResponse response : result.values()) {
noOfDeletedRows += response.getRowsDeleted();
}
ht.close();
如果无法通过JRuby、Java或其他方法快速删除多行,则也可以。
https://stackoverflow.com/questions/32598003
复制相似问题