前提條件
已初始化 OTSClient。具體操作,請參見初始化Tablestore Client。
-
已建立資料表,且資料表的最大版本數(
maxVersions)必須為 1,資料生命週期(timeToLive)須滿足以下任一條件:timeToLive為-1,即資料永不到期。timeToLive不為-1,且資料表處于禁止更新狀態。
資料表已設定預定義列。
注意事項
.NET SDK目前僅支援全域二級索引。如需建立本地二級索引,請使用其他語言 SDK、管理主控台或命令列工具。
索引表名稱不能與已有的時序表或資料表名稱相同。
建立二級索引時,系統自動將資料表主鍵中未出現在索引列的主鍵列補齊到索引表主鍵中。
參數
|
參數 |
說明 |
|
mainTableName |
資料表名稱。 |
|
indexMeta |
索引表的結構資訊,包含以下欄位:
|
樣本
以下樣本在主鍵為 pk1 和 pk2 的資料表上建立全域二級索引。索引列為 col1,屬性列為 col2,不包含存量資料。建立完成後,索引表的完整主鍵為 col1、pk1、pk2,屬性列為 col2。
public static void CreateGlobalIndex(OTSClient otsClient, String TableName, String IndexName)
{
Console.WriteLine("Start create globalIndex...");
IndexMeta indexMeta = new IndexMeta(IndexName);
// 為索引表添加主鍵列。
indexMeta.PrimaryKey = new List<string>() { "col1" };
// 為索引表添加屬性列。
indexMeta.DefinedColumns = new List<string>() { "col2" };
//indexMeta.IndexType = IndexType.IT_GLOBAL_INDEX;
//indexMeta.IndexUpdateModel = IndexUpdateMode.IUM_ASYNC_INDEX;
CapacityUnit reservedThroughput = new CapacityUnit(0, 0);
CreateGlobalIndexRequest request = new CreateGlobalIndexRequest(TableName, indexMeta);
otsClient.CreateGlobalIndex(request);
Console.WriteLine("Global Index is created,tableName: " + TableName + ",IndexName:" + IndexName);
}
相關文檔
建立二級索引後,可通過單行讀取或範圍讀取方式查詢資料。具體操作,請參見使用二級索引讀取資料。
不再需要某個二級索引時,可將其刪除。具體操作,請參見刪除二級索引。