TablestoreコンソールまたはTablestore SDKを使用して、検索インデックスのTTLを指定できます。検索インデックスのTTL機能を使用するには、検索インデックスが作成されたデータテーブルのUpdateRow操作を禁止する必要があります。
Tablestoreコンソールの使用
データテーブルのUpdateRow操作を無効にします。
データテーブルの基本情報タブの基本情報属性の変更セクションで、をクリックします。
属性の変更ダイアログボックスで、更新を許可をいいえに設定し、リスクメッセージの横にあるチェックボックスをオンにして、OKをクリックします。
検索インデックスのTTLを指定します。
データテーブルのUpdateRow操作が禁止された後、既存の検索インデックスのTTLを指定するか、検索インデックスの作成時にTTLを指定できます。
検索インデックスの作成時にTTLを指定する
データテーブルのインデックスタブで、検索インデックスの作成をクリックします。
インデックスの作成ダイアログボックスで、インデックス名、有効期限、およびスキーマ生成タイプの各パラメータを設定します。
詳細設定をオンにし、有効期限パラメータを設定して、OKをクリックします。
既存の検索インデックスのTTLを指定する
データテーブルのインデックスタブで、TTLを指定する検索インデックスを見つけ、アクション列のインデックスの詳細をクリックします。
インデックスの詳細ダイアログボックスで、変更をクリックし、有効期限パラメータの値を変更して、変更をクリックします。
検索インデックスのTTLは、検索インデックスが作成されたデータテーブルのTTLとは独立しています。データテーブルのTTLを使用する場合は、データテーブルのTTLを設定します。
データテーブルの説明セクションの基本情報タブで、属性の変更をクリックします。
属性の変更ダイアログボックスで、ビジネス要件に基づいて有効期限パラメータを設定し、OKをクリックします。
Tablestore SDKの使用
Tablestore SDK for JavaまたはTablestore SDK for Goを使用して、検索インデックスのTTLを指定できます。この例では、Tablestore SDK for Javaを使用します。
データテーブルのUpdateRow操作を禁止します。
次のサンプルコードは、データテーブルのUpdateRow操作を禁止する方法の例を示しています。
public static void disableTableUpdate(SyncClient client) {
UpdateTableRequest updateTableRequest = new UpdateTableRequest("<TABLE_NAME>");
TableOptions options = new TableOptions();
// ビジネスへの影響を防ぐために、データテーブルのUpdateRow操作を禁止します。
options.setAllowUpdate(false);
updateTableRequest.setTableOptionsForUpdate(options);
client.updateTable(updateTableRequest);
}
検索インデックスのTTLを指定します。
データテーブルのUpdateRow操作が禁止された後、既存の検索インデックスのTTLを指定するか、検索インデックスの作成時にTTLを指定できます。
検索インデックスの作成時にTTLを指定する
次のサンプルコードは、TTLを指定して検索インデックスを作成する方法の例を示しています。この例では、検索インデックスは、String型のCol_Keyword列とLong型のCol_Long列で構成されています。検索インデックスのTTLは7日間です。
// Tablestore SDK for Java V5.12.0以降を使用します。
public static void createIndexWithTTL(SyncClient client) {
int days = 7;
CreateSearchIndexRequest createRequest = new CreateSearchIndexRequest();
// データテーブルの名前を指定します。
createRequest.setTableName("<TABLE_NAME>");
// 検索インデックスの名前を指定します。
createRequest.setIndexName("<SEARCH_INDEX_NAME>");
IndexSchema indexSchema = new IndexSchema();
indexSchema.setFieldSchemas(Arrays.asList(
// フィールドの名前と型を指定します。
new FieldSchema("Col_Keyword", FieldType.KEYWORD),
new FieldSchema("Col_Long", FieldType.LONG)));
createRequest.setIndexSchema(indexSchema);
// 検索インデックスのTTLを指定します。
createRequest.setTimeToLiveInDays(days);
// 検索インデックスを作成します。
client.createSearchIndex(createRequest);
}
既存の検索インデックスのTTLを変更する
次のサンプルコードは、既存の検索インデックスのTTLを7日に設定する方法の例を示しています。
// Tablestore SDK for Java V5.12.0以降を使用します。
public static void updateIndexWithTTL(SyncClient client) {
int days = 7;
UpdateSearchIndexRequest updateSearchIndexRequest = new UpdateSearchIndexRequest("<TABLE_NAME>", "<SEARCH_INDEX_NAME>");
// 検索インデックスのTTLを変更します。
updateSearchIndexRequest.setTimeToLiveInDays(days);
client.updateSearchIndex(updateSearchIndexRequest);
}
データテーブルのTTLは、データテーブル用に作成された検索インデックスのTTLとは独立しています。データテーブルのTTLを指定できます。
次のサンプルコードは、データテーブルのTTLを7日に設定する方法の例を示しています。
public static void updateTableTTL(SyncClient client) {
int days = 7;
UpdateTableRequest updateTableRequest = new UpdateTableRequest("<TABLE_NAME>");
TableOptions options = new TableOptions();
options.setTimeToLiveInDays(days);
updateTableRequest.setTableOptionsForUpdate(options);
client.updateTable(updateTableRequest);
}