Go SDK 可更新宽表模型数据表的数据生命周期、最大版本数、有效版本偏差、更新权限、Stream 和预留读写吞吐量配置。
前提条件
安装Tablestore Go SDK并初始化客户端。
功能说明
调用 UpdateTable 更新指定数据表的表属性、Stream 或预留读写吞吐量。每次请求必须至少设置一类配置。
func (tableStoreClient *TableStoreClient) UpdateTable(request *UpdateTableRequest) (*UpdateTableResponse, error)
以下示例更新 example_table 的数据生命周期、最大版本数、有效版本偏差和更新权限。
request := &tablestore.UpdateTableRequest{
TableName: "example_table",
TableOption: &tablestore.TableOption{
TimeToAlive: 86400,
MaxVersion: 3,
DeviationCellVersionInSec: 86400,
AllowUpdate: proto.Bool(false),
},
}
_, err := client.UpdateTable(request)
if err != nil {
log.Fatal(err)
}
参数说明
UpdateTableRequest 包含以下参数。
|
名称 |
类型 |
说明 |
|
TableName(必选) |
|
数据表名称。 |
|
TableOption(可选) |
|
要更新的表属性。 |
|
StreamSpec(可选) |
|
Stream 配置。 |
|
ReservedThroughput(可选) |
|
预留读写吞吐量配置。仅 CU 模式的高性能型实例支持设置非零值。 |
TableOption、StreamSpec 和 ReservedThroughput 必须至少设置一个。
表配置
TableOption 包含以下参数。
|
名称 |
类型 |
说明 |
|
TimeToAlive(可选) |
|
数据生命周期,单位为秒。设置为 |
|
MaxVersion(可选) |
|
每个属性列最多保留的版本数。使用多元索引或二级索引时必须设置为 |
|
DeviationCellVersionInSec(可选) |
|
有效版本偏差,单位为秒。写入数据的时间戳与系统当前时间的差值必须在有效版本偏差范围内。属性列数据的有效版本范围为 |
|
AllowUpdate(可选) |
|
是否允许通过 |
UpdateFullRow 只能在创建数据表时设置,不能通过 UpdateTable 修改。
Stream 配置
StreamSpec 的类型为 StreamSpecification,包含以下参数。
|
名称 |
类型 |
说明 |
|
EnableStream(必选) |
|
是否开启 Stream。 |
|
ExpirationTime(可选) |
|
增量日志的保留时长,单位为小时,最大值为 重要
修改 ExpirationTime 参数时,必须同时将 EnableStream 设置为 true。否则会导致现有数据通道不可用,并影响表中多元索引的数据同步。 |
预留读写吞吐量
ReservedThroughput 包含以下参数。
|
名称 |
类型 |
说明 |
|
Readcap(可选) |
|
预留读吞吐量,单位为 CU,默认值为 |
|
Writecap(可选) |
|
预留写吞吐量,单位为 CU,默认值为 |
场景示例
更新 Stream 配置
以下示例为 example_table 开启 Stream,并将增量日志保留时长设置为 168 小时。
request := &tablestore.UpdateTableRequest{
TableName: "example_table",
StreamSpec: &tablestore.StreamSpecification{
EnableStream: true,
ExpirationTime: 168,
},
}
_, err := client.UpdateTable(request)
if err != nil {
log.Fatal(err)
}