本文主要为您介绍Tablestore HBase Client 支持的功能和操作。
表格存储与HBase的API区别
作为NoSQL数据库服务,表格存储为您屏蔽了数据表分裂、Dump、Compact、Region Server等底层相关的细节,您只需要关心数据的使用。因此,虽然与HBase在数据模型及功能上相近,Tablestore HBase Client与原生的HBase API仍然有一些区别。
支持的功能
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
不支持
batch
不支持
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
SingleColumnValueFilter
支持LongComparator、BinaryComparator、ByteArrayComparable
不支持RegexStringComparator、SubstringComparator、BitComparator
不支持的方法
Namespaces
表格存储上使用实例对数据表进行管理。实例是表格存储最小的计费单元,用户可以在表格存储控制台上进行实例的管理,所以不再支持如下Namespaces相关的操作:
createNamespace(NamespaceDescriptor descriptor)
deleteNamespace(String name)
getNamespaceDescriptor(String name)
listNamespaceDescriptors()
listTableDescriptorsByNamespace(String name)
listTableNamesByNamespace(String name)
modifyNamespace(NamespaceDescriptor descriptor)
Region管理
表格存储中数据存储和管理的基本单位为分区,表格存储会自动根据数据分区的数据大小、访问情况进行分区的分裂或者合并,所以不支持HBase中Region管理相关的方法。
Snapshots
表格存储目前不支持Snapshots,所以暂时不支持Snapshots相关的方法。
Table管理
表格存储会自动对Table下的数据分区进行分裂、合并及Compact等操作,所以不再支持如下方法:
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
表格存储暂时不支持协处理器,所以不支持如下方法:
coprocessorService()
coprocessorService(ServerName serverName)
getMasterCoprocessors()
Distributed procedures
表格存储不支持Distributed procedures,所以不支持如下方法:
execProcedure(String signature, String instance, Map props)
execProcedureWithRet(String signature, String instance, Map props)
isProcedureFinished(String signature, String instance, Map props)
Increment与Append
暂不支持原子增减和原子Append。