全部产品
表格存储

表格存储和 HBase 的区别

更新时间:2017-06-07 13:26:11   分享:   

TableStore HBase Client 的使用方式与 HBase 类似,但存在一些区别。本节内容介绍 TableStore HBase Client 的特点。

Table

不支持多列族,只支持单列族。

Row和Cell

  • 不支持设置 ACL
  • 不支持设置 Cell Visibility
  • 不支持设置 Tag

GET

表格存储只支持单列族,所以不支持列族相关的接口,包括:

  • setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp)
  • setMaxResultsPerColumnFamily(int limit)
  • setRowOffsetPerColumnFamily(int offset)

SCAN

类似于 GET,既不支持列族相关的接口,也不能设置优化类的部分接口,包括:

  • setBatch(int batch)
  • setMaxResultSize(long maxResultSize)
  • setAllowPartialResults(boolean allowPartialResults)
  • setLoadColumnFamiliesOnDemand(boolean value)
  • setSmall(boolean small)

Batch

暂时不支持 BatchCallback。

Mutations 和 Deletions

  • 不支持删除特定列族
  • 不支持删除最新时间戳的版本
  • 不支持删除小于某个时间戳的所有版本

Increment 和 Append

暂时不支持

Filter

  • 支持 ColumnPaginationFilter
  • 支持 FilterList
  • 部分支持 SingleColumnValueFilter,比较器仅支持 BinaryComparator
  • 其他 Filter 暂时都不支持

Optimization

HBase 的部分接口涉及到访问、存储优化等,这些接口目前没有开放:

  • blockcache:默认为 true,不允许用户更改
  • blocksize:默认为 64K,不允许用户更改
  • IsolationLevel:默认为 READ_COMMITTED,不允许用户更改
  • Consistency:默认为 STRONG,不允许用户更改

Admin

HBase 中的接口org.apache.hadoop.hbase.client.Admin主要是指管控类的 API,而其中大部分的 API 在表格存储中是不需要的。

由于表格存储是云服务,运维、管控类的操作都会被自动执行,用户不需要关注。其他一些少量接口,目前暂不支持。

CreateTable

表格存储只支持单列族,在创建表时只允许设置一个列族,列族中支持 MaxVersion 和 TimeToLive 两个参数。

Maintenance task

在表格存储中,下列的任务维护相关接口都会被自动处理:

  • abort(String why, Throwable e)
  • balancer()
  • enableCatalogJanitor(boolean enable)
  • getMasterInfoPort()
  • isCatalogJanitorEnabled()
  • rollWALWriter(ServerName serverName)-runCatalogScan()
  • setBalancerRunning(boolean on, boolean synchronous)
  • updateConfiguration(ServerName serverName)
  • updateConfiguration()
  • stopMaster()
  • shutdown()

Namespaces

在表格存储中,实例名称类似于 HBase 中的 Namespaces,因此不支持 Namespaces 相关的接口,包括:

  • createNamespace(NamespaceDescriptor descriptor)
  • modifyNamespace(NamespaceDescriptor descriptor)
  • getNamespaceDescriptor(String name)
  • listNamespaceDescriptors()
  • listTableDescriptorsByNamespace(String name)
  • listTableNamesByNamespace(String name)
  • deleteNamespace(String name)

Region

表格存储中会自动处理 Region 相关的操作,因此不支持以下接口:

  • assign(byte[] regionName)
  • closeRegion(byte[] regionname, String serverName)
  • closeRegion(ServerName sn, HRegionInfo hri)
  • closeRegion(String regionname, String serverName)
  • closeRegionWithEncodedRegionName(String encodedRegionName, String serverName)
  • compactRegion(byte[] regionName)
  • compactRegion(byte[] regionName, byte[] columnFamily)
  • compactRegionServer(ServerName sn, boolean major)
  • flushRegion(byte[] regionName)
  • getAlterStatus(byte[] tableName)
  • getAlterStatus(TableName tableName)
  • getCompactionStateForRegion(byte[] regionName)
  • getOnlineRegions(ServerName sn)
  • majorCompactRegion(byte[] regionName)
  • majorCompactRegion(byte[] regionName, byte[] columnFamily)
  • mergeRegions(byte[] encodedNameOfRegionA, byte[] encodedNameOfRegionB, boolean forcible)
  • move(byte[] encodedRegionName, byte[] destServerName)
  • offline(byte[] regionName)
  • splitRegion(byte[] regionName)
  • splitRegion(byte[] regionName, byte[] splitPoint)
  • stopRegionServer(String hostnamePort)
  • unassign(byte[] regionName, boolean force)

Snapshots

不支持 Snapshots 相关的接口。

Replication

不支持 Replication 相关的接口。

Coprocessors

不支持 Coprocessors 相关的接口。

Distributed procedures

不支持 Distributed procedures 相关的接口。

Table management

表格存储自动执行 Table 相关的操作,用户无需关注,因此不支持以下接口:

  • 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)

限制项

表格存储是云服务,为了整体性能最优,对部分参数做了限制,且不支持用户通过配置修改,具体限制项请参见表格存储限制项

本文导读目录
本文导读目录
以上内容是否对您有帮助?