ここでは、Table Store HBase Client の機能を紹介し、HBase と比較したときに制限されサポートされる機能について説明します。 機能は以下のとおりです。

テーブル

Table Store は単一の ColumnFamilies のみをサポートします。つまり、複数の ColumnFamilies はサポートしません。

行とセル

  • Table Store は ACL 設定をサポートしません。
  • Table Store はセルの表示設定をサポートしません。
  • Table Store はタグ設定をサポートしません。

GET

Table Store は単一の ColumnFamilies のみをサポートします。 そのため、ColumnFamily 関連の API はサポートしていません。

  • setColumnFamilyTimeRange(byte[] cf, long minStamp, long maxStamp)
  • setMaxResultsPerColumnFamily(int limit)
  • setRowOffsetPerColumnFamily(int offset)

SCAN

GET と同様に、Table Store は ColumnFamily 関連の API をサポートしていないため、次のような部分最適化 API の設定には使用できません。

  • setBatch(int batch)
  • setMaxResultSize(long maxResultSize)
  • setAllowPartialResults(boolean allowPartialResults)
  • setLoadColumnFamiliesOnDemand(boolean value)
  • setSmall(boolean small)

バッチ

Table Store は BatchCallback をサポートしません。

変更と削除

  • Table Store は、指定された ColumnFamily の削除をサポートしません。
  • Table Store は最新のタイムスタンプを持つバージョンの削除をサポートしていません。
  • Table Store は、指定されたタイムスタンプより前のすべてのバージョンの削除をサポートしません。

インクリメントと追加

Table Store は Increment 機能や Append 機能をサポートしていません。

フィルター

  • Table Store は ColumnPaginationFilter をサポートしています。
  • Table Store は FilterListをサポートしています。
  • Table Store は SingleColumnValueFilter を部分的にサポートし、 BinaryComparator のみをサポートします。
  • Table Store は他のフィルタをサポートしません。

最適化

HBase API の中には、アクセスとストレージの最適化を含むものがあります。 これらの API は現在開かれていません。

  • blockcache: デフォルト値は "true" です。これは変更できません。
  • blocksize: デフォルト値は "64 KB" です。これは変更できません。
  • IsolationLevel: デフォルト値は "READ_COMMITTED" です。これは変更できません。
  • 整合性: デフォルト値は "STRONG" です。これは変更できません。

管理者

org.apache.hadoop.hbase.client.Admin HBaseのAPIは管理と制御に使用され、そのほとんどは Table Store には必要ありません。

Table Store はクラウドサービスであるため、運用、保守、管理、制御などの作業は自動的に実行され、これらの作業を気にかける必要がありません。 Table Store は現在、いくつかの API をサポートしていません。

  • CreateTable

    Table Store は単一の ColumnFamilies のみをサポートします。 したがって、テーブルを作成するときに作成できる ColumnFamily は1つだけです。 ColumnFamily は、MaxVersions パラメーターと TimeToLive パラメーターをサポートしています。

  • メンテナンス作業

    Table Store では、タスクメンテナンスに関連する以下の API が自動的に処理されます。

    • 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()
  • 名前空間

    Table Store では、インスタンス名は HBase の名前空間と似ています。 したがって、次のような名前空間関連の API はサポートされていません。

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

    Table Store は自動的に地域関連の操作を実行します。 したがって、次の API はサポートされていません。

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

スナップショット

Table Store はスナップショット関連の API をサポートしません。

レプリケーション

Table Store はレプリケーション関連の API をサポートしません。

コプロセッサ

Table Store は、コプロセッサ関連の API をサポートしません。

分散プロシージャー

Table Store は、分散プロシージャー関連の API をサポートしません。

テーブル管理

テーブルストアは自動的にテーブル関連の操作を実行しますので、これを気にする必要はありません。 したがって、Table Store は次の API をサポートしません。

  • 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 はクラウドサービスであるため、最適な全体的なパフォーマンスを保証するために、一部のパラメーターは制限されており、再設定できません。 制限の詳細については、「制限」をご参照ください。