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

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

最終更新日:Jul 24, 2025

このトピックでは、Tablestore SDK for Go を使用してテーブルの構成を更新する方法について説明します。

前提条件

Tablestore クライアントを初期化する

メソッドの説明

func (tableStoreClient *TableStoreClient) UpdateTable(request *UpdateTableRequest) (*UpdateTableResponse, error)

UpdateTableRequest パラメーター

  • TableName (必須) string: データテーブルの名前。

  • TableOption (オプション) *TableOption: テーブルの構成情報。以下のパラメーターが含まれます。

    パラメーター

    説明

    TimeToAlive (必須)

    int

    時系列テーブルのデータの生存時間 (TTL)。単位: 秒。

    • -1 に設定すると、データは期限切れになりません。最小値は 86400 (1 日) です。TTL を超えたデータは自動的に消去されます。

    • 多次元インデックスまたはセカンダリインデックスの機能を使用するには、TTL を -1 に設定するか、AllowUpdate パラメーターを false に設定します。

    MaxVersion (必須)

    int

    最大バージョン数。

    • 多次元インデックスまたはセカンダリインデックスの機能を使用するには、最大バージョン数を 1 に設定します。

    DeviationCellVersionInSec (オプション)

    int64

    最大バージョンオフセット。単位: 秒。

    • 書き込まれたデータのタイムスタンプと現在のシステム時間の差は、最大バージョンオフセットの範囲内でなければなりません。そうでない場合、データの書き込みは失敗します。

    • 属性列データの有効なバージョン範囲は、[max(データ書き込み時間 - 有効バージョンオフセット, データ書き込み時間 - TTL), データ書き込み時間 + 有効バージョンオフセット) です。

    AllowUpdate (オプション)

    *bool

    更新を許可するかどうかを指定します。

    • false に設定すると、UpdateRow() メソッドを使用してデータを更新することはできません。

  • StreamSpec (オプション) *StreamSpecification: Stream の構成情報。以下のパラメーターが含まれます。

    パラメーター

    説明

    EnableStream (オプション)

    bool

    Stream を有効にするかどうかを指定します。デフォルト値: false。

    ExpirationTime (オプション)

    int32

    Stream の有効期限。増分ログの有効期限を示します。単位: 時間。最大値: 168 (7 日)。

    • EnableStream を true に設定した場合、expirationTime を設定する必要があります。

  • ReservedThroughput (オプション) *ReservedThroughput: 予約済み読み取り/書き込みスループット (CU)。デフォルト値: 0。CU モードの高性能インスタンスのみ、ゼロ以外の値に設定できます。

説明
  • UpdateTable() メソッドを呼び出すときは、TableOption、StreamSpec、または ReservedThroughput パラメーターの少なくとも 1 つを設定します。

  • TableOption を設定する場合は、TimeToAlive パラメーターと MaxVersion パラメーターを設定します。

サンプルコード

次のサンプルコードは、test_table テーブルの構成を変更するために使用されます。

func UpdateTableSample(client *tablestore.TableStoreClient) {
    updateTableReq := new(tablestore.UpdateTableRequest)
    updateTableReq.TableName = "test_table"
    
    // テーブル構成情報
    updateTableReq.TableOption = new(tablestore.TableOption)
    // TTL を秒単位で設定
    updateTableReq.TableOption.TimeToAlive = 86400
    // 最大バージョン数を設定
    updateTableReq.TableOption.MaxVersion = 3
    // 最大バージョンオフセットを秒単位で設定
    updateTableReq.TableOption.DeviationCellVersionInSec = 86400
    // 更新を許可するかどうかを設定
    updateTableReq.TableOption.AllowUpdate = proto.Bool(false)

    // Stream を有効にし、Stream の有効期限を 7 日間に設定
    updateTableReq.StreamSpec = new(tablestore.StreamSpecification)
    updateTableReq.StreamSpec.EnableStream = true
    updateTableReq.StreamSpec.ExpirationTime = 168
    
    // 予約済み読み取りスループットを 0 CU、予約済み書き込みスループットを 0 CU に設定 (CU モードの高性能インスタンスのみ、予約済み読み取り/書き込みスループットにゼロ以外の値を設定できます)
    updateTableReq.ReservedThroughput = new(tablestore.ReservedThroughput)
    updateTableReq.ReservedThroughput.Readcap = 0
    updateTableReq.ReservedThroughput.Writecap = 0

    // UpdateTable メソッドを呼び出して、テーブル構成を変更
    _, err := client.UpdateTable(updateTableReq)
    if (err != nil) {
        fmt.Println("Failed to update table with error:", err)
    } else {
        fmt.Println("Update table finished.")
    }
}

参照

時系列テーブルを更新する