すべてのプロダクト
Search
ドキュメントセンター

Tablestore:Tablestore

最終更新日:Jan 18, 2025

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

  • サポート対象: LongComparator、BinaryComparator、および ByteArrayComparable

  • サポート対象外: RegexStringComparator、SubstringComparator、および BitComparator

サポートされていないメソッド

次の表は、特定のモジュールでサポートされていないメソッドについて説明しています。

モジュール

サポートされていないメソッド

テーブル

Tablestore は単一のカラムファミリーのみをサポートしています。

行とセル

  • アクセス制御リスト(ACL)はサポートされていません。

  • セルの可視性はサポートされていません。

  • タグはサポートされていません。

GET

Tablestore は単一のカラムファミリーのみをサポートしています。そのため、Tablestore はカラムファミリーに関連するメソッドをサポートしていません。

  • setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp)

  • setMaxResultsPerColumnFamily(int limit)

  • setRowOffsetPerColumnFamily(int offset)

SCAN

Tablestore はカラムファミリーに関連するメソッドをサポートしていないため、部分的な最適化メソッドはサポートされていません。SCAN 操作は GET 操作に似ています。次の最適化メソッドはサポートされていません。

  • setBatch(int batch)

  • setMaxResultSize(long maxResultSize)

  • setAllowPartialResults(boolean allowPartialResults)

  • setLoadColumnFamiliesOnDemand(boolean value)

  • setSmall(boolean small)

バッチ

BatchCallback はサポートされていません。

変更と削除

  • 特定のカラムファミリーを削除することはできません。

  • 最新のタイムスタンプを持つバージョンを削除することはできません。

  • 指定されたタイムスタンプより前のタイムスタンプを持つすべてのバージョンを削除することはできません。

Increment と Append

Tablestore はアトミックな増加と減少、またはアトミックな Append をサポートしていません。

最適化

特定の HBase メソッドはアクセスとストレージの最適化に関連しており、Tablestore では使用できません。次のパラメーターはサポートされていません。

  • blockcache: デフォルト値: true。デフォルト値を変更することはできません。

  • blocksize: デフォルト値: 64。単位: KB。デフォルト値を変更することはできません。

  • IsolationLevel: デフォルト値: READ_COMMITTED。デフォルト値を変更することはできません。

  • Consistency: デフォルト値: STRONG。デフォルト値を変更することはできません。

管理

HBase の org.apache.hadoop.hbase.client.Admin のメソッドは管理と制御に使用されますが、そのほとんどは Tablestore では必要ありません。

Tablestore は、運用、管理、および制御に関連する操作を自動的に実行するクラウドサービスです。そのため、Tablestore はこれらの操作に関連するメソッドをサポートしていません。

  • CreateTable

    Tablestore は単一のカラムファミリーのみをサポートしています。テーブルを作成するときに、作成できるカラムファミリーは 1 つだけです。カラムファミリーは、MaxVersions パラメーターと TimeToLive パラメーターをサポートしています。

  • メンテナンス タスク

    Tablestore では、タスク メンテナンスに関連する次の操作が自動的に処理されます。

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

  • 名前空間

    Tablestore は、インスタンスを使用してデータテーブルを管理します。インスタンスは、Tablestore の最小課金単位です。Tablestore コンソールでインスタンスを管理できます。以下のメソッドはサポートされていません。

    • createNamespace(NamespaceDescriptor descriptor)

    • deleteNamespace(String name)

    • getNamespaceDescriptor(String name)

    • listNamespaceDescriptors()

    • listTableDescriptorsByNamespace(String name)

    • listTableNamesByNamespace(String name)

    • modifyNamespace(NamespaceDescriptor descriptor)

  • リージョン管理

    パーティションは、Tablestore におけるデータ ストレージと管理の基本単位です。Tablestore は、パーティションのデータ量とアクセス条件に基づいて、パーティションを自動的に分割またはマージします。そのため、Tablestore はリージョン管理に関連するメソッドをサポートしていません。

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

スナップショット

Tablestore は、スナップショット、またはスナップショットに関連するメソッドをサポートしていません。

レプリケーション

Tablestore は、レプリケーション、またはレプリケーションに関連するメソッドをサポートしていません。

テーブル管理

Tablestore は、テーブル内のパーティションの分割、マージ、および圧縮を自動的に行います。そのため、次のメソッドはサポートされていません。

  • getTableDescriptor(TableName tableName)

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

コプロセッサ

Tablestore はコプロセッサをサポートしていません。そのため、次のメソッドはサポートされていません。

  • coprocessorService()

  • coprocessorService(ServerName serverName)

  • getMasterCoprocessors()

分散プロシージャ

Tablestore は分散プロシージャをサポートしていません。そのため、次のメソッドはサポートされていません。

  • execProcedure(String signature, String instance, Map props)

  • execProcedureWithRet(String signature, String instance, Map props)

  • isProcedureFinished(String signature, String instance, Map props)

制限

Tablestore はクラウドサービスです。全体的なパフォーマンスを最適化するために、特定のパラメーターに制限が課せられており、制限を変更することはできません。詳細については、「一般的な制限」をご参照ください。