このトピックでは、パラメーターとサンプルコードを使用して、Tablestore SDK for Go を使用してテーブルの構成を更新する方法について説明します。データテーブルの有効期限 (TTL)、最大バージョン数、最大バージョンオフセット、および Stream 構成を更新できます。また、高性能インスタンスのデータテーブルの予約済み読み取りおよび書き込みスループットを更新することもできます。
前提条件
OTSClient インスタンスが初期化されていること。詳細については、OTSClient インスタンスを初期化する を参照してください。
データテーブルが作成されていること。詳細については、データテーブルを作成する を参照してください。
API 操作
// TableOption、ReservedThroughput、または StreamSpec を使用してデータテーブルの構成を更新します。
UpdateTable(request *UpdateTableRequest) (*UpdateTableResponse, error)
パラメーター
詳細については、パラメーター を参照してください。
サンプルコード
データテーブルの構成を更新する
次のサンプルコードは、データテーブルの構成を更新する方法の例を示しています。
func UpdateTable(client *tablestore.TableStoreClient, tableName string) {
updateTableReq := new(tablestore.UpdateTableRequest)
// データテーブルの名前を指定します。
updateTableReq.TableName = tableName
updateTableReq.TableOption = new(tablestore.TableOption)
// データテーブルのデータの TTL を指定します。値 -1 は、データテーブルのデータが期限切れにならないことを指定します。
updateTableReq.TableOption.TimeToAlive = -1
// データテーブルの各属性列に保持できる最大バージョン数を指定します。この例では、各属性列に最大 5 つのバージョンのデータを保持できます。
updateTableReq.TableOption.MaxVersion = 5
// 現在のシステム時刻と書き込まれたデータのタイムスタンプの最大差を指定します。この例では、最大差は 86,400 秒(1 日)に設定されています。
updateTableReq.TableOption.DeviationCellVersionInSec = 86400
// データテーブルでの UpdateRow 操作を許可することを指定します。
updateTableReq.TableOption.AllowUpdate = proto.Bool(true)
// Stream 機能を有効にし、ストリームの有効期間を 24 時間に設定します。
//updateTableReq.StreamSpec = new(tablestore.StreamSpecification)
//updateTableReq.StreamSpec.EnableStream = true
//updateTableReq.StreamSpec.ExpirationTime = 24
_, err := client.UpdateTable(updateTableReq)
if (err != nil) {
fmt.Println("failed to update table with error:", err) // テーブルの更新に失敗しました:
} else {
fmt.Println("update finished") // 更新完了
}
}
高性能インスタンスのデータテーブルの予約済みスループットを更新する
高性能インスタンスのデータテーブルの予約済みスループットを更新する方法の例を次のサンプルコードに示します。
func UpdateTable(client *tablestore.TableStoreClient, tableName string) {
updateTableReq := new(tablestore.UpdateTableRequest)
// データテーブルの名前を指定します。
updateTableReq.TableName = tableName
updateTableReq.ReservedThroughput = new(tablestore.ReservedThroughput)
// 新しい予約済み読み取りスループットを 1 に、新しい予約済み書き込みスループットを 1 に設定します。容量インスタンスのデータテーブルの場合、予約済み読み取りおよび書き込みスループットは 0 にのみ設定できます。
updateTableReq.ReservedThroughput.Readcap = 1
updateTableReq.ReservedThroughput.Writecap = 1
_, err := client.UpdateTable(updateTableReq)
if (err != nil) {
fmt.Println("failed to update table with error:", err) // テーブルの更新に失敗しました:
} else {
fmt.Println("update finished") // 更新完了
}
}
参照
API 操作の詳細については、UpdateTable を参照してください。
テーブルの構成を更新した後、次の操作を実行できます。
テーブルに対する操作。詳細については、テーブル を参照してください。
データに対する操作。詳細については、データに対する基本操作 を参照してください。