表格存储与 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 都是数据表级别的,支持如下相关功能:
Put
Get
表格存储保证数据的强一致性,在数据写入 API 收到 HTTP 200 状态码(OK)的回复时,数据即被持久化到所有的备份上,这些数据能够马上被 Get 读到。
Scan
表格存储保证数据的强一致性,在数据写入 API 收到 HTTP 200 状态码(OK)的回复时,数据即被持久化到所有的备份上,这些数据能够马上被 Scan 读到。
Batch
Delete
checkAndXXX
exist
Filter
其他不支持的方法
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。