Tablestore SDK for Go を使用して、新規または既存の多次元インデックスの TTL を設定し、必要に応じてテーブルの TTL を調整します。
前提条件
Tablestore SDK for Go をインストールし、クライアントを初期化します。
注意事項
多次元インデックスの TTL は -1 または 86,400 秒以上の int32 型整数です。-1 はデータが有効期限切れにならないことを示します。-1 以外の値を設定する場合は、UpdateRow を使用した更新を無効にする必要があります。また、インデックスの TTL はテーブルの TTL を超えてはなりません。有効期限切れのデータは、バックグラウンドで非同期に削除されます。
操作手順
一連のワークフローには、UpdateRow 更新の無効化、多次元インデックスの TTL 設定、および必要に応じたテーブル TTL の調整が含まれます。実行順序は目標値によって異なります。新しいインデックスの TTL が現在のテーブル TTL を超える場合は、まずテーブルの TTL を増加させてください。それ以外の場合は、インデックスの設定後に必要に応じてテーブルの TTL を調整します。
1. UpdateRow を使用した更新を無効化する
テーブル構成を更新し、AllowUpdate を false に設定します。詳細については、「テーブル構成の更新」をご参照ください。
2. 検索インデックスの TTL を設定する
新しい検索インデックス
ttl := int32(7 * 24 * 60 * 60)
request := &tablestore.CreateSearchIndexRequest{
TableName: "example_table",
IndexName: "example_index",
TimeToLive: &ttl,
IndexSchema: &tablestore.IndexSchema{
FieldSchemas: []*tablestore.FieldSchema{
{
FieldName: proto.String("category"),
FieldType: tablestore.FieldType_KEYWORD,
Index: proto.Bool(true),
},
},
},
}
_, err := client.CreateSearchIndex(request)
if err != nil {
log.Fatal(err)
}
既存の検索インデックス
ttl := int32(7 * 24 * 60 * 60)
_, err := client.UpdateSearchIndex(&tablestore.UpdateSearchIndexRequest{
TableName: "example_table",
IndexName: "example_index",
TimeToLive: &ttl,
})
if err != nil {
log.Fatal(err)
}
3. 必要に応じてテーブルの TTL を調整する
テーブルの TTL も変更が必要な場合は、それが多次元インデックスの TTL 以上であることを確認してください。詳細については、「テーブル構成の更新」をご参照ください。
パラメーター
|
名前 |
型 |
説明 |
|
TimeToLive (オプション) |
*int32 |
多次元インデックスの TTL(秒単位)。有効値は -1 および 86,400 以上の int32 型整数です。-1 はデータが有効期限切れにならないことを示します。インデックス作成時のデフォルト値: -1。 |