Table Store と HBase で異なる API サポート

Table Store と HBase は、データモデルの点では似ていますが、異なるAPI を持っています。 以下のセクションでは、Table Store HBase Client API と HBase API の違いについて詳しく説明します。

Table Store HBase Client API でサポートされている機能:

  • CreateTable

    Table Store では、すべてのデータが同じ ColumnFamily にあると見なすことができるため、ColumnFamily をサポートしません。 これは、Table Store の TTL および最大バージョンがテーブルレベルであることを意味します。 したがって、Table Store は次の機能いくつかをサポートしています。

    機能 サポートされているかどうか
    family max version テーブルレベルの最大バージョンがサポートされています。 デフォルト値:1
    family min version サポートされていない
    family ttl テーブルレベルのTTLがサポートされている
    is/set Readonly RAM のサブアカウントでサポートされている
    Pre-partitioning サポートされていない
    blockcach サポートされていない
    blocksize サポートされていない
    BloomFilter サポートされていない
    column max version サポートされていない
    cell ttl サポートされていない
    Control parameter サポートされていない
  • Put
    機能 サポートされているかどうか
    一度に複数列のデータを書き込む サポートされている
    タイムスタンプを指定する サポートされている
    タイムスタンプが指定されていない場合、デフォルトでシステム時刻を使用 サポートされている
    単一行 ACL サポートされていない
    ttl サポートされていない
    セルの可視性 サポートされていない
    タグ サポートされていない
  • Get

    Table Store は高いデータ一貫性を保証します。 データが API に書き込まれた後に HTTP 200 ステータスコード (OK) が返された場合、データはすべてのコピーに永続的に書き込まれ、Get によってすぐに読み取ることができます。

    機能 サポートされているかどうか
    データ行を読み取る サポートされている
    ColumnFamily のすべての列を読み取る サポートされている
    指定された列からデータを読み取る サポートされている
    指定されたタイムスタンプでデータを読み込む サポートされている
    指定した数のバージョンのデータを読み込む サポートされている
    タイムレンジ サポートされている
    ColumnfamilyTimeRange サポートされていない
    RowOffsetPerColumnFamily サポートされている
    MaxResultsPerColumnFamily サポートされていない
    checkExistenceOnly サポートされていない
    nearestRowBefore サポートされている
    属性 サポートされていない
    cacheblock: true サポートされている
    cacheblock: false サポートされていない
    IsolationLevel: READ_COMMITTED サポートされている
    IsolationLevel:READ_UNCOMMITTED サポートされていない
    IsolationLevel:STRONG サポートされている
    IsolationLevel:TIMELINE サポートされていない
  • Scan

    Table Store は高いデータ一貫性を保証します。 データが API に書き込まれた後に HTTP 200 ステータスコード (OK) が返された場合、そのデータはすべてのコピーに恒久的に書き込まれます。これは Scan ですぐに読み取ることができます。

    機能 サポートされているかどうか
    指定された開始と停止に基づいてスキャン範囲を決定する サポートされている
    スキャン範囲が指定されていない場合、データをグローバルにスキャンする サポートされている
    プレフィックスフィルタ サポートされている
    Get と同じロジックを使用してデータを読み取る サポートされている
    逆順にデータを読み取る サポートされている
    キャッシュ サポートされている
    バッチ サポートされていない
    maxResultSize、返されるデータボリュームの最大サイズを示す サポートされていない
    small サポートされていない
    バッチ サポートされていない
    cacheblock:true サポートされている
    cacheblock:false サポートされていない
    IsolationLevel:READ_COMMITTED サポートされている
    IsolationLevel:READ_UNCOMMITTED サポートされていない
    IsolationLevel:STRONG サポートされている
    IsolationLevel:TIMELINE サポートされていない
    allowPartialResults サポートされていない
  • Batch
    機能 サポートされているかどうか
    Get サポートされている
    Put サポートされている
    Delete サポートされている
    batchCallback サポートされていない
  • Delete
    機能 サポートされているかどうか
    行を削除する サポートされている
    指定された列のすべてのバージョンを削除する サポートされている
    指定された列の指定されたバージョンを削除する サポートされている
    指定された ColumnFamily を削除する サポートされていない
    タイムスタンプが指定されている場合、deleteColumn はそのタイムスタンプと等しいバージョンを削除する サポートされている
    タイムスタンプが指定されている場合、deleteFamily および deleteColumn はタイムスタンプより前のバージョンまたは等しいタイムスタンプを削除する サポートされていない
    タイムスタンプが指定されていない場合、deleteColumn は最新バージョンを削除する サポートされていない
    タイムスタンプが指定されていない場合、deleteFamily と deleteColumn は現在のシステム時刻のバージョンを削除する サポートされていない
    addDeleteMarker サポートされていない
  • checkAndXXX
    機能 サポートされているかどうか
    CheckAndPut サポートされている
    checkAndMutate サポートされている
    CheckAndDelete サポートされている
    列の値が条件を満たしているかどうかを確認する 存在する場合、checkAndXXXは列を削除する サポートされている
    値が指定されていない場合はデフォルト値を使用する サポートされている
    行 A をチェックして行 B を実行する サホートされていない
  • Exist
    機能 サポートされているかどうか
    1つ以上の行が存在するかどうかを確認し、内容を返さない サポートされている
  • Filter
    機能 サポートされているかどうか
    ColumnPaginationFilter columnOffset と count はサポートされていない
    SingleColumnValueFilter

    サポートされている: LongComparator、BinaryComparator および ByteArrayComparable

    サポートされていない: RegexStringComparator、SubstringComparator および BitComparator

Table Store HBase Client API でサポートされていない機能

  • 名前空間

    Table Store はインスタンスを使用してデータテーブルを管理します。 インスタンスは、Table Store の最小課金単位です。 インスタンスは Table Store コンソールで管理できます。 したがって、次の機能はサポートされていません。

    • createNamespace(NamespaceDescriptor descriptor)
    • deleteNamespace(String name)
    • getNamespaceDescriptor(String name)
    • listNamespaceDescriptors()
    • listTableDescriptorsByNamespace(String name)
    • listTableNamesByNamespace(String name)
    • modifyNamespace(NamespaceDescriptor descriptor)
  • リージョン管理

    データパーティションは、Table Store のデータ保存と管理の基本単位です。 Table Store は、データボリュームとアクセス条件に基づいてデータパーティションを自動的に分割または結合します。 したがって、Table Store は HBase のリージョン管理に関連する機能をサポートしていません。

  • スナップショット

    Table Store はスナップショット、またはスナップショットの関連機能をサポートしていません。

  • テーブル管理

    Table Store は、テーブル内のデータパーティションを自動的に分割、結合、および圧縮します。 したがって、次の機能はサポートされていません。

    • 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)
  • コプロセッサ

    Table Store はコプロセッサをサポートしていません。 したがって、次の機能はサポートされていません。

    • coprocessorService()
    • coprocessorService(ServerName serverName)
    • getMasterCoprocessors()
  • 分散プロシージャー

    テーブルストアは分散プロシージャーをサポートしません。 したがって、次の機能はサポートされていません。

    • execProcedure(String signature, String instance, Map props)
    • execProcedureWithRet(String signature, String instance, Map props)
    • isProcedureFinished(String signature, String instance, Map props)
  • インクリメントと追加

    Table Store は、アトミック増加/減少またはアトミック追加をサポートしません。