通过控制台或者SDK设置多元索引生命周期。使用多元索引生命周期,您必须始终保持数据表UpdateRow更新写入操作为禁止状态。
使用控制台
禁用数据表UpdateRow更新写入操作。
在数据表的基本详情页签,单击修改表属性。
在修改表属性对话框,设置是否允许更新为否并选中风险提示信息,然后单击确定。
设置多元索引生命周期。
禁用数据表UpdateRow更新写入操作后,您可以在创建多元索引时指定TTL或为已有多元索引指定TTL。
创建多元索引时指定TTL
在数据表的索引管理页签,单击创建多元索引。
在创建索引对话框,设置索引名和数据生命周期和Schema生成方式。
打开高级选项开关后,设置数据生命周期,单击确定。
为已有多元索引指定TTL
在数据表的索引管理页签,单击目标多元索引操作列的索引详情。
在索引详情对话框,单击图标,修改数据生命周期,然后单击修改ttl。
多元索引的TTL和数据表的TTL是独立的。如果需要使用数据表TTL,请为数据表设置TTL。
在数据表的基本详情页签中基本信息区域,单击修改表属性。
在修改表属性对话框,根据需要设置数据生命周期,然后单击确定。
使用SDK
您可以通过Java SDK或者Go SDK使用生命周期管理。此处以Java SDK为例介绍数据生命周期的管理。
禁用数据表UpdateRow更新写入操作。
以下示例用于禁用数据表的UpdateRow更新写入操作。
public static void disableTableUpdate(SyncClient client) {
UpdateTableRequest updateTableRequest = new UpdateTableRequest("<TABLE_NAME>");
TableOptions options = new TableOptions();
// 禁用数据表UpdateRow更新写入操作,请确保数据表无UpdateRow写入操作,避免影响业务。
options.setAllowUpdate(false);
updateTableRequest.setTableOptionsForUpdate(options);
client.updateTable(updateTableRequest);
}
设置多元索引生命周期。
禁用数据表UpdateRow更新写入操作后,您可以在创建多元索引时指定TTL或者为已有多元索引指定TTL。
创建多元索引时指定TTL
以下示例用于创建一个多元索引,多元索引包含Col_Keyword和Col_Long两列,类型分别设置为字符串(String)和整型(Long)。同时指定多元索引生命周期为7天。
// 请使用5.12.0及以上版本的Java SDK。
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创建多元索引。
client.createSearchIndex(createRequest);
}
为已有多元索引指定TTL
以下示例用于指定已有多元索引的生命周期为7天。
// 请使用5.12.0及以上版本的Java SDK。
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);
}