Tablestore を使用する場合、Tablestore は、テーブル分割、ダンプ、コンパクション、リージョンサーバーなどのインフラストラクチャの詳細を隠蔽します。ユーザーはデータの使用量にのみ注意を払う必要があります。Tablestore と HBase は、同様のデータモデルと機能を備えています。ただし、Tablestore HBase Client とネイティブ HBase API には、特定の違いがあります。このトピックでは、Tablestore HBase Client でサポートされている機能と操作について説明します。
サポートされている機能
CreateTable
Tablestore は ColumnFamily をサポートしておらず、すべてのデータは同じ ColumnFamily にあると見なすことができます。そのため、Tablestore の生存時間(TTL)とバージョンの最大数は、データテーブルレベルです。次の表に、Tablestore HBase Client でサポートされている機能を示します。
機能 | サポート |
family max version | テーブルレベルでサポートされています。デフォルト値:1。 |
family min version | いいえ |
family ttl | テーブルレベルでサポートされています。 |
is/set ReadOnly | RAM ユーザーでサポートされています。 |
事前パーティション分割 | いいえ |
blockcache | いいえ |
blocksize | いいえ |
BloomFilter | いいえ |
column max version | いいえ |
cell ttl | いいえ |
管理および制御のためのパラメーター | いいえ |
書き込み
機能 | サポート |
複数のデータ列を同時に書き込む | はい |
タイムスタンプを指定する | はい |
タイムスタンプが指定されていない場合はシステム時間を使用する | はい |
単一行のアクセス制御リスト (ACL) | いいえ |
ttl | いいえ |
セルの可視性 | いいえ |
タグ | いいえ |
CreateTable
Tablestore は高いデータ整合性を保証します。書き込み操作を実行した後に HTTP 200 状態コード(OK)が返された場合、データはすべての複製に永続的に書き込まれ、Get 操作ですぐに読み取ることができます。
機能 | サポート |
1 行のデータを読み取る | はい |
列ファミリーのすべての列を読み取る | はい |
特定の列からデータを読み取る | はい |
特定のタイムスタンプを持つデータを読み取る | はい |
特定のバージョンの数のデータを読み取る | はい |
TimeRange | はい |
ColumnfamilyTimeRange | いいえ |
RowOffsetPerColumnFamily | はい |
MaxResultsPerColumnFamily | いいえ |
checkExistenceOnly | いいえ |
closestRowBefore | はい |
属性 | いいえ |
cacheblock:true | はい |
cacheblock:false | いいえ |
IsolationLevel:READ_COMMITTED | はい |
IsolationLevel:READ_UNCOMMITTED | いいえ |
IsolationLevel:STRONG | はい |
IsolationLevel:TIMELINE | いいえ |
スキャン
Tablestore は高いデータ整合性を保証します。書き込み操作を実行した後に HTTP 200 状態コード(OK)が返された場合、データはすべてのコピーに永続的に書き込まれ、スキャン操作ですぐに読み取ることができます。
機能 | サポート |
指定された開始パラメーターと停止パラメーターに基づいてスキャン範囲を決定する | はい |
スキャン範囲が指定されていない場合はグローバルにデータをスキャンする | はい |
プレフィックスフィルター | はい |
取得操作と同じロジックを使用してデータを読み取る | はい |
データを逆順に読み取る | はい |
キャッシュ | はい |
バッチ | いいえ |
返されるデータ量の最大サイズを示す maxResultSize | いいえ |
small | いいえ |
cacheblock:true | はい |
cacheblock:false | いいえ |
IsolationLevel:READ_COMMITTED | はい |
IsolationLevel:READ_UNCOMMITTED | いいえ |
IsolationLevel:STRONG | はい |
IsolationLevel:TIMELINE | いいえ |
allowPartialResults | いいえ |
バッチ
機能 | サポート |
取得 | はい |
配置 | はい |
削除 | はい |
batchCallback | いいえ |
削除
機能 | サポート |
行の削除 | はい |
特定の列のすべてのバージョンのデータの削除 | はい |
特定の列の特定のバージョンのデータの削除 | はい |
指定された ColumnFamily の削除 | いいえ |
タイムスタンプを指定して、タイムスタンプと等しいバージョンを削除する | はい |
タイムスタンプを指定し、deleteFamily および deleteColumns を使用して、タイムスタンプ以前のバージョンを削除する | いいえ |
タイムスタンプが指定されていない場合、deleteColumn を使用して最新バージョンを削除する | いいえ |
タイムスタンプが指定されていない場合、deleteFamily および deleteColumns を使用して現在のシステム時間のバージョンを削除する | いいえ |
addDeleteMarker | いいえ |
Put
機能 | サポート |
CheckAndPut | はい |
複数のデータ列を同時に書き込む | はい |
タイムスタンプを指定する | はい |
タイムスタンプが指定されていない場合はシステム時間を使用する | はい |
単一行のアクセス制御リスト (ACL) | いいえ |
ttl | いいえ |
exist
機能 | サポート |
1 つ以上の行が存在するかどうかを確認し、コンテンツを返しません。 | はい |
Get
機能 | サポート |
ColumnPaginationFilter | columnOffset および count はサポートされていません |
ColumnRangeFilter | はい |
FilterList | ColumnRangeFilter、ColumnValueFilter、および ColumnPaginationFilter の組み合わせとネストを FilterList に含めることができます。 |
SingleColumnValueFilter |
|
サポートされていないメソッド
次の表は、特定のモジュールでサポートされていないメソッドについて説明しています。
モジュール | サポートされていないメソッド |
テーブル | Tablestore は単一のカラムファミリーのみをサポートしています。 |
行とセル |
|
GET | Tablestore は単一のカラムファミリーのみをサポートしています。そのため、Tablestore はカラムファミリーに関連するメソッドをサポートしていません。
|
SCAN | Tablestore はカラムファミリーに関連するメソッドをサポートしていないため、部分的な最適化メソッドはサポートされていません。SCAN 操作は GET 操作に似ています。次の最適化メソッドはサポートされていません。
|
バッチ | BatchCallback はサポートされていません。 |
変更と削除 |
|
Increment と Append | Tablestore はアトミックな増加と減少、またはアトミックな Append をサポートしていません。 |
最適化 | 特定の HBase メソッドはアクセスとストレージの最適化に関連しており、Tablestore では使用できません。次のパラメーターはサポートされていません。
|
管理 | HBase の Tablestore は、運用、管理、および制御に関連する操作を自動的に実行するクラウドサービスです。そのため、Tablestore はこれらの操作に関連するメソッドをサポートしていません。
|
スナップショット | Tablestore は、スナップショット、またはスナップショットに関連するメソッドをサポートしていません。 |
レプリケーション | Tablestore は、レプリケーション、またはレプリケーションに関連するメソッドをサポートしていません。 |
テーブル管理 | Tablestore は、テーブル内のパーティションの分割、マージ、および圧縮を自動的に行います。そのため、次のメソッドはサポートされていません。
|
コプロセッサ | Tablestore はコプロセッサをサポートしていません。そのため、次のメソッドはサポートされていません。
|
分散プロシージャ | Tablestore は分散プロシージャをサポートしていません。そのため、次のメソッドはサポートされていません。
|
制限
Tablestore はクラウドサービスです。全体的なパフォーマンスを最適化するために、特定のパラメーターに制限が課せられており、制限を変更することはできません。詳細については、「一般的な制限」をご参照ください。