У меня есть следующие строки с этими ключами в Hbase таблице «туЬаЫе»Как массировать несколько строк в hbase?
user_1
user_2
user_3
...
user_9999999
Я хочу использовать оболочку Hbase удалять строки из:
user_500 в user_900
Я знаю, что есть нет способа удалить, но есть ли способ использовать «BulkDeleteProcessor» для этого?
Я вижу здесь:
Я хочу, чтобы просто вставить импорта, а затем вставьте его в оболочку, но не имеют ни малейшего представления, как идти об этом. Кто-нибудь знает, как я могу использовать эту конечную точку из оболочки jruby hbase?
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 или альтернативный способ для быстрого удаления нескольких строк хорошо.
Просто любопытно, как это рубин, как отмечено? – lcguida
Удалённый флаг, это больше jruby. – Rolando