All Products
Search
Document Center

Tablestore:Differences between Tablestore and HBase

Last Updated:Nov 09, 2023

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.