您可以使用更新表接口(UpdateTable)修改配置信息(TableOptions)以及预留读/写吞吐量(ReservedThroughput)。
参数说明
- TableOptions
TableOptions 包含表的 TTL、MaxVersions 和 MaxTimeDeviation 。
参数 定义 说明 TTL TimeToLive,数据存活时间 - 单位:秒。
- 如果期望数据永不过期,TTL 可设置为 -1。
- 数据是否过期是根据数据的时间戳、当前时间、表的 TTL三者进行判断的。
当前时间 - 数据的时间戳 > 表的 TTL
时,数据会过期并被清理。 - 在使用 TTL 功能时需要注意写入时是否指定了时间戳,以及指定的时间戳是否合理。如需指定时间戳,建议设置MaxTimeDeviation。
MaxTimeDeviation 写入数据的时间戳与系统当前时间的偏差允许最大值 - 默认情况下系统会为新写入的数据生成一个时间戳,数据自动过期功能需要根据这个时间戳判断数据是否过期。用户也可以指定写入数据的时间戳。如果用户写入的时间戳非常小,与当前时间偏差已经超过了表上设置的 TTL 时间,写入的数据会立即过期。设置 MaxTimeDeviation 可以避免这种情况。
- 单位:秒。
MaxVersions 每个属性列保留的最大版本数 如果写入的版本数超过 MaxVersions,服务端只会保留 MaxVersions 中指定的最大的版本。 - ReservedThroughtput
表的预留读/写吞吐量配置。
- ReservedThroughput 的调整有时间间隔限制,目前调整间隔为 1 分钟。
- 设置 ReservedThroughtput 后,表格存储按照您预留读/写吞吐量进行计费。
- 当 ReservedThroughtput 大于 0 时,表格存储会按照预留量和持续时间进行计费,超出预留的部分进行按量计费。更多信息参见计费,以免产生未期望的费用。
- 默认值为 0,即完全按量计费。
- 容量型实例的预留读/写吞吐量只能设置为 0,不允许预留。
示例
更新表的 TTL 和最大版本数。
private static void updateTable(SyncClient client) {
int timeToLive = -1;
int maxVersions = 5; // 将最大版本数更新为5。
TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);
UpdateTableRequest request = new UpdateTableRequest(TABLE_NAME);
request.setTableOptionsForUpdate(tableOptions);
client.updateTable(request);
}