通過控制台或者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);
}