すべてのプロダクト
Search
ドキュメントセンター

Tablestore:テーブルの構成を更新する

最終更新日:Dec 28, 2024

このトピックでは、パラメーターとサンプルコードを使用して、Tablestore SDK for Go を使用してテーブルの構成を更新する方法について説明します。データテーブルの有効期限 (TTL)、最大バージョン数、最大バージョンオフセット、および Stream 構成を更新できます。また、高性能インスタンスのデータテーブルの予約済み読み取りおよび書き込みスループットを更新することもできます。

前提条件

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 を参照してください。

  • テーブルの構成を更新した後、次の操作を実行できます。