org.apache.hadoop.hbase.coprocessor.example
Class BulkDeleteEndpoint
java.lang.Object
org.apache.hadoop.hbase.coprocessor.example.generated.BulkDeleteProtos.BulkDeleteService
org.apache.hadoop.hbase.coprocessor.example.BulkDeleteEndpoint
- All Implemented Interfaces:
- com.google.protobuf.Service, Coprocessor, CoprocessorService
public class BulkDeleteEndpoint
- extends BulkDeleteProtos.BulkDeleteService
- implements CoprocessorService, Coprocessor
Defines a protocol to delete data in bulk based on a scan. The scan can be range scan or with
conditions(filters) etc.This can be used to delete rows, column family(s), column qualifier(s)
or version(s) of columns.When delete type is FAMILY or COLUMN, which all family(s) or column(s)
getting deleted will be determined by the Scan. Scan need to select all the families/qualifiers
which need to be deleted.When delete type is VERSION, Which column(s) and version(s) to be
deleted will be determined by the Scan. Scan need to select all the qualifiers and its versions
which needs to be deleted.When a timestamp is passed only one version at that timestamp will be
deleted(even if Scan fetches many versions). When timestamp passed as null, all the versions
which the Scan selects will get deleted.
Example:
Scan scan = new Scan();
// set scan properties(rowkey range, filters, timerange etc).
HTable ht = ...;
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.VERSION);
builder.setRowBatchSize(rowBatchSize);
// Set optional timestamp if needed
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();
}
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BulkDeleteEndpoint
public BulkDeleteEndpoint()
getService
public com.google.protobuf.Service getService()
- Specified by:
getService
in interface CoprocessorService
delete
public void delete(com.google.protobuf.RpcController controller,
BulkDeleteProtos.BulkDeleteRequest request,
com.google.protobuf.RpcCallback<BulkDeleteProtos.BulkDeleteResponse> done)
- Description copied from class:
BulkDeleteProtos.BulkDeleteService
rpc delete(.BulkDeleteRequest) returns (.BulkDeleteResponse);
- Specified by:
delete
in class BulkDeleteProtos.BulkDeleteService
start
public void start(CoprocessorEnvironment env)
throws IOException
- Specified by:
start
in interface Coprocessor
- Throws:
IOException
stop
public void stop(CoprocessorEnvironment env)
throws IOException
- Specified by:
stop
in interface Coprocessor
- Throws:
IOException
Copyright © 2015 The Apache Software Foundation. All rights reserved.