在數據表上創建索引表后,可根據需要讀取索引表中的數據或者刪除數據表上指定的索引表。
前提條件
已初始化Client。具體操作,請參見初始化Client。
已創建數據表,且數據表的最大版本數(maxVersions)必須為1,數據生命周期(timeToLive)必須滿足如下條件中的任意一個。
數據表的數據生命周期為-1(數據永不過期)。
數據表的數據生命周期不為-1時,數據表為禁止更新狀態。
數據表已設置預定義列。
注意事項
索引表名稱不能與已存在的時序表名稱和數據表名稱相同。
創建二級索引時,系統會自動將未出現在索引列中的數據表主鍵補齊到索引表主鍵中。
創建本地二級索引時,索引表的第一列主鍵必須與數據表的第一列主鍵相同。
參數
參數 | 說明 |
mainTableName | 數據表名稱。 |
indexMeta | 索引表的結構信息,包括如下內容:
|
示例
創建全局二級索引
以下示例用于在主鍵為pk1、pk2的數據表上創建主鍵列為col1,屬性列為col2的索引表。該索引為全局二級索引且不包含存量數據。該索引表的完整主鍵為col1、pk1、pk2,屬性列為col2。
var client = require('./client');
var TableStore = require('./index.js');
client.createIndex({
mainTableName: "<TABLE_NAME>", //設置數據表名稱。
indexMeta: {
name: "<INDEX_NAME>", //設置索引表名稱。
primaryKey: ["col1"], //為索引表添加主鍵列。
definedColumn: ["col2"], //為索引表添加屬性列。
includeBaseData: false, //不包含存量數據。如果需要包含存量數據,請設置此參數為true。
indexUpdateMode: TableStore.IndexUpdateMode.IUM_ASYNC_INDEX,//索引更新模式默認為異步更新(IUM_ASYNC_INDEX)。
indexType: TableStore.IndexType.IT_GLOBAL_INDEX,//索引類型默認為全局二級索引(IT_GLOBAL_INDEX)。
}
}, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', JSON.stringify(data, null, 2));
});
創建本地二級索引
以下示例用于在主鍵為pk1、pk2的數據表上創建主鍵列為pk1、col1,屬性列為col2的索引表。該索引為本地二級索引且不包括存量數據。該索引表的完整主鍵為pk1、col1、pk2,屬性列為col2。
var client = require('./client');
var TableStore = require('./index.js');
client.createIndex({
mainTableName: "<TABLE_NAME>", //設置數據表名稱。
indexMeta: {
name: "<INDEX_TABLE>", //設置索引表名稱。
primaryKey: ["pk1","col1"], //為索引表添加主鍵列。索引表的第一列主鍵必須與數據表的第一列主鍵相同。
definedColumn: ["col2"], //為索引表添加屬性列。
includeBaseData: false, //不包含存量數據。如果需要包含存量數據,請設置此參數為true。
indexUpdateMode: TableStore.IndexUpdateMode.IUM_SYNC_INDEX,//設置索引更新模式為同步更新(IUM_SYNC_INDEX)。當索引類型為本地二級索引時,索引更新模式必須為同步更新。
indexType: TableStore.IndexType.IT_LOCAL_INDEX,//設置索引類型為本地二級索引(IT_LOCAL_INDEX)。
}
}, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', JSON.stringify(data, null, 2));
});
相關文檔
創建二級索引后,您可以單行讀取或者范圍讀取數據。具體操作,請參見使用二級索引讀取數據。
如果不再需要使用二級索引,您可以刪除二級索引。具體操作,請參見刪除二級索引。