Features supported by Tablestore HBase Client

更新时间:
复制 MD 格式

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

  • Supported: LongComparator, BinaryComparator, and ByteArrayComparable

  • Not supported: RegexStringComparator, SubstringComparator, and BitComparator

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

  • Access control lists (ACLs) are not supported.

  • Cell visibility is not supported.

  • Tags are not supported.

GET

Tablestore supports only a single column family, so column-family-specific methods are not available:

  • setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp)

  • setMaxResultsPerColumnFamily(int limit)

  • setRowOffsetPerColumnFamily(int offset)

SCAN

The following methods are not supported, for the same reasons as GET:

  • setBatch(int batch)

  • setMaxResultSize(long maxResultSize)

  • setAllowPartialResults(boolean allowPartialResults)

  • setLoadColumnFamiliesOnDemand(boolean value)

  • setSmall(boolean small)

Batch

BatchCallback is not supported.

Mutations and deletions

  • Deleting a specific column family is not supported.

  • Deleting the version with the latest timestamp is not supported.

  • Deleting all versions with a timestamp earlier than the specified timestamp is not supported.

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:

  • blockcache: Fixed at true. Cannot be changed.

  • blocksize: Fixed at 64 KB. Cannot be changed.

  • IsolationLevel: Fixed at READ_COMMITTED. Cannot be changed.

  • Consistency: Fixed at STRONG. Cannot be changed.

Admin

Most methods in org.apache.hadoop.hbase.client.Admin handle infrastructure management that is not required in Tablestore.

Tablestore is a cloud service that automatically performs operations related to management and control. The following Admin operations are not supported:

  • CreateTable

    Tablestore supports only a single column family. When creating a table, you can specify MaxVersions and TimeToLive for that column family.

  • Maintenance tasks

    In Tablestore, the following maintenance operations are automatically handled:

    • 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

    Tablestore uses instances to organize data tables. An instance is the minimum unit for billing in Tablestore. Manage instances in the Tablestore console. The following namespace methods are not supported:

    • createNamespace(NamespaceDescriptor descriptor)

    • deleteNamespace(String name)

    • getNamespaceDescriptor(String name)

    • listNamespaceDescriptors()

    • 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 partitions based on data volume and access patterns, so region management methods are not exposed:

    • 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 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:

  • 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)

Coprocessors

Tablestore does not support coprocessors. The following methods are not available:

  • coprocessorService()

  • coprocessorService(ServerName serverName)

  • getMasterCoprocessors()

Distributed procedures

Tablestore does not support distributed procedures. The following methods are not available:

  • execProcedure(String signature, String instance, Map props)

  • execProcedureWithRet(String signature, String instance, Map props)

  • isProcedureFinished(String signature, String instance, Map props)

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.