HBase Client支援的功能
使用Tablestore時,Tablestore會自動處理資料表分裂、Dump、Compact、Region Server等底層營運細節,您只需關注資料的讀寫操作。Tablestore與HBase在資料模型和功能上相近,但Tablestore HBase Client與原生HBase API存在一些差異。本文介紹Tablestore HBase Client支援的功能和操作。
功能支援情況
CreateTable
Tablestore不支援列族(ColumnFamily),所有資料屬於同一個列族,因此Tablestore的TTL(time to live,存留時間)和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 Store會自動處理Compaction、Region管理、Replication等底層營運操作,因此這部分HBase方法不可用。各模組不支援的方法詳見下表。
|
功能模組 |
不支援的方法說明 |
|
Table |
不支援多列族,只支援單列族。 |
|
Row和Cell |
|
|
GET |
Tablestore僅支援單列族,因此不支援以下列族相關介面:
|
|
SCAN |
與GET相同,由於不支援列族相關介面,以下最佳化類介面也不可用:
|
|
Batch |
不支援BatchCallback。 |
|
Mutations和Deletions |
|
|
Increment和Append |
不支援原子增減和原子Append。 |
|
Optimization |
以下HBase參數涉及訪問和儲存最佳化,目前在內部統一管理,不對外開放修改:
|
|
Admin |
HBase中 Tablestore作為雲端服務,會自動執行營運和管控類操作。以下Admin操作不支援:
|
|
Snapshots |
Tablestore不支援Snapshots及相關方法。 |
|
Replication |
Tablestore不支援Replication及相關方法。 |
|
Table管理 |
Tablestore會自動對錶下的分區進行分裂、合并和Compact,以下Table管理方法不支援:
|
|
Coprocessors |
Tablestore不支援副處理器,以下方法不可用:
|
|
Distributed procedures |
Tablestore不支援Distributed procedures,以下方法不可用:
|
限制項
Tablestore作為雲端服務,為保證整體效能最優,對部分參數設定了固定值且不支援修改。具體限制項請參見使用限制。