When you use Tablestore, Tablestore hides infrastructure details such as table splitting, Dump, Compact, and Region Server. You need to only pay attention to data usage. Tablestore and HBase have similar data models and features. However, Tablestore HBase Client and the native HBase API have specific differences. This topic describes the features and operations supported by Tablestore HBase Client.
Supported features
CreateTable
Tablestore does not support ColumnFamily and all data can be considered to be in the same ColumnFamily. Therefore, the time to live (TTL) and max versions of Tablestore are at the data table level. The following table describes the features supported by Tablestore HBase Client.
Feature | Supported |
family max version | Supported at the table level. Default value: 1. |
family min version | No |
family ttl | Supported at the table level. |
is/set ReadOnly | Supported for RAM users. |
Pre-partitioning | No |
blockcache | No |
blocksize | No |
BloomFilter | No |
column max version | No |
cell ttl | No |
Parameter for management and control | No |
Put
Feature | Supported |
Write multiple columns of data at the same time | Yes |
Specify a timestamp | Yes |
Use the system time when no timestamp is specified | Yes |
Access control list (ACL) for a single row | No |
ttl | No |
Cell Visibility | No |
tag | No |
Get
Tablestore ensures high data consistency. If the HTTP 200 status code (OK) is returned after you perform a write operation, the data is permanently written to all copies, and can be immediately read by Get operations.
Feature | Supported |
Read a single row of data | Yes |
Read all columns in a ColumnFamily | Yes |
Read data from a specific column | Yes |
Read data that has a specific timestamp | Yes |
Read data of a specific number of versions | Yes |
TimeRange | Yes |
ColumnfamilyTimeRange | No |
RowOffsetPerColumnFamily | Yes |
MaxResultsPerColumnFamily | No |
checkExistenceOnly | No |
closestRowBefore | Yes |
attribute | No |
cacheblock:true | Yes |
cacheblock:false | No |
IsolationLevel:READ_COMMITTED | Yes |
IsolationLevel:READ_UNCOMMITTED | No |
IsolationLevel:STRONG | Yes |
IsolationLevel:TIMELINE | No |
Scan
Tablestore ensures high data consistency. If the HTTP 200 status code (OK) is returned after you perform a write operation, the data is permanently written to all copies, and can be immediately read by Scan operations.
Feature | Supported |
Determine a scanning range based on the specified start and stop parameters | Yes |
Globally scan data when no scanning range is specified | Yes |
prefix filter | Yes |
Read data by using the same logic as Get operations | Yes |
Read data in reverse order | Yes |
caching | Yes |
batch | No |
maxResultSize, which indicates the maximum size of the returned data volume | No |
small | No |
cacheblock:true | Yes |
cacheblock:false | No |
IsolationLevel:READ_COMMITTED | Yes |
IsolationLevel:READ_UNCOMMITTED | No |
IsolationLevel:STRONG | Yes |
IsolationLevel:TIMELINE | No |
allowPartialResults | No |
Batch
Feature | Supported |
Get | Yes |
Put | Yes |
Delete | Yes |
batchCallback | No |
Delete
Feature | Supported |
Delete a row | Yes |
Delete all versions of data from a specific column | Yes |
Delete a specific version of data from a specific column | Yes |
Delete the specified ColumnFamily | No |
Specify a timestamp to delete the versions that are equal to the timestamp | Yes |
Specify a timestamp and use deleteFamily and deleteColumns to delete the versions that are earlier than or equal to the timestamp | No |
Use deleteColumn to delete the latest version when no timestamp is specified | No |
Use deleteFamily and deleteColumns to delete the version of the current system time when no timestamp is specified | No |
addDeleteMarker | No |
checkAndXXX
Feature | Supported |
CheckAndPut | Yes |
checkAndMutate | Yes |
CheckAndDelete | Yes |
Check whether the value of a column meets the conditions. If yes, checkAndXXX deletes the row. | Yes |
Use the default value when no value is specified | Yes |
Check row A and perform operations on row B. | No |
exist
Feature | Supported |
Check whether one or more rows exist and return no content. | Yes |
Filter
Feature | Supported |
ColumnPaginationFilter | columnOffset and count not supported |
ColumnRangeFilter | Yes |
FilterList | The combination and nesting of ColumnRangeFilter, ColumnValueFilter, and ColumnPaginationFilter can be included in FilterList. |
SingleColumnValueFilter |
|
Method not supported
The following table describes the methods that are not supported by specific modules.
Module | Method not supported |
Table | Tablestore supports only single-column families. |
Row and Cell |
|
GET | Tablestore supports only single-column families. Therefore, Tablestore does not support the methods that are related to column families.
|
SCAN | Partial optimization methods are not supported because Tablestore does not support the methods that are related to column families. The SCAN operation is similar to the GET operation. The following optimization methods are not supported:
|
Batch | BatchCallback is not supported. |
Mutations and Deletions |
|
Increment and Append | Tablestore does not support atomic increase and decrease or atomic Append. |
Optimization | Specific HBase methods involve access and storage optimization and are not available in Tablestore. The following parameters are not supported:
|
Admin | The methods of Tablestore is a cloud service that automatically performs the operations that are related to O&M, management, and control. Therefore, Tablestore does not support the methods that are related to these operations.
|
Snapshots | Tablestore does not support Snapshots, or methods related to Snapshots. |
Replication | Tablestore does not support Replication, or methods related to Replication. |
Table management | Tablestore automatically splits, merges, and compacts partitions in tables. Therefore, the following methods are not supported:
|
Coprocessors | Tablestore does not support coprocessor. Therefore, the following methods are not supported:
|
Distributed procedures | Tablestore does not support distributed procedures. Therefore, the following methods are not supported:
|
Limits
Tablestore is a cloud service. To ensure an optimal overall performance, limits are imposed on specific parameters and you cannot modify the limits. For more information, see General limits.