使用表格存储时,表格存储会为您屏蔽数据表分裂、Dump、Compact、Region Server等底层相关的细节,您只需要关心数据的使用。虽然Tablestore与HBase在数据模型及功能上相近,但是Tablestore HBase Client与原生的HBase API存在一些区别。本文为您介绍Tablestore HBase Client支持的功能和操作。
功能支持情况
CreateTable
表格存储不支持列族(ColumnFamily),所有的数据可以理解为在同一个ColumnFamily内,所以表格存储的TTL及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 |
|
不支持的方法
各功能模块不支持的方法说明请参见下表。
功能模块 | 不支持的方法说明 |
Table | 不支持多列族,只支持单列族。 |
Row和Cell |
|
GET | 表格存储只支持单列族,因此不支持列族相关的接口。
|
SCAN | 类似于GET,由于不支持列族相关接口,因此也不能设置优化类部分接口。不支持的优化类部分接口如下:
|
Batch | 暂时不支持BatchCallback。 |
Mutations和Deletions |
|
Increment和Append | 暂不支持原子增减和原子Append。 |
Optimization | HBase的部分接口涉及到访问、存储优化等,这类接口目前未开放。具体接口信息如下:
|
Admin | HBase中的接口 由于表格存储是云服务,运维、管控类的操作都会被自动执行,用户无需关注。其他一些少量接口,目前暂不支持。
|
Snapshots | 表格存储目前不支持Snapshots,所以暂时不支持Snapshots相关的方法。 |
Replication | 表格存储目前不支持Replication,所以暂时不支持Replication相关的方法。 |
Table管理 | 表格存储会自动对Table下的数据分区进行分裂、合并及Compact等操作,所以不支持如下方法:
|
Coprocessors | 表格存储暂时不支持协处理器,所以不支持如下方法:
|
Distributed procedures | 表格存储不支持Distributed procedures,所以不支持如下方法:
|
限制项
表格存储是云服务,为了整体性能最优,对部分参数做了限制且不支持用户通过配置进行修改。具体限制项请参见通用限制。