Compared with HBase, Tablestore HBase Client is used in a similar but differentiated way. This topic describes the features of Tablestore HBase Client.
Table
Tablestore supports only single-column families.
Row and Cell
Tablestore does not support access control lists (ACLs).
Tablestore does not support cell visibility.
Tablestore does not support tags.
Get
Tablestore supports only single-column families. Therefore, Tablestore does not support the methods that are related to column families. The following methods are not supported:
setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp)
setMaxResultsPerColumnFamily(int limit)
setRowOffsetPerColumnFamily(int offset)
Scan
Partial optimization methods are not supported because Tablestore does not support the methods that are related to column families. The following optimization methods are not supported:
setBatch(int batch)
setMaxResultSize(long maxResultSize)
setAllowPartialResults(boolean allowPartialResults)
setLoadColumnFamiliesOnDemand(boolean value)
setSmall(boolean small)
Batch
Tablestore does not support BatchCallback.
Mutations and Deletions
You cannot delete a specific column family.
You cannot delete a version that has the latest timestamp.
You cannot delete all versions that have a timestamp earlier than the specified timestamp.
Increment and Append
Tablestore does not support Increment or Append.
Filter
Tablestore supports ColumnPaginationFilter.
Tablestore supports FilterList.
Tablestore supports part of SingleColumnValueFilter, and supports only BinaryComparator.
Tablestore does not support other filters.
Optimization
Some HBase methods involve access and storage optimization and are not available in Tablestore. The following parameters are not supported:
blockcache: The default value is true and cannot be modified.
blocksize: The default value specifies 64 KB and cannot be modified.
IsolationLevel: The default value is READ_COMMITTED and cannot be modified.
Consistency: The default value is STRONG and cannot be modified.
Admin
The methods of org.apache.hadoop.hbase.client.Admin
of HBase are used for management and control, most of which are not required in Tablestore.
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.
CreateTable
Tablestore supports only single-column families. You can create only one column family when you create a table. The column family supports the MaxVersions and TimeToLive parameters.
Task maintenance
Tablestore automatically performs the operations that are related to task maintenance. Therefore, Tablestore does not support the following methods:
abort(String why, Throwable e)
balancer()
enableCatalogJanitor(boolean enable)
getMasterInfoPort()
isCatalogJanitorEnabled()
rollWALWriter(ServerName serverName) -runCatalogScan()
setBalancerRunning(boolean on, boolean synchronous)
updateConfiguration(ServerName serverName)
updateConfiguration()
stopMaster()
shutdown()
Namespaces
An instance in Tablestore is similar to a namespace in HBase. Therefore, Tablestore does not support the following methods that are related to namespaces:
createNamespace(NamespaceDescriptor descriptor)
modifyNamespace(NamespaceDescriptor descriptor)
getNamespaceDescriptor(String name)
listNamespaceDescriptors()
listTableDescriptorsByNamespace(String name)
listTableNamesByNamespace(String name)
deleteNamespace(String name)
Regions
Tablestore automatically performs the operations that are related to regions. Therefore, Tablestore does not support the following methods:
assign(byte[] regionName)
closeRegion(byte[] regionname, String serverName)
closeRegion(ServerName sn, HRegionInfo hri)
closeRegion(String regionname, String serverName)
closeRegionWithEncodedRegionName(String encodedRegionName, String serverName)
compactRegion(byte[] regionName)
compactRegion(byte[] regionName, byte[] columnFamily)
compactRegionServer(ServerName sn, boolean major)
flushRegion(byte[] regionName)
getAlterStatus(byte[] tableName)
getAlterStatus(TableName tableName)
getCompactionStateForRegion(byte[] regionName)
getOnlineRegions(ServerName sn)
majorCompactRegion(byte[] regionName)
majorCompactRegion(byte[] regionName, byte[] columnFamily)
mergeRegions(byte[] encodedNameOfRegionA, byte[] encodedNameOfRegionB, boolean forcible)
move(byte[] encodedRegionName, byte[] destServerName)
offline(byte[] regionName)
splitRegion(byte[] regionName)
splitRegion(byte[] regionName, byte[] splitPoint)
stopRegionServer(String hostnamePort)
unassign(byte[] regionName, boolean force)
Snapshots
Tablestore does not support the methods that are related to snapshots.
Replication
Tablestore does not support the methods that are related to replication.
Coprocessors
Tablestore does not support the methods that are related to coprocessors.
Distributed procedures
Tablestore does not support the methods that are related to distributed procedures.
Table management
Tablestore automatically performs the operations that are related to tables. Therefore, Tablestore does not support the following methods:
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)
Limits
Tablestore is a cloud service. To ensure an optimal overall performance, some parameters are limited and cannot be modified. For more information about the limits, see General limits.