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

Tablestore:テーブル構成の更新

最終更新日:Apr 02, 2026

Tablestore SDK for Go を使用して、TTL (生存時間)、バージョンの最大数、ストリーム設定、予約スループットなどのテーブル構成を更新します。

前提条件

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:ストリーム構成情報。次のパラメーターが含まれます。

    パラメーター

    タイプ

    説明

    EnableStream (必須)

    bool

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

    重要

    EnableStreamtrue に設定する場合は、ExpirationTime も設定する必要があります。

    ExpirationTime (任意)

    int32

    ストリームの有効期間。増分ログの有効期間を示します。単位:時間。最大値:168 (7 日)。

    重要

    ExpirationTime パラメーターを変更する場合は、EnableStreamtrue に設定する必要があります。そうしないと、既存のデータチャネルが利用できなくなり、テーブルの多次元インデックスのデータ同期に影響します。

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

説明
  • 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)

    // ストリームを有効にし、ストリームの有効期間を 7 日に設定します。
    // ExpirationTime パラメーターを変更する場合は、EnableStream も true に設定する必要があります。
    updateTableReq.StreamSpec = new(tablestore.StreamSpecification)
    updateTableReq.StreamSpec.EnableStream = true
    updateTableReq.StreamSpec.ExpirationTime = 168
    
    // 予約済み読み取りスループットを 0 CU に、予約済み書き込みスループットを 0 CU に設定します。
    // 0 以外のスループットは、CU モードの高性能インスタンスにのみ適用されます。
    updateTableReq.ReservedThroughput = new(tablestore.ReservedThroughput)
    updateTableReq.ReservedThroughput.Readcap = 0
    updateTableReq.ReservedThroughput.Writecap = 0

    // UpdateTable メソッドを呼び出して、テーブル構成を更新します。
    _, err := client.UpdateTable(updateTableReq)
    if (err != nil) {
        fmt.Println("テーブルの更新に失敗しました。エラー:", err)
    } else {
        fmt.Println("テーブルの更新が完了しました。")
    }
}

参照

時系列テーブルの更新