@InterfaceAudience.Public public interface Table extends Closeable
Connection
and
call close()
afterwards.
Table
can be used to get, put, delete or scan data from a table.
ConnectionFactory
,
Connection
,
Admin
,
RegionLocator
Modifier and Type | Interface and Description |
---|---|
static interface |
Table.CheckAndMutateBuilder
Deprecated.
Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
any more.
|
static interface |
Table.CheckAndMutateWithFilterBuilder
Deprecated.
Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
any more.
|
Modifier and Type | Method and Description |
---|---|
default Result |
append(Append append)
Appends values to one or more columns within a single row.
|
default void |
batch(List<? extends Row> actions,
Object[] results)
Method that does a batch call on Deletes, Gets, Puts, Increments, Appends, RowMutations.
|
default <R> void |
batchCallback(List<? extends Row> actions,
Object[] results,
Batch.Callback<R> callback)
Deprecated.
since 3.0.0, will removed in 4.0.0. Please use the batch related methods in
AsyncTable directly if you want to use callback. We reuse the callback for
coprocessor here, and the problem is that for batch operation, the
AsyncTable does not tell us the region, so in this method we need an extra
locating after we get the result, which is not good. |
default <R extends org.apache.hbase.thirdparty.com.google.protobuf.Message> |
batchCoprocessorService(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor methodDescriptor,
org.apache.hbase.thirdparty.com.google.protobuf.Message request,
byte[] startKey,
byte[] endKey,
R responsePrototype)
Deprecated.
since 3.0.0, will removed in 4.0.0. The batch call here references the blocking
interface for of a protobuf stub, so it is not possible to do it in an asynchronous
way, even if now we are building the
Table implementation based on the
AsyncTable , which is not good. Use the coprocessorService methods in
AsyncTable directly instead. |
default <R extends org.apache.hbase.thirdparty.com.google.protobuf.Message> |
batchCoprocessorService(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor methodDescriptor,
org.apache.hbase.thirdparty.com.google.protobuf.Message request,
byte[] startKey,
byte[] endKey,
R responsePrototype,
Batch.Callback<R> callback)
Deprecated.
since 3.0.0, will removed in 4.0.0. The batch call here references the blocking
interface for of a protobuf stub, so it is not possible to do it in an asynchronous
way, even if now we are building the
Table implementation based on the
AsyncTable , which is not good. Use the coprocessorService methods in
AsyncTable directly instead. |
default Table.CheckAndMutateBuilder |
checkAndMutate(byte[] row,
byte[] family)
Deprecated.
Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
any more.
|
default Table.CheckAndMutateWithFilterBuilder |
checkAndMutate(byte[] row,
Filter filter)
Deprecated.
Since 3.0.0, will be removed in 4.0.0. For internal test use only, do not use it
any more.
|
default CheckAndMutateResult |
checkAndMutate(CheckAndMutate checkAndMutate)
checkAndMutate that atomically checks if a row matches the specified condition.
|
default List<CheckAndMutateResult> |
checkAndMutate(List<CheckAndMutate> checkAndMutates)
Batch version of checkAndMutate.
|
default void |
close()
Releases any resources held or pending changes in internal buffers.
|
default CoprocessorRpcChannel |
coprocessorService(byte[] row)
Deprecated.
since 3.0.0, will removed in 4.0.0. This is too low level, please stop using it any
more. Use the coprocessorService methods in
AsyncTable instead. |
default <T extends org.apache.hbase.thirdparty.com.google.protobuf.Service,R> |
coprocessorService(Class<T> service,
byte[] startKey,
byte[] endKey,
Batch.Call<T,R> callable)
Deprecated.
since 3.0.0, will removed in 4.0.0. The batch call here references the blocking
interface for of a protobuf stub, so it is not possible to do it in an asynchronous
way, even if now we are building the
Table implementation based on the
AsyncTable , which is not good. Use the coprocessorService methods in
AsyncTable directly instead. |
default <T extends org.apache.hbase.thirdparty.com.google.protobuf.Service,R> |
coprocessorService(Class<T> service,
byte[] startKey,
byte[] endKey,
Batch.Call<T,R> callable,
Batch.Callback<R> callback)
Deprecated.
since 3.0.0, will removed in 4.0.0. The batch call here references the blocking
interface for of a protobuf stub, so it is not possible to do it in an asynchronous
way, even if now we are building the
Table implementation based on the
AsyncTable , which is not good. Use the coprocessorService methods in
AsyncTable directly instead. |
default void |
delete(Delete delete)
Deletes the specified cells/row.
|
default void |
delete(List<Delete> deletes)
Batch Deletes the specified cells/rows from the table.
|
default boolean |
exists(Get get)
Test for the existence of columns in the table, as specified by the Get.
|
default boolean[] |
exists(List<Get> gets)
Test for the existence of columns in the table, as specified by the Gets.
|
default Result |
get(Get get)
Extracts certain cells from a given row.
|
default Result[] |
get(List<Get> gets)
Extracts specified cells from the given rows, as a batch.
|
org.apache.hadoop.conf.Configuration |
getConfiguration()
Returns the
Configuration object used by this instance. |
TableDescriptor |
getDescriptor()
Gets the
table descriptor for this
table. |
TableName |
getName()
Gets the fully qualified table name instance of this table.
|
default long |
getOperationTimeout(TimeUnit unit)
Get timeout of each operation in Table instance.
|
default long |
getReadRpcTimeout(TimeUnit unit)
Get timeout of each rpc read request in this Table instance.
|
RegionLocator |
getRegionLocator()
Gets the
RegionLocator for this table. |
default long |
getRpcTimeout(TimeUnit unit)
Get timeout of each rpc request in this Table instance.
|
default ResultScanner |
getScanner(byte[] family)
Gets a scanner on the current table for the given family.
|
default ResultScanner |
getScanner(byte[] family,
byte[] qualifier)
Gets a scanner on the current table for the given family and qualifier.
|
default ResultScanner |
getScanner(Scan scan)
Returns a scanner on the current table as specified by the
Scan object. |
default long |
getWriteRpcTimeout(TimeUnit unit)
Get timeout of each rpc write request in this Table instance.
|
default Result |
increment(Increment increment)
Increments one or more columns within a single row.
|
default long |
incrementColumnValue(byte[] row,
byte[] family,
byte[] qualifier,
long amount)
|
default long |
incrementColumnValue(byte[] row,
byte[] family,
byte[] qualifier,
long amount,
Durability durability)
Atomically increments a column value.
|
default Result |
mutateRow(RowMutations rm)
Performs multiple mutations atomically on a single row.
|
default void |
put(List<Put> puts)
Batch puts the specified data into the table.
|
default void |
put(Put put)
Puts some data in the table.
|
org.apache.hadoop.conf.Configuration getConfiguration()
Configuration
object used by this instance.
The reference returned is not a copy, so any change made to it will affect this instance.
TableDescriptor getDescriptor() throws IOException
table descriptor
for this
table.IOException
- if a remote or network exception occurs.RegionLocator getRegionLocator() throws IOException
RegionLocator
for this table.IOException
default boolean exists(Get get) throws IOException
This will return true if the Get matches one or more keys, false if not.
This is a server-side call so it prevents any data from being transfered to the client.
get
- the GetIOException
- edefault boolean[] exists(List<Get> gets) throws IOException
This will return an array of booleans. Each value will be true if the related Get matches one or more keys, false if not.
This is a server-side call so it prevents any data from being transferred to the client.
gets
- the GetsIOException
- edefault void batch(List<? extends Row> actions, Object[] results) throws IOException, InterruptedException
batch(java.util.List<? extends org.apache.hadoop.hbase.client.Row>, java.lang.Object[])
call, you will not necessarily be guaranteed that the Get returns what the
Put had put.actions
- list of Get, Put, Delete, Increment, Append, RowMutations.results
- Empty Object[], same size as actions. Provides access to partial results, in
case an exception is thrown. A null in the result array means that the call for
that action failed, even after retries. The order of the objects in the results
array corresponds to the order of actions in the request list.IOException
InterruptedException
@Deprecated default <R> void batchCallback(List<? extends Row> actions, Object[] results, Batch.Callback<R> callback) throws IOException, InterruptedException
AsyncTable
directly if you want to use callback. We reuse the callback for
coprocessor here, and the problem is that for batch operation, the
AsyncTable
does not tell us the region, so in this method we need an extra
locating after we get the result, which is not good.batch(List, Object[])
, but with a callback.IOException
InterruptedException
default Result get(Get get) throws IOException
get
- The object that specifies what data to fetch and from which row.Result
instance returned won't contain any
KeyValue
, as indicated by Result.isEmpty()
.IOException
- if a remote or network exception occurs.default Result[] get(List<Get> gets) throws IOException
gets
- The objects that specify what data to fetch and from which rows.Result
instance returned won't contain any
Cell
s, as indicated by Result.isEmpty()
. If
there are any failures even after retries, there will be a null
in the
results' array for those Gets, AND an exception will be thrown. The ordering of the
Result array corresponds to the order of the list of passed in Gets.IOException
- if a remote or network exception occurs.put(List)
runs pre-flight validations on the input list on client. Currently
get(List)
doesn't run any validations on the client-side, currently there is
no need, but this may change in the future. An IllegalArgumentException
will
be thrown in this case.default ResultScanner getScanner(Scan scan) throws IOException
Scan
object. Note that the
passed Scan
's start row and caching properties maybe changed.scan
- A configured Scan
object.IOException
- if a remote or network exception occurs.default ResultScanner getScanner(byte[] family) throws IOException
family
- The column family to scan.IOException
- if a remote or network exception occurs.default ResultScanner getScanner(byte[] family, byte[] qualifier) throws IOException
family
- The column family to scan.qualifier
- The column qualifier to scan.IOException
- if a remote or network exception occurs.default void put(Put put) throws IOException
put
- The data to put.IOException
- if a remote or network exception occurs.default void put(List<Put> puts) throws IOException
This can be used for group commit, or for submitting user defined batches. Before sending a
batch of mutations to the server, the client runs a few validations on the input list. If an
error is found, for example, a mutation was supplied but was missing it's column an
IllegalArgumentException
will be thrown and no mutations will be applied. If there are
any failures even after retries, a RetriesExhaustedWithDetailsException
will be thrown.
RetriesExhaustedWithDetailsException contains lists of failed mutations and corresponding
remote exceptions. The ordering of mutations and exceptions in the encapsulating exception
corresponds to the order of the input list of Put requests.
puts
- The list of mutations to apply.IOException
- if a remote or network exception occurs.default void delete(Delete delete) throws IOException
delete
- The object that specifies what to delete.IOException
- if a remote or network exception occurs.default void delete(List<Delete> deletes) throws IOException
If a specified row does not exist, Delete
will report as though sucessful delete; no
exception will be thrown. If there are any failures even after retries, a
RetriesExhaustedWithDetailsException
will be thrown.
RetriesExhaustedWithDetailsException contains lists of failed Delete
s and corresponding
remote exceptions.
deletes
- List of things to delete. The input list gets modified by this method. All
successfully applied Delete
s in the list are removed (in particular it
gets re-ordered, so the order in which the elements are inserted in the list
gives no guarantee as to the order in which the Delete
s are executed).IOException
- if a remote or network exception occurs. In that case the deletes
argument will contain the Delete
instances that have not be
successfully applied.deletes
will no longer be modified. Also,
put(List)
runs pre-flight validations on the input list on client. Currently
delete(List)
doesn't run validations on the client, there is no need
currently, but this may change in the future. An IllegalArgumentException
will
be thrown in this case.@Deprecated default Table.CheckAndMutateBuilder checkAndMutate(byte[] row, byte[] family)
Use the returned Table.CheckAndMutateBuilder
to construct your request and then execute it.
This is a fluent style API, the code is like:
table.checkAndMutate(row, family).qualifier(qualifier).ifNotExists().thenPut(put);
@Deprecated default Table.CheckAndMutateWithFilterBuilder checkAndMutate(byte[] row, Filter filter)
Use the returned Table.CheckAndMutateWithFilterBuilder
to construct your request and then
execute it. This is a fluent style API, the code is like:
table.checkAndMutate(row, filter).thenPut(put);
default CheckAndMutateResult checkAndMutate(CheckAndMutate checkAndMutate) throws IOException
checkAndMutate
- The CheckAndMutate object.IOException
- if a remote or network exception occurs.default List<CheckAndMutateResult> checkAndMutate(List<CheckAndMutate> checkAndMutates) throws IOException
checkAndMutates
- The list of CheckAndMutate.IOException
- if a remote or network exception occurs.default Result mutateRow(RowMutations rm) throws IOException
rm
- object that specifies the set of mutations to perform atomicallyIOException
- if a remote or network exception occurs.default Result append(Append append) throws IOException
This operation guaranteed atomicity to readers. Appends are done under a single row lock, so write operations to a row are synchronized, and readers are guaranteed to see this operation fully completed.
append
- object that specifies the columns and values to be appendedIOException
- edefault Result increment(Increment increment) throws IOException
This operation ensures atomicity to readers. Increments are done under a single row lock, so write operations to a row are synchronized, and readers are guaranteed to see this operation fully completed.
increment
- object that specifies the columns and amounts to be used for the increment
operationsIOException
- edefault long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount) throws IOException
incrementColumnValue(byte[], byte[], byte[], long, Durability)
The Durability
is defaulted to Durability.SYNC_WAL
.
row
- The row that contains the cell to increment.family
- The column family of the cell to increment.qualifier
- The column qualifier of the cell to increment.amount
- The amount to increment the cell with (or decrement, if the amount is
negative).IOException
- if a remote or network exception occurs.default long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount, Durability durability) throws IOException
amount
and written to the specified column.
Setting durability to Durability.SKIP_WAL
means that in a fail scenario you will lose
any increments that have not been flushed.
row
- The row that contains the cell to increment.family
- The column family of the cell to increment.qualifier
- The column qualifier of the cell to increment.amount
- The amount to increment the cell with (or decrement, if the amount is
negative).durability
- The persistence guarantee for this increment.IOException
- if a remote or network exception occurs.default void close() throws IOException
close
in interface AutoCloseable
close
in interface Closeable
IOException
- if a remote or network exception occurs.@Deprecated default CoprocessorRpcChannel coprocessorService(byte[] row)
AsyncTable
instead.RpcChannel
instance connected to the table region containing the specified row. The row given does not
actually have to exist. Whichever region would contain the row based on start and end keys will
be used. Note that the row
parameter is also not passed to the coprocessor handler
registered for this protocol, unless the row
is separately passed as an argument in the
service request. The parameter here is only used to locate the region used to handle the call.
The obtained RpcChannel
instance can be
used to access a published coprocessor Service
using standard protobuf service
invocations:
CoprocessorRpcChannel channel = myTable.coprocessorService(rowkey); MyService.BlockingInterface service = MyService.newBlockingStub(channel); MyCallRequest request = MyCallRequest.newBuilder() ... .build(); MyCallResponse response = service.myCall(null, request);
row
- The row key used to identify the remote region locationConnection.toAsyncConnection()
@Deprecated default <T extends org.apache.hbase.thirdparty.com.google.protobuf.Service,R> Map<byte[],R> coprocessorService(Class<T> service, byte[] startKey, byte[] endKey, Batch.Call<T,R> callable) throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException, Throwable
Table
implementation based on the
AsyncTable
, which is not good. Use the coprocessorService methods in
AsyncTable
directly instead.Service
subclass for each table region spanning the
range from the startKey
row to endKey
row (inclusive), and invokes the passed
Batch.Call.call(T)
method with each
Service
instance.T
- the Service
subclass to connect toR
- Return type for the callable
parameter's
Batch.Call.call(T)
methodservice
- the protocol buffer Service
implementation to callstartKey
- start region selection with region containing this row. If null
, the
selection will start with the first table region.endKey
- select regions up to and including the region containing this row. If
null
, selection will continue through the last table region.callable
- this instance's
Batch.Call.call(T)
method will
be invoked once per table region, using the Service
instance connected
to that region.org.apache.hbase.thirdparty.com.google.protobuf.ServiceException
Throwable
Connection.toAsyncConnection()
@Deprecated default <T extends org.apache.hbase.thirdparty.com.google.protobuf.Service,R> void coprocessorService(Class<T> service, byte[] startKey, byte[] endKey, Batch.Call<T,R> callable, Batch.Callback<R> callback) throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException, Throwable
Table
implementation based on the
AsyncTable
, which is not good. Use the coprocessorService methods in
AsyncTable
directly instead.Service
subclass for each table region spanning the
range from the startKey
row to endKey
row (inclusive), and invokes the passed
Batch.Call.call(T)
method with each
Service
instance.
The given
Batch.Callback.update(byte[],byte[],Object)
method will be called with the return value from each region's
Batch.Call.call(T)
invocation.T
- the Service
subclass to connect toR
- Return type for the callable
parameter's
Batch.Call.call(T)
methodservice
- the protocol buffer Service
implementation to callstartKey
- start region selection with region containing this row. If null
, the
selection will start with the first table region.endKey
- select regions up to and including the region containing this row. If
null
, selection will continue through the last table region.callable
- this instance's
Batch.Call.call(T)
method will
be invoked once per table region, using the Service
instance connected
to that region.org.apache.hbase.thirdparty.com.google.protobuf.ServiceException
Throwable
Connection.toAsyncConnection()
@Deprecated default <R extends org.apache.hbase.thirdparty.com.google.protobuf.Message> Map<byte[],R> batchCoprocessorService(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor methodDescriptor, org.apache.hbase.thirdparty.com.google.protobuf.Message request, byte[] startKey, byte[] endKey, R responsePrototype) throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException, Throwable
Table
implementation based on the
AsyncTable
, which is not good. Use the coprocessorService methods in
AsyncTable
directly instead.Service
subclass for each table region spanning the
range from the startKey
row to endKey
row (inclusive), all the invocations to
the same region server will be batched into one call. The coprocessor service is invoked
according to the service instance, method name and parameters.R
- the response type for the coprocessor Service methodmethodDescriptor
- the descriptor for the protobuf service method to call.request
- the method call parametersstartKey
- start region selection with region containing this row. If
null
, the selection will start with the first table region.endKey
- select regions up to and including the region containing this row. If
null
, selection will continue through the last table region.responsePrototype
- the proto type of the response of the method in Service.org.apache.hbase.thirdparty.com.google.protobuf.ServiceException
Throwable
Connection.toAsyncConnection()
@Deprecated default <R extends org.apache.hbase.thirdparty.com.google.protobuf.Message> void batchCoprocessorService(org.apache.hbase.thirdparty.com.google.protobuf.Descriptors.MethodDescriptor methodDescriptor, org.apache.hbase.thirdparty.com.google.protobuf.Message request, byte[] startKey, byte[] endKey, R responsePrototype, Batch.Callback<R> callback) throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException, Throwable
Table
implementation based on the
AsyncTable
, which is not good. Use the coprocessorService methods in
AsyncTable
directly instead.Service
subclass for each table region spanning the
range from the startKey
row to endKey
row (inclusive), all the invocations to
the same region server will be batched into one call. The coprocessor service is invoked
according to the service instance, method name and parameters.
The given
Batch.Callback.update(byte[],byte[],Object)
method will be called with the return value from each region's invocation.R
- the response type for the coprocessor Service methodmethodDescriptor
- the descriptor for the protobuf service method to call.request
- the method call parametersstartKey
- start region selection with region containing this row. If
null
, the selection will start with the first table region.endKey
- select regions up to and including the region containing this row. If
null
, selection will continue through the last table region.responsePrototype
- the proto type of the response of the method in Service.callback
- callback to invoke with the response for each regionorg.apache.hbase.thirdparty.com.google.protobuf.ServiceException
Throwable
Connection.toAsyncConnection()
default long getRpcTimeout(TimeUnit unit)
unit
- the unit of time the timeout to be represented ingetReadRpcTimeout(TimeUnit)
,
getWriteRpcTimeout(TimeUnit)
default long getReadRpcTimeout(TimeUnit unit)
unit
- the unit of time the timeout to be represented indefault long getWriteRpcTimeout(TimeUnit unit)
unit
- the unit of time the timeout to be represented indefault long getOperationTimeout(TimeUnit unit)
unit
- the unit of time the timeout to be represented inCopyright © 2007–2020 The Apache Software Foundation. All rights reserved.