Java 用 Tablestore SDK を使用して、Wide Column モデルのテーブルのデータライフサイクル、最大バージョン数、最大バージョンオフセット、更新権限、ストリーム、予約済みスループットの設定を更新します。
前提条件
Java 用 Tablestore SDK をインストールし、クライアントを初期化します。
機能の説明
public UpdateTableResponse updateTable(UpdateTableRequest request) throws TableStoreException, ClientException
updateTable() を呼び出して、テーブルのテーブルオプション、ストリーム設定、または予約済みスループットを更新します。各リクエストでは、少なくとも 1 つの構成グループを指定する必要があります。TableOptions を更新する場合は、少なくとも 1 つのテーブルオプションを指定してください。
次のサンプルコードは、example_table テーブルのデータライフサイクル、最大バージョン数、最大バージョンオフセット、更新権限を更新します。
UpdateTableRequest request = new UpdateTableRequest("example_table");
TableOptions tableOptions = new TableOptions();
tableOptions.setTimeToLive(86400);
tableOptions.setMaxVersions(3);
tableOptions.setMaxTimeDeviation(86400L);
tableOptions.setAllowUpdate(false);
request.setTableOptionsForUpdate(tableOptions);
client.updateTable(request);
パラメータ
UpdateTableRequest には、次のパラメータが含まれます。
-
tableName (必須)
String:テーブルの名前。 -
tableOptionsForUpdate (オプション)
TableOptions:更新するテーブルオプション。次のパラメータが含まれます。少なくとも 1 つのパラメータを設定してください。名前
型
説明
timeToLive (オプション)
OptionalValue<Integer>
データの生存時間 (TTL)。単位:秒。
-
データを無期限に保持する場合は、このパラメータを -1 に設定します。それ以外の値の場合、最小値は 86400 (1 日) です。TTL を超過したデータは自動的に削除されます。
-
多次元インデックスまたはセカンダリインデックスを使用するには、TTL を -1 に設定するか、
allowUpdateパラメータをfalseに設定します。
maxVersions (オプション)
OptionalValue<Integer>
保持するデータバージョンの最大数。
多次元インデックスまたはセカンダリインデックスを使用するには、このパラメータを 1 に設定します。
maxTimeDeviation (オプション)
OptionalValue<Long>
最大バージョンオフセット。単位:秒。
-
書き込まれたデータのタイムスタンプと現在のシステム時刻の差は、最大バージョンオフセット以内である必要があります。超過した場合、書き込み操作は失敗します。
-
属性列データの有効なバージョン範囲は
[max(Data write time - Max version offset, Data write time - Time to live), Data write time + Max version offset)です。
allowUpdate (オプション)
OptionalValue<Boolean>
updateRowメソッドを使用してデータを更新できるかどうかを指定します。このパラメータが
falseに設定されている場合、updateRow API を使用してデータを更新することはできません。重要updateFullRowはテーブル作成時にのみ設定できます。updateTableメソッドを呼び出して変更することはできません。 -
-
streamSpecification (オプション)
StreamSpecification:ストリーム構成。次のパラメータが含まれます。名前
型
説明
enableStream (必須)
boolean
ストリームを有効にするかどうかを指定します。
expirationTime (オプション)
OptionalValue<Integer>
増分ログの保持期間。単位:時間。最大値:168 (7 日)。
enableStreamがtrueに設定されている場合、expirationTimeパラメータが必須です。 -
reservedThroughputForUpdate (オプション)
ReservedThroughput:更新する 予約済み読み取り/書き込みスループット。単位:CU。デフォルト値:0。この設定は、CU モードのコンピューティング最適化インスタンスでのみサポートされます。
シナリオ例
ストリーム設定の更新
次のサンプルコードは、example_table テーブルのストリームを有効にし、増分ログの保持期間を 168 時間に設定します。
UpdateTableRequest request = new UpdateTableRequest("example_table");
request.setStreamSpecification(new StreamSpecification(true, 168));
client.updateTable(request);
予約済みスループットの更新
予約済みスループットは、CU モードのコンピューティング最適化インスタンスでのみサポートされます。次のサンプルコードは、example_table テーブルの予約済み読み取りスループットと予約済み書き込みスループットの両方を 0 CU に設定します。
UpdateTableRequest request = new UpdateTableRequest("example_table");
ReservedThroughput reservedThroughput = new ReservedThroughput(0, 0);
request.setReservedThroughputForUpdate(reservedThroughput);
client.updateTable(request);