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