This topic describes the features and operations supported by Tablestore HBase Client.
Differences between API operations supported by Tablestore and HBase
As a NoSQL database service, Tablestore hides infrastructure details such as table splitting, Dump, Compact, and Region Server. You need only to pay attention to data usage. Tablestore HBase Client and HBase are similar in terms of data model and features, but they have different operations.
Features supported by Tablestore HBase Client operations
Tablestore does not support ColumnFamily and all data can be considered to be in the same ColumnFamily. This means that TTL and Max Versions of Tablestore are at the table-level. Therefore, Tablestore supports the following features:
Features Supported or Not family max version Table-level Max Versions supported. Default value: 1 family min version Not supported family ttl Table-level TTL supported is/set ReadOnly Supported by using the sub-account of RAM Pre-partitioning Not supported blockcache Not supported blocksize Not supported BloomFilter Not supported column max version Not supported cell ttl Not supported Control parameter Not supported
Features Supported or Not Writes multiple columns of data at a time Supported Specifies a timestamp Supported Uses the system time by default if no timestamp is specified Supported Single-row ACL Not supported ttl Not supported Cell Visibility Not supported tag Not supported
Tablestore guarantees 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.
Features Supported or Not Reads a row Supported Reads all columns in a ColumnFamily Supported Reads data from a specified column Supported Reads data that has a specified timestamp Supported Reads data of a specified number of versions Supported TimeRange Supported ColumnfamilyTimeRange Not supported RowOffsetPerColumnFamily Supported MaxResultsPerColumnFamily Not supported checkExistenceOnly Not supported closestRowBefore Supported attribute Not supported cacheblock:true Supported cacheblock:false Not supported IsolationLevel:READ_COMMITTED Supported IsolationLevel:READ_UNCOMMITTED Not supported IsolationLevel:STRONG Supported IsolationLevel:TIMELINE Not supported
Tablestore guarantees 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, which can be immediately read by Scan.
Features Supported or Not Determines a scanning range based on the specified start and stop Supported Globally scans data if no scanning range is specified Supported prefix filter Supported Reads data using the same logic as Get Supported Reads data in reverse order Supported caching Supported batch Not supported maxResultSize, which indicates the maximum size of the returned data volume Not supported small Not supported batch Not supported cacheblock:true Supported cacheblock:false Not supported IsolationLevel:READ_COMMITTED Supported IsolationLevel:READ_UNCOMMITTED Not supported IsolationLevel:STRONG Supported IsolationLevel:TIMELINE Not supported allowPartialResults Not supported
Features Supported or Not Get Supported Put Supported Delete Supported batchCallback Not supported
Features Supported or Not Deletes a row Supported Deletes all versions of the specified column Supported Deletes the specified version of the specified column Supported Deletes the specified ColumnFamily Not supported Specifies a timestamp to delete the versions that are equal to the timestamp Supported Specifies a timestamp and use deleteFamily and deleteColumns to delete the versions that are earlier than or equal to the timestamp Not supported Uses deleteColumn to delete the latest version without specifying a timestamp Not supported Uses deleteFamily and deleteColumns to delete the version of the current system time without specifying a timestamp Not supported addDeleteMarker Not supported
Features Supported or Not CheckAndPut Supported checkAndMutate Supported CheckAndDelete Supported Checks whether the value of a column meets the conditions. If yes, checkAndXXX deletes the column. Supported Uses the default value if no value is specified Supported Checks row A and executes row B. Not supported
Features Supported or Not Checks whether one or more rows exist and does not return any content Supported
Features Supported or Not ColumnPaginationFilter columnOffset and count not supported SingleColumnValueFilter
Supported: LongComparator, BinaryComparator, and ByteArrayComparable
Not supported: RegexStringComparator, SubstringComparator, and BitComparator
Operations not supported by Tablestore HBase Client
Tablestore uses instances to manage a data table. An instance is the minimum billing unit in Tablestore. You can manage instances in the Tablestore console. Therefore, the following features are not supported:
- createNamespace(NamespaceDescriptor descriptor)
- deleteNamespace(String name)
- getNamespaceDescriptor(String name)
- listTableDescriptorsByNamespace(String name)
- listTableNamesByNamespace(String name)
- modifyNamespace(NamespaceDescriptor descriptor)
- Region management
Partition is the basic unit for data storage and management in Tablestore. Tablestore automatically splits or merges the partitions based on their data volumes and access conditions. Therefore, Tablestore does not support features related to Region management in HBase.
Tablestore does not support Snapshots, or related features of Snapshots.
- Table management
Tablestore automatically splits, merges, and compacts partitions in tables. Therefore, the following features are not supported:
- getTableDescriptor(TableName tableName)
- compact(TableName tableName)
- compact(TableName tableName, byte columnFamily)
- flush(TableName tableName)
- getCompactionState(TableName tableName)
- majorCompact(TableName tableName)
- majorCompact(TableName tableName, byte columnFamily)
- modifyTable(TableName tableName, HTableDescriptor htd)
- split(TableName tableName)
- split(TableName tableName, byte splitPoint)
Tablestore does not support coprocessor. Therefore, the following features are not supported:
- coprocessorService(ServerName serverName)
- Distributed procedures
Tablestore does not support Distributed procedures. Therefore, the following features are not supported:
- execProcedure(String signature, String instance, Map props)
- execProcedureWithRet(String signature, String instance, Map props)
- isProcedureFinished(String signature, String instance, Map props)
Increment and Append
Tablestore does not support atomic increase and decrease or atomic Append.