使用表格存储时,表格存储会自动处理数据表分裂、Dump、Compact、Region Server等底层运维细节,您只需关注数据的读写操作。Tablestore与HBase在数据模型和功能上相近,但Tablestore HBase Client与原生HBase API存在一些差异。本文介绍Tablestore HBase Client支持的功能和操作。
功能支持情况
CreateTable
表格存储不支持列族(ColumnFamily),所有数据属于同一个列族,因此表格存储的TTL(time to live,生存时间)和max versions均在数据表级别配置,而非列族级别。
|
功能 |
支持情况 |
|
family max version |
支持表级别max version,默认值为1 |
|
family min version |
不支持 |
|
family TTL |
支持表级别TTL |
|
is/set ReadOnly |
通过RAM用户支持 |
|
预分区 |
不支持 |
|
blockcache |
不支持 |
|
blocksize |
不支持 |
|
BloomFilter |
不支持 |
|
column max version |
不支持 |
|
cell TTL |
不支持 |
|
控制参数 |
不支持 |
Put
|
功能 |
支持情况 |
|
一次写入多列数据 |
支持 |
|
指定一个时间戳 |
支持 |
|
不指定时间戳时,默认使用系统时间 |
支持 |
|
单行访问控制列表(ACL) |
不支持 |
|
TTL |
不支持 |
|
Cell Visibility |
不支持 |
|
Tag |
不支持 |
Get
表格存储保证数据强一致性。写入API收到HTTP 200状态码(OK)后,数据即已写入所有副本,可立即通过Get读取。
|
功能 |
支持情况 |
|
读取一行数据 |
支持 |
|
读取列族中的所有列 |
支持 |
|
读取特定列的数据 |
支持 |
|
读取特定时间戳的数据 |
支持 |
|
读取指定版本数的数据 |
支持 |
|
TimeRange |
支持 |
|
ColumnFamilyTimeRange |
不支持——仅支持单列族 |
|
RowOffsetPerColumnFamily |
支持 |
|
MaxResultsPerColumnFamily |
不支持——仅支持单列族 |
|
checkExistenceOnly |
不支持 |
|
closestRowBefore |
支持 |
|
attribute |
不支持 |
|
cacheblock:true |
支持 |
|
cacheblock:false |
不支持 |
|
IsolationLevel:READ_COMMITTED |
支持 |
|
IsolationLevel:READ_UNCOMMITTED |
不支持 |
|
IsolationLevel:STRONG |
支持 |
|
IsolationLevel:TIMELINE |
不支持 |
Scan
表格存储保证数据强一致性。写入API收到HTTP 200状态码(OK)后,数据即已写入所有副本,可立即通过Scan读取。
|
功能 |
支持情况 |
|
指定start和stop确定扫描范围 |
支持 |
|
不指定扫描范围时,默认全表扫描 |
支持 |
|
prefix filter |
支持 |
|
读取逻辑与Get相同 |
支持 |
|
逆序读取 |
支持 |
|
caching |
支持 |
|
batch |
不支持 |
|
maxResultSize |
不支持 |
|
small |
不支持 |
|
cacheblock:true |
支持 |
|
cacheblock:false |
不支持 |
|
IsolationLevel:READ_COMMITTED |
支持 |
|
IsolationLevel:READ_UNCOMMITTED |
不支持 |
|
IsolationLevel:STRONG |
支持 |
|
IsolationLevel:TIMELINE |
不支持 |
|
allowPartialResults |
不支持 |
Batch
|
功能 |
支持情况 |
|
Get |
支持 |
|
Put |
支持 |
|
Delete |
支持 |
|
BatchCallback |
不支持 |
Delete
|
功能 |
支持情况 |
|
删除整行 |
支持 |
|
删除特定列的所有版本 |
支持 |
|
删除特定列的特定版本 |
支持 |
|
删除特定列族 |
不支持——仅支持单列族 |
|
指定时间戳时,deleteColumn删除等于该时间戳的版本 |
支持 |
|
指定时间戳时,deleteFamily和deleteColumns删除小于等于该时间戳的所有版本 |
不支持 |
|
不指定时间戳时,deleteColumn删除最新版本 |
不支持 |
|
不指定时间戳时,deleteFamily和deleteColumns删除当前系统时间的版本 |
不支持 |
|
addDeleteMarker |
不支持 |
checkAndXXX
|
功能 |
支持情况 |
|
CheckAndPut |
支持 |
|
checkAndMutate |
支持 |
|
CheckAndDelete |
支持 |
|
检查列值是否满足条件,满足则删除 |
支持 |
|
不指定值时,使用默认值 |
支持 |
|
跨行操作(检查A行,执行B行) |
不支持 |
exist
|
功能 |
支持情况 |
|
判断一行或多行是否存在(不返回内容) |
支持 |
Filter
|
功能 |
支持情况 |
|
ColumnPaginationFilter |
部分支持——不支持columnOffset和count |
|
ColumnRangeFilter |
支持 |
|
FilterList |
支持——FilterList中可组合和嵌套ColumnRangeFilter、ColumnValueFilter和ColumnPaginationFilter。 |
|
SingleColumnValueFilter |
|
不支持的方法
作为云服务,表格存储会自动处理Compaction、Region管理、Replication等底层运维操作,因此这部分HBase方法不可用。各模块不支持的方法详见下表。
|
功能模块 |
不支持的方法说明 |
|
Table |
不支持多列族,只支持单列族。 |
|
Row和Cell |
|
|
GET |
表格存储仅支持单列族,因此不支持以下列族相关接口:
|
|
SCAN |
与GET相同,由于不支持列族相关接口,以下优化类接口也不可用:
|
|
Batch |
不支持BatchCallback。 |
|
Mutations和Deletions |
|
|
Increment和Append |
不支持原子增减和原子Append。 |
|
Optimization |
以下HBase参数涉及访问和存储优化,目前在内部统一管理,不对外开放修改:
|
|
Admin |
HBase中 表格存储作为云服务,会自动执行运维和管控类操作。以下Admin操作不支持:
|
|
Snapshots |
表格存储不支持Snapshots及相关方法。 |
|
Replication |
表格存储不支持Replication及相关方法。 |
|
Table管理 |
表格存储会自动对表下的分区进行分裂、合并和Compact,以下Table管理方法不支持:
|
|
Coprocessors |
表格存储不支持协处理器,以下方法不可用:
|
|
Distributed procedures |
表格存储不支持Distributed procedures,以下方法不可用:
|
限制项
表格存储作为云服务,为保证整体性能最优,对部分参数设置了固定值且不支持修改。具体限制项请参见使用限制。