您可以使用更新表接口(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);
}