org.apache.hadoop.hbase.client
Interface HTableInterface

All Known Implementing Classes:
HTable, RemoteHTable

public interface HTableInterface

Used to communicate with a single HBase table.

Since:
0.21.0

Method Summary
 Object[] batch(List<Row> actions)
          Method that does a batch call on Deletes, Gets and Puts.
 void batch(List<Row> actions, Object[] results)
          Method that does a batch call on Deletes, Gets and Puts.
 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 help 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 in the Get.
 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.
 Result getRowOrBefore(byte[] row, byte[] family)
          Return the row that matches row exactly, or the one that immediately precedes it.
 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.
 Result increment(Increment increment)
          Increments one or more columns within a single row.
 long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount)
          Atomically increments a column value.
 long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount, boolean writeToWAL)
          Atomically increments a column value.
 boolean isAutoFlush()
          Tells whether or not 'auto-flush' is turned on.
 RowLock lockRow(byte[] row)
          Obtains a lock on a 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 unlockRow(RowLock rl)
          Releases a row lock.
 

Method Detail

getTableName

byte[] getTableName()
Gets the name of this table.

Returns:
the table name.

getConfiguration

org.apache.hadoop.conf.Configuration getConfiguration()
Returns the Configuration object used by this instance.

The reference returned is not a copy, so any change made to it will affect this instance.


getTableDescriptor

HTableDescriptor getTableDescriptor()
                                    throws IOException
Gets the table descriptor for this table.

Throws:
IOException - if a remote or network exception occurs.

exists

boolean exists(Get get)
               throws IOException
Test for the existence of columns in the table, as specified in the Get.

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.

Parameters:
get - the Get
Returns:
true if the specified Get matches one or more keys, false if not
Throws:
IOException - e

batch

void batch(List<Row> actions,
           Object[] results)
           throws IOException,
                  InterruptedException
Method that does a batch call on Deletes, Gets and Puts.

Parameters:
actions - list of Get, Put, Delete objects
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
Throws:
IOException
InterruptedException
Since:
0.90.0

batch

Object[] batch(List<Row> actions)
               throws IOException,
                      InterruptedException
Method that does a batch call on Deletes, Gets and Puts.

Parameters:
actions - list of Get, Put, Delete objects
Returns:
the results from the actions. A null in the return array means that the call for that action failed, even after retries
Throws:
IOException
InterruptedException
Since:
0.90.0

get

Result get(Get get)
           throws IOException
Extracts certain cells from a given row.

Parameters:
get - The object that specifies what data to fetch and from which row.
Returns:
The data coming from the specified row, if it exists. If the row specified doesn't exist, the Result instance returned won't contain any KeyValue, as indicated by Result.isEmpty().
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

get

Result[] get(List<Get> gets)
             throws IOException
Extracts certain cells from the given rows, in batch.

Parameters:
gets - The objects that specify what data to fetch and from which rows.
Returns:
The data coming from the specified rows, if it exists. If the row specified doesn't exist, the Result instance returned won't contain any KeyValue, as indicated by Result.isEmpty(). A null in the return array means that the get operation for that Get failed, even after retries.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.90.0

getRowOrBefore

Result getRowOrBefore(byte[] row,
                      byte[] family)
                      throws IOException
Return the row that matches row exactly, or the one that immediately precedes it.

Parameters:
row - A row key.
family - Column family to include in the Result.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

getScanner

ResultScanner getScanner(Scan scan)
                         throws IOException
Returns a scanner on the current table as specified by the Scan object.

Parameters:
scan - A configured Scan object.
Returns:
A scanner.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

getScanner

ResultScanner getScanner(byte[] family)
                         throws IOException
Gets a scanner on the current table for the given family.

Parameters:
family - The column family to scan.
Returns:
A scanner.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

getScanner

ResultScanner getScanner(byte[] family,
                         byte[] qualifier)
                         throws IOException
Gets a scanner on the current table for the given family and qualifier.

Parameters:
family - The column family to scan.
qualifier - The column qualifier to scan.
Returns:
A scanner.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

put

void put(Put put)
         throws IOException
Puts some data in the table.

If isAutoFlush is false, the update is buffered until the internal buffer is full.

Parameters:
put - The data to put.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

put

void put(List<Put> puts)
         throws IOException
Puts some data in the table, in batch.

If isAutoFlush is false, the update is buffered until the internal buffer is full.

Parameters:
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.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

