Tablestore をご利用の場合、Tablestore はテーブル分割、Dump、コンパクション、リージョンサーバーなどのインフラストラクチャの詳細を隠蔽するため、データの利用に集中するだけで済みます。Tablestore と HBase はデータモデルおよび機能が類似していますが、Tablestore HBase クライアントはネイティブの HBase API とは一部異なる点があります。本トピックでは、Tablestore HBase クライアントがサポートする機能および操作について説明します。
サポートされる機能
CreateTable
Tablestore はカラムファミリーをサポートしていません。すべてのデータは単一のカラムファミリーに属するため、生存時間 (TTL) および Tablestore のバージョンの最大数は、カラムファミリーレベルではなくテーブルレベルで設定されます。
|
機能 |
サポート状況 |
|
family max version |
テーブルレベルでサポートされています。デフォルト値:1。 |
|
family min version |
いいえ |
|
family TTL |
テーブルレベルでサポートされています。 |
|
is/set ReadOnly |
RAM ユーザーに対してサポートされています。 |
|
事前パーティション分割 |
いいえ |
|
blockcache |
いいえ |
|
blocksize |
いいえ |
|
BloomFilter |
いいえ |
|
column max version |
いいえ |
|
セル TTL |
いいえ |
|
管理・制御用パラメーター |
いいえ |
Put
|
機能 |
サポート状況 |
|
複数の列のデータを同時に書き込む |
はい |
|
タイムスタンプを指定する |
はい |
|
タイムスタンプが指定されていない場合、システム時刻を使用する |
はい |
|
単一行に対するアクセス制御リスト (ACL) |
いいえ |
|
TTL |
いいえ |
|
セルの可視性 |
いいえ |
|
タグ |
いいえ |
Get
Tablestore はデータ整合性を強力に保証します。書き込み操作が 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 はデータ整合性を強力に保証します。書き込み操作が HTTP 200 (OK) を返した時点で、データはすべてのレプリカに書き込まれ、すぐに Scan 操作で取得可能になります。
|
機能 |
サポート状況 |
|
指定された開始および終了パラメーターに基づいてスキャン範囲を決定する |
はい |
|
スキャン範囲が指定されていない場合、グローバルにデータをスキャンする |
はい |
|
プレフィックスフィルター |
はい |
|
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
|
機能 |
サポート状況 |
|
行を削除する |
はい |
|
特定の列からすべてのバージョンのデータを削除する |
はい |
|
特定の列から特定のバージョンのデータを削除する |
はい |
|
指定されたカラムファミリーを削除する |
いいえ — カラムファミリーは単一のみ |
|
タイムスタンプを指定して、そのタイムスタンプに等しいバージョンを削除する |
はい |
|
タイムスタンプを指定し、deleteFamily または deleteColumns を使用して、そのタイムスタンプ以下(以前)のバージョンを削除する |
いいえ |
|
タイムスタンプが指定されていない場合、deleteColumn を使用して最新バージョンを削除する |
いいえ |
|
タイムスタンプが指定されていない場合、deleteFamily または deleteColumns を使用して現在のシステム時刻のバージョンを削除する |
いいえ |
|
addDeleteMarker |
いいえ |
checkAndXXX
|
機能 |
サポート状況 |
|
CheckAndPut |
はい |
|
checkAndMutate |
はい |
|
CheckAndDelete |
はい |
|
列の値が条件を満たしているかチェックし、満たしている場合は行を削除する |
はい |
|
値が指定されていない場合、デフォルト値を使用する |
はい |
|
行 A をチェックし、行 B に対して操作を実行する |
いいえ |
exist
|
機能 |
サポート状況 |
|
1 行以上の存在を確認する(コンテンツは返さない) |
はい |
Filter
|
機能 |
サポート状況 |
|
ColumnPaginationFilter |
部分的にサポート — columnOffset および count はサポートされていません |
|
ColumnRangeFilter |
はい |
|
FilterList |
サポートされています — FilterList は ColumnRangeFilter、ColumnValueFilter、および ColumnPaginationFilter を組み合わせてネストできます。 |
|
SingleColumnValueFilter |
|
サポートされないメソッド
Tablestore はマネージドクラウドサービスとして、コンパクション、リージョン管理、レプリケーションなどのインフラストラクチャ操作を自動的に処理します。そのため、これらの低レベルな制御を公開する HBase メソッドは利用できません。以下の表は、モジュールごとにサポートされないメソッドを示しています。
|
モジュール |
サポートされないメソッド |
|
Table |
Tablestore はテーブルあたり 1 つのカラムファミリーのみをサポートします。 |
|
行およびセル |
|
|
GET |
Tablestore はカラムファミリーを 1 つしかサポートしないため、カラムファミリー固有のメソッドは利用できません。
|
|
SCAN |
以下のメソッドは、GET と同様の理由でサポートされていません。
|
|
Batch |
BatchCallback はサポートされていません。 |
|
変更および削除 |
|
|
Increment および Append |
アトミックな増分、減分、および Append はサポートされていません。 |
|
最適化 |
以下の HBase パラメーターはアクセスおよびストレージの最適化を制御します。Tablestore はこれらを内部で管理しており、変更はできません。
|
|
Admin |
Tablestore はクラウドサービスであり、管理および制御に関連する操作を自動的に行います。以下の Admin 操作はサポートされていません。
|
|
スナップショット |
Tablestore はスナップショットおよびスナップショット関連のメソッドをサポートしていません。 |
|
レプリケーション |
Tablestore はレプリケーションおよびレプリケーション関連のメソッドをサポートしていません。 |
|
テーブル管理 |
Tablestore はテーブルパーティションの分割、マージ、コンパクションを自動的に行います。以下のテーブル管理メソッドはサポートされていません。
|
|
コプロセッサ |
Tablestore はコプロセッサをサポートしていません。以下のメソッドは利用できません。
|
|
分散プロシージャ |
Tablestore は分散プロシージャをサポートしていません。以下のメソッドは利用できません。
|
使用制限
Tablestore はマネージドクラウドサービスです。一貫したパフォーマンスを確保するため、一部のパラメーターは固定値となっており、変更できません。詳細については、「一般制限事項」をご参照ください。