@InterfaceAudience.Public @InterfaceStability.Stable public interface HTableInterface extends Closeable
HConnection
.Modifier and Type | Method and Description |
---|---|
Result |
append(Append append)
Appends values to one or more columns within a single row.
|
Object[] |
batch(List<? extends Row> actions)
Deprecated.
If any exception is thrown by one of the actions, there is no way to
retrieve the partially executed results. Use
batch(List, Object[]) instead. |
void |
batch(List<? extends Row> actions,
Object[] results)
Method that does a batch call on Deletes, Gets, Puts, Increments, Appends and RowMutations.
|
<R> Object[] |
batchCallback(List<? extends Row> actions,
org.apache.hadoop.hbase.client.coprocessor.Batch.Callback<R> callback)
Deprecated.
If any exception is thrown by one of the actions, there is no way to
retrieve the partially executed results. Use
batchCallback(List, Object[], org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)
instead. |
<R> void |
batchCallback(List<? extends Row> actions,
Object[] results,
org.apache.hadoop.hbase.client.coprocessor.Batch.Callback<R> callback)
Same as
batch(List, Object[]) , but with a callback. |
boolean |
checkAndDelete(byte[] row,
byte[] family,
byte[] qualifier,
byte[] value,
Delete delete)
Atomically checks if a row/family/qualifier value matches the expected
value.
|
boolean |
checkAndPut(byte[] row,
byte[] family,
byte[] qualifier,
byte[] value,
Put put)
Atomically checks if a row/family/qualifier value matches the expected
value.
|
void |
close()
Releases any resources held or pending changes in internal buffers.
|
void |
delete(Delete delete)
Deletes the specified cells/row.
|
void |
delete(List<Delete> deletes)
Deletes the specified cells/rows in bulk.
|
boolean |
exists(Get get)
Test for the existence of columns in the table, as specified by the Get.
|
Boolean[] |
exists(List<Get> gets)
Test for the existence of columns in the table, as specified by the Gets.
|
void |
flushCommits()
Executes all the buffered
Put operations. |
Result |
get(Get get)
Extracts certain cells from a given row.
|
Result[] |
get(List<Get> gets)
Extracts certain cells from the given rows, in batch.
|
org.apache.hadoop.conf.Configuration |
getConfiguration()
Returns the
Configuration object used by this instance. |
TableName |
getName()
Gets the fully qualified table name instance of this table.
|
Result |
getRowOrBefore(byte[] row,
byte[] family)
Deprecated.
As of version 0.92 this method is deprecated without
replacement.
getRowOrBefore is used internally to find entries in hbase:meta and makes
various assumptions about the table (which are true for hbase:meta but not
in general) to be efficient.
|
ResultScanner |
getScanner(byte[] family)
Gets a scanner on the current table for the given family.
|
ResultScanner |
getScanner(byte[] family,
byte[] qualifier)
Gets a scanner on the current table for the given family and qualifier.
|
ResultScanner |
getScanner(Scan scan)
Returns a scanner on the current table as specified by the
Scan
object. |
HTableDescriptor |
getTableDescriptor()
Gets the
table descriptor for this table. |
byte[] |
getTableName()
Gets the name of this table.
|
long |
getWriteBufferSize()
Returns the maximum size in bytes of the write buffer for this HTable.
|
Result |
increment(Increment increment)
Increments one or more columns within a single row.
|
long |
incrementColumnValue(byte[] row,
byte[] family,
byte[] qualifier,
long amount)
|
long |
incrementColumnValue(byte[] row,
byte[] family,
byte[] qualifier,
long amount,
boolean writeToWAL)
Deprecated.
|
long |
incrementColumnValue(byte[] row,
byte[] family,
byte[] qualifier,
long amount,
Durability durability)
Atomically increments a column value.
|
boolean |
isAutoFlush()
Tells whether or not 'auto-flush' is turned on.
|
void |
mutateRow(RowMutations rm)
Performs multiple mutations atomically on a single row.
|
void |
put(List<Put> puts)
Puts some data in the table, in batch.
|
void |
put(Put put)
Puts some data in the table.
|
void |
setAutoFlush(boolean autoFlush)
Deprecated.
in 0.96. When called with setAutoFlush(false), this function also
set clearBufferOnFail to true, which is unexpected but kept for historical reasons.
Replace it with setAutoFlush(false, false) if this is exactly what you want, or by
setAutoFlushTo(boolean) for all other cases. |
void |
setAutoFlush(boolean autoFlush,
boolean clearBufferOnFail)
Turns 'auto-flush' on or off.
|
void |
setAutoFlushTo(boolean autoFlush)
Set the autoFlush behavior, without changing the value of
clearBufferOnFail |
void |
setWriteBufferSize(long writeBufferSize)
Sets the size of the buffer in bytes.
|
byte[] getTableName()
TableName getName()
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.
HTableDescriptor getTableDescriptor() throws IOException
table descriptor
for this table.IOException
- if a remote or network exception occurs.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
- eBoolean[] 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 transfered to the client.
gets
- the GetsIOException
- evoid 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 objectsresults
- 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 retriesIOException
InterruptedException
Object[] batch(List<? extends Row> actions) throws IOException, InterruptedException
batch(List, Object[])
instead.batch(List, Object[])
, but returns an array of
results instead of using a results parameter reference.actions
- list of Get, Put, Delete, Increment, Append, RowMutations objectsIOException
InterruptedException
<R> void batchCallback(List<? extends Row> actions, Object[] results, org.apache.hadoop.hbase.client.coprocessor.Batch.Callback<R> callback) throws IOException, InterruptedException
batch(List, Object[])
, but with a callback.IOException
InterruptedException
<R> Object[] batchCallback(List<? extends Row> actions, org.apache.hadoop.hbase.client.coprocessor.Batch.Callback<R> callback) throws IOException, InterruptedException
batchCallback(List, Object[], org.apache.hadoop.hbase.client.coprocessor.Batch.Callback)
instead.batch(List)
, but with a callback.IOException
InterruptedException
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.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 KeyValue
, 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.IOException
- if a remote or network exception occurs.Result getRowOrBefore(byte[] row, byte[] family) throws IOException
row
- A row key.family
- Column family to include in the Result
.IOException
- if a remote or network exception occurs.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.ResultScanner getScanner(byte[] family) throws IOException
family
- The column family to scan.IOException
- if a remote or network exception occurs.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.void put(Put put) throws IOException
If isAutoFlush
is false, the update is buffered
until the internal buffer is full.
put
- The data to put.IOException
- if a remote or network exception occurs.void put(List<Put> puts) throws IOException
If isAutoFlush
is false, the update is buffered
until the internal buffer is full.
This can be used for group commit, or for submitting user defined batches. The writeBuffer will be periodically inspected while the List is processed, so depending on the List size the writeBuffer may flush not at all, or more than once.
puts
- The list of mutations to apply. The batch put is done by
aggregating the iteration of the Puts over the write buffer
at the client-side for a single RPC call.IOException
- if a remote or network exception occurs.boolean checkAndPut(byte[] row, byte[] family, byte[] qualifier, byte[] value, Put put) throws IOException
row
- to checkfamily
- column family to checkqualifier
- column qualifier to checkvalue
- the expected valueput
- data to put if check succeedsIOException
- evoid delete(Delete delete) throws IOException
delete
- The object that specifies what to delete.IOException
- if a remote or network exception occurs.void delete(List<Delete> deletes) throws IOException
deletes
- List of things to delete. List gets modified by this
method (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.boolean checkAndDelete(byte[] row, byte[] family, byte[] qualifier, byte[] value, Delete delete) throws IOException
row
- to checkfamily
- column family to checkqualifier
- column qualifier to checkvalue
- the expected valuedelete
- data to delete if check succeedsIOException
- evoid mutateRow(RowMutations rm) throws IOException
rm
- object that specifies the set of mutations to perform atomicallyIOException
Result append(Append append) throws IOException
This operation does not appear atomic to readers. Appends are done under a single row lock, so write operations to a row are synchronized, but readers do not take row locks so get and scan operations can see this operation partially completed.
append
- object that specifies the columns and amounts to be used
for the increment operationsIOException
- eResult increment(Increment increment) throws IOException
This operation does not appear atomic to readers. Increments are done under a single row lock, so write operations to a row are synchronized, but readers do not take row locks so get and scan operations can see this operation partially completed.
increment
- object that specifies the columns and amounts to be used
for the increment operationsIOException
- elong 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.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.@Deprecated long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount, boolean writeToWAL) throws IOException
incrementColumnValue(byte[], byte[], byte[], long, Durability)
IOException
boolean isAutoFlush()
true
if 'auto-flush' is enabled (default), meaning
Put
operations don't get buffered/delayed and are immediately
executed.void flushCommits() throws IOException
Put
operations.
This method gets called once automatically for every Put
or batch
of Put
s (when put(List
is used) when
isAutoFlush()
is true
.
IOException
- if a remote or network exception occurs.void close() throws IOException
close
in interface AutoCloseable
close
in interface Closeable
IOException
- if a remote or network exception occurs.@Deprecated void setAutoFlush(boolean autoFlush)
setAutoFlushTo(boolean)
for all other cases.autoFlush
- Whether or not to enable 'auto-flush'.void setAutoFlush(boolean autoFlush, boolean clearBufferOnFail)
When enabled (default), Put
operations don't get buffered/delayed
and are immediately executed. Failed operations are not retried. This is
slower but safer.
Turning off #autoFlush
means that multiple Put
s will be
accepted before any RPC is actually sent to do the write operations. If the
application dies before pending writes get flushed to HBase, data will be
lost.
When you turn #autoFlush
off, you should also consider the
#clearBufferOnFail
option. By default, asynchronous Put
requests will be retried on failure until successful. However, this can
pollute the writeBuffer and slow down batching performance. Additionally,
you may want to issue a number of Put requests and call
flushCommits()
as a barrier. In both use cases, consider setting
clearBufferOnFail to true to erase the buffer after flushCommits()
has been called, regardless of success.
In other words, if you call #setAutoFlush(false)
; HBase will retry N time for each
flushCommit, including the last one when closing the table. This is NOT recommended,
most of the time you want to call #setAutoFlush(false, true)
.
autoFlush
- Whether or not to enable 'auto-flush'.clearBufferOnFail
- Whether to keep Put failures in the writeBuffer. If autoFlush is true, then
the value of this parameter is ignored and clearBufferOnFail is set to true.
Setting clearBufferOnFail to false is deprecated since 0.96.flushCommits()
void setAutoFlushTo(boolean autoFlush)
clearBufferOnFail
long getWriteBufferSize()
The default value comes from the configuration parameter
hbase.client.write.buffer
.
void setWriteBufferSize(long writeBufferSize) throws IOException
If the new size is less than the current amount of data in the write buffer, the buffer gets flushed.
writeBufferSize
- The new write buffer size, in bytes.IOException
- if a remote or network exception occurs.Copyright © 2014 The Apache Software Foundation. All rights reserved.