When you use Tablestore, Tablestore hides infrastructure details such as table splitting, Dump, Compact, and Region Server, so you only need to focus on data usage. Tablestore and HBase share similar data models and features, but Tablestore HBase Client differs from the native HBase API in specific ways. This topic describes the features and operations supported by Tablestore HBase Client.
Supported features
CreateTable
Tablestore does not support column families. All data belongs to a single column family, so time to live (TTL) and max versions of Tablestore are configured at the table level rather than the column family level.
|
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 strong data consistency. When a write operation returns HTTP 200 (OK), the data is written to all replicas and immediately available for Get operations.
|
Feature |
Supported |
|
Read a single row of data |
Yes |
|
Read all columns in a column family |
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 — single column family only |
|
RowOffsetPerColumnFamily |
Yes |
|
MaxResultsPerColumnFamily |
No — single column family only |
|
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 strong data consistency. When a write operation returns HTTP 200 (OK), the data is written to all replicas and immediately available for 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 |
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 column family |
No — single column family only |
|
Specify a timestamp to delete versions equal to the timestamp |
Yes |
|
Specify a timestamp and use deleteFamily or deleteColumns to delete versions earlier than or equal to the timestamp |
No |
|
Use deleteColumn to delete the latest version when no timestamp is specified |
No |
|
Use deleteFamily or deleteColumns to delete the current system time version when no timestamp is specified |
No |
|
addDeleteMarker |
No |
checkAndXXX
|
Feature |
Supported |
|
CheckAndPut |
Yes |
|
checkAndMutate |
Yes |
|
CheckAndDelete |
Yes |
|
Check whether a column value meets conditions; if yes, delete 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 (returns no content) |
Yes |
Filter
|
Feature |
Supported |
|
ColumnPaginationFilter |
Partial — columnOffset and count are not supported |
|
ColumnRangeFilter |
Yes |
|
FilterList |
Supported — FilterList can combine and nest ColumnRangeFilter, ColumnValueFilter, and ColumnPaginationFilter. |
|
SingleColumnValueFilter |
|
Unsupported methods
Tablestore automatically handles infrastructure operations—such as compaction, region management, and replication—as a managed cloud service. As a result, HBase methods that expose these low-level controls are not available. The following table lists unsupported methods by module.
|
Module |
Unsupported methods |
|
Table |
Tablestore supports only a single column family per table. |
|
Row and cell |
|
|
GET |
Tablestore supports only a single column family, so column-family-specific methods are not available:
|
|
SCAN |
The following methods are not supported, for the same reasons as GET:
|
|
Batch |
BatchCallback is not supported. |
|
Mutations and deletions |
|
|
Increment and Append |
Atomic increment, decrement, and Append are not supported. |
|
Optimization |
The following HBase parameters control access and storage optimization. Tablestore manages these internally and does not expose them for modification:
|
|
Admin |
Most methods in Tablestore is a cloud service that automatically performs operations related to management and control. The following Admin operations are not supported:
|
|
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 table partitions. The following table management methods are not supported:
|
|
Coprocessors |
Tablestore does not support coprocessors. The following methods are not available:
|
|
Distributed procedures |
Tablestore does not support distributed procedures. The following methods are not available:
|
Limits
Tablestore is a managed cloud service. To ensure consistent performance, certain parameters have fixed values that cannot be changed. For details, see General limits.