使用Tablestore時,Tablestore會為您屏蔽資料表分裂、Dump、Compact、Region Server等底層相關的細節,您只需要關心資料的使用。雖然Tablestore與HBase在資料模型及功能上相近,但是Tablestore HBase Client與原生的HBase API存在一些區別。本文為您介紹Tablestore HBase Client支援的功能和操作。
功能支援情況
CreateTable
Tablestore不支援列族(ColumnFamily),所有的資料可以理解為在同一個ColumnFamily內,所以Tablestore的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
Tablestore能保證資料的強一致性,在資料寫入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
Tablestore能保證資料的強一致性,在資料寫入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 | Tablestore只支援單列族,因此不支援列族相關的介面。
|
SCAN | 類似於GET,由於不支援列族相關介面,因此也不能設定最佳化類部分介面。不支援的最佳化類部分介面如下:
|
Batch | 暫時不支援BatchCallback。 |
Mutations和Deletions |
|
Increment和Append | 暫不支援原子增減和原子Append。 |
Optimization | HBase的部分介面涉及到訪問、儲存最佳化等,這類介面目前未開放。具體介面資訊如下:
|
Admin | HBase中的介面 由於Tablestore是雲端服務,營運、管控類的操作都會被自動執行,使用者無需關注。其他一些少量介面,目前暫不支援。
|
Snapshots | Tablestore目前不支援Snapshots,所以暫時不支援Snapshots相關的方法。 |
Replication | Tablestore目前不支援Replication,所以暫時不支援Replication相關的方法。 |
Table管理 | Tablestore會自動對Table下的資料分區進行分裂、合并及Compact等操作,所以不支援如下方法:
|
Coprocessors | Tablestore暫時不支援副處理器,所以不支援如下方法:
|
Distributed procedures | Tablestore不支援Distributed procedures,所以不支援如下方法:
|
限制項
Tablestore是雲端服務,為了整體效能最優,對部分參數做了限制且不支援使用者通過配置進行修改。具體限制項請參見通用限制。