开发者社区> 问答> 正文

TableStore HBase Client 支持的功能有哪些



表格存储与 HBase 的 API 区别


作为 NoSQL 数据库服务,表格存储对用户屏蔽了数据表分裂、Dump、Compact、Region Server 等底层相关的细节,用户只需要关心数据的使用。因此,虽然在 数据模型及功能上相近,但表格存储并不完全与 HBase 相同,两者在 API 上有所区别。也正因如此,TableStore Hbase Client 与原生的 HBase API 仍然有一些区别。
[backcolor=transparent]TableStore HBase Client API 支持:


[backcolor=transparent]其他不支持的方法:
  • Namespaces
  • [url=https://help.aliyun.com/document_detail/50126.html?spm=5176.doc50125.6.613.9GZN3x#Region 管理]Region 管理[/url]
  • Snapshots
  • [url=https://help.aliyun.com/document_detail/50126.html?spm=5176.doc50125.6.613.9GZN3x#Table 管理]Table 管理[/url]
  • Coprocessors
  • [url=https://help.aliyun.com/document_detail/50126.html?spm=5176.doc50125.6.613.9GZN3x#Distributed procedures]Distributed procedures[/url]
  • [url=https://help.aliyun.com/document_detail/50126.html?spm=5176.doc50125.6.613.9GZN3x#Increment 与 Append]Increment 与 Append[/url]


TableStore HBase Client 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


表格存储上使用[backcolor=transparent]实例对数据表进行管理。实例是表格存储最小的计费单元,用户可以在 表格存储控制台上进行实例的管理,所以不再支持如下 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<string, string="" style="box-sizing: border-box;"> props)
  • execProcedureWithRet(String signature, String instance, Map<string, string="" style="box-sizing: border-box;"> props)
  • isProcedureFinished(String signature, String instance, Map<string, string="" style="box-sizing: border-box;"> props)


Increment 与 Append


暂不支持原子增减和原子 Append。

展开
收起
云栖大讲堂 2017-10-25 11:06:46 2381 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
TableStore在社交类场景下的应用 立即下载
表格存储实时数据流Steam的技术揭秘和应用场景 立即下载
表格存储(TableStore) 立即下载