checkAndPut

boolean checkAndPut(byte[] row,
                    byte[] family,
                    byte[] qualifier,
                    byte[] value,
                    Put put)
                    throws IOException
Atomically checks if a row/family/qualifier value matches the expected value. If it does, it adds the put. If the passed value is null, the check is for the lack of column (ie: non-existance)

Parameters:
row - to check
family - column family to check
qualifier - column qualifier to check
value - the expected value
put - data to put if check succeeds
Returns:
true if the new put was executed, false otherwise
Throws:
IOException - e

delete

void delete(Delete delete)
            throws IOException
Deletes the specified cells/row.

Parameters:
delete - The object that specifies what to delete.
Throws:
IOException - if a remote or network exception occurs.
Since:
0.20.0

delete

void delete(List<Delete> deletes)
            throws IOException
Deletes the specified cells/rows in bulk.

Parameters:
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 Deletes are executed).
Throws:
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.
Since:
0.20.1

checkAndDelete

boolean checkAndDelete(byte[] row,
                       byte[] family,
                       byte[] qualifier,
                       byte[] value,
                       Delete delete)
                       throws IOException
Atomically checks if a row/family/qualifier value matches the expected value. If it does, it adds the delete. If the passed value is null, the check is for the lack of column (ie: non-existance)

Parameters:
row - to check
family - column family to check
qualifier - column qualifier to check
value - the expected value
delete - data to delete if check succeeds
Returns:
true if the new delete was executed, false otherwise
Throws:
IOException - e

increment

Result increment(Increment increment)
                 throws IOException
Increments one or more columns within a single row.

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.

Parameters:
increment - object that specifies the columns and amounts to be used for the increment operations
Returns:
values of columns after the increment
Throws:
IOException - e

incrementColumnValue

long incrementColumnValue(byte[] row,
                          byte[] family,
                          byte[] qualifier,
                          long amount)
                          throws IOException
Atomically increments a column value.

Equivalent to {@link #incrementColumnValue(byte[], byte[], byte[], long, boolean) incrementColumnValue}(row, family, qualifier, amount, <b>true</b>)

Parameters:
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).
Returns:
The new value, post increment.
Throws:
IOException - if a remote or network exception occurs.

incrementColumnValue

long incrementColumnValue(byte[] row,
                          byte[] family,
                          byte[] qualifier,
                          long amount,
                          boolean writeToWAL)
                          throws IOException
Atomically increments a column value. If the column value already exists and is not a big-endian long, this could throw an exception. If the column value does not yet exist it is initialized to amount and written to the specified column.

Setting writeToWAL to false means that in a fail scenario, you will lose any increments that have not been flushed.

Parameters:
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).
writeToWAL - if true, the operation will be applied to the Write Ahead Log (WAL). This makes the operation slower but safer, as if the call returns successfully, it is guaranteed that the increment will be safely persisted. When set to false, the call may return successfully before the increment is safely persisted, so it's possible that the increment be lost in the event of a failure happening before the operation gets persisted.
Returns:
The new value, post increment.
Throws:
IOException - if a remote or network exception occurs.

isAutoFlush

boolean isAutoFlush()
Tells whether or not 'auto-flush' is turned on.

Returns:
true if 'auto-flush' is enabled (default), meaning Put operations don't get buffered/delayed and are immediately executed.

flushCommits

void flushCommits()
                  throws IOException
Executes all the buffered Put operations.

This method gets called once automatically for every Put or batch of Puts (when put(List) is used) when isAutoFlush() is true.

Throws:
IOException - if a remote or network exception occurs.

close

void close()
           throws IOException
Releases any resources help or pending changes in internal buffers.

Throws:
IOException - if a remote or network exception occurs.

lockRow

RowLock lockRow(byte[] row)
                throws IOException
Obtains a lock on a row.

Parameters:
row - The row to lock.
Returns:
A RowLock containing the row and lock id.
Throws:
IOException - if a remote or network exception occurs.
See Also:
RowLock, unlockRow(org.apache.hadoop.hbase.client.RowLock)

unlockRow

void unlockRow(RowLock rl)
               throws IOException
Releases a row lock.

Parameters:
rl - The row lock to release.
Throws:
IOException - if a remote or network exception occurs.
See Also:
RowLock, unlockRow(org.apache.hadoop.hbase.client.RowLock)


Copyright © 2011 The Apache Software Foundation. All Rights Reserved.