如果實際業務中要用到非主鍵列查詢、多條件組合查詢等多種查詢功能,您可以通過控制臺為數據表創建多元索引,然后使用多元索引查詢數據。
前提條件
已創建數據表,且數據表的最大版本數(max Versions)必須為1,數據生命周期(Time to Live)必須滿足如下條件中的任意一個。具體操作,請參見數據表操作。
數據表的數據生命周期為-1(數據永不過期)。
數據表的數據生命周期不為-1時,數據表為禁止更新狀態(即是否允許更新為否)。
注意事項
步驟一:創建多元索引
創建多元索引用于加速數據查詢。創建多元索引時,您需要將要查詢的字段添加到多元索引中,您還可以配置多元索引的路由鍵、數據生命周期和預排序的高級選項。
進入索引管理頁簽。
登錄表格存儲控制臺。
在頁面上方,選擇資源組和地域。
在概覽頁面,單擊實例名稱或在操作列單擊實例管理。
在實例詳情頁簽的數據表列表區域,單擊數據表名稱或在操作列單擊索引管理。
在索引管理頁簽,單擊創建多元索引。
在創建索引對話框,創建多元索引。
系統默認會自動生成索引名,可根據需要設置索引名。
選擇Schema生成方式。
如果需要配置數據生命周期、路由鍵、索引預排序等選項,請打開高級選項開關,并根據下表說明配置參數。
參數
說明
路由鍵
自定義路由字段。可以選擇部分主鍵列作為路由字段,在進行索引數據寫入時,表格存儲會根據路由字段的值計算索引數據的分布位置,路由字段的值相同的記錄會被索引到相同的數據分區中。
數據生命周期
多元索引中數據的保存時間,單位為秒。默認值為-1,表示數據永不過期。
數據生命周期的取值最低為86400秒(一天),也可設置為-1(永不過期)。同時多元索引的TTL值必須小于或等于數據表的TTL值。
如果需要系統自動清理多元索引中的歷史數據,您可以配置數據生命周期為指定時間。當數據的保存時間超過設置的數據生命周期時,系統會自動清理超過數據生命周期的數據。
預排序
多元索引默認按照設置的索引預排序方式進行排序,用于確定數據的默認返回順序。
索引預排序只支持按照主鍵排序和按照字段值排序兩種方式。如果未自定義預排序,則默認為主鍵排序,您可以根據實際查詢場景指定預排序方式。
重要含有Nested類型字段的多元索引不支持索引預排序。
單擊確定。
多元索引創建完成后,在索引列表的操作列,單擊索引詳情,可查看索引表的索引基本信息、索引計量、路由鍵、索引字段和預排序等信息。
步驟二:查詢數據
使用多元索引查詢數據時,請根據實際查詢場景選擇合適的查詢類型。查詢數據時支持配置要返回的列以及返回數據的排序方式。
多元索引支持在控制臺使用的查詢類型包括精確查詢、范圍查詢、前綴查詢、匹配查詢、通配符查詢、短語匹配查詢、列存在性查詢、多詞精確查詢、多條件組合查詢、地理位置查詢(只能對地理位置字段使用)和嵌套類型查詢(只能對嵌套類型字段使用)。
進入索引管理頁簽。
登錄表格存儲控制臺。
在頁面上方,選擇資源組和地域。
在概覽頁面,單擊實例名稱或在操作列單擊實例管理。
在實例詳情頁簽的數據表列表區域,單擊數據表名稱或在操作列單擊索引管理。
在索引管理頁簽,單擊目標多元索引操作列的搜索。
在查詢數據對話框,查詢數據。
系統默認返回所有列,如需顯示指定屬性列,關閉獲取所有列并輸入需要返回的屬性列,多個屬性列之間用半角逗號(,)隔開。
說明系統默認會返回數據表的主鍵列。
選擇索引字段,單擊添加,并設置索引字段的查詢類型和值。
查詢類型
說明
采用完整精確匹配的方式查詢表中的數據,類似于字符串匹配。對于Text(分詞字符串)類型字段,只要分詞后有詞條可以精確匹配即可。
根據范圍條件查詢表中的數據。對于Text類型字段,只要分詞后的詞條中有詞條滿足范圍條件即可。
根據前綴條件查詢表中的數據。對于Text類型字段,只要分詞后的詞條中有詞條滿足前綴條件即可。
用近似匹配的方式查詢表中的數據。對Text類型的列值和查詢關鍵詞會先按照設置好的分詞器做切分,然后按照切分好后的詞去查詢。
通配符查詢中要匹配的值可以是一個帶有通配符的字符串。
目前支持星號(*)和問號(?)兩種通配符。要匹配的值中可以用星號(*)代表任意字符序列或者用問號(?)代表任意單個字符,且支持以星號(*)或問號(?)開頭。
類似于匹配查詢,但是分詞后多個詞的位置關系會被考慮,只有分詞后的多個詞在行數據中以同樣的順序和位置存在時,才表示行數據滿足查詢條件。
如果查詢列的分詞類型為模糊分詞,則使用短語匹配查詢可以實現比通配符查詢更快的模糊查詢。
也叫NULL查詢或者空值查詢,一般用于判斷稀疏數據中某一行的某一列是否存在,例如查詢所有數據中address列不為空的行。
如果需要查詢某一列為空,則選擇操作符為Not且字段的查詢類型為列存在性查詢。
類似于精確查詢,但是多詞精確查詢可以指定多個查詢關鍵詞,查詢匹配這些詞的數據。多個查詢關鍵詞中只要有一個詞精確匹配,該行數據就會被返回,等價于SQL中的In。
查詢條件包含一個或者多個子查詢條件,根據子查詢條件來判斷一行數據是否滿足查詢條件。
每個子查詢條件可以是控制臺中支持配置的任意一種查詢類型。
配置時需要根據實際選擇關系操作符為And、Or或Not。
地理位置查詢
地理位置查詢包括距離查詢、矩形查詢和多邊形查詢三種查詢方式。只有當所選字段的數據類型為地理位置時才能使用地理位置查詢。
查詢嵌套類型字段中子行的數據。只有當所選字段的數據類型為嵌套類型時才能使用嵌套類型查詢。
選擇嵌套類型字段后,需要選擇子列并配置子列的查詢類型和值。
向量檢索使用數值向量進行近似最近鄰查詢。只有當所選字段的數據類型為向量類型時才能使用向量檢索。
選擇向量類型字段后,需要輸入要查詢的向量和topK值。
系統默認關閉排序功能,如需根據索引字段對返回結果進行排序,打開是否排序后,根據需要添加索引字段并配置排序方式。
單擊確定。
符合查詢條件的數據會顯示在索引管理頁簽中。
附錄:管理多元索引
創建多元索引后,請根據需要執行相應操作。
操作 | 說明 |
查看索引詳情 | 查看多元索引的索引基本信息、索引計量、路由鍵、索引字段和預排序等信息。
|
修改多元索引Schema | 如果要在多元索引中新增、更新或者刪除索引列,您可以使用動態修改schema功能實現。具體操作,請參見動態修改schema。 |
修改多元索引生命周期 | 如果希望系統自動清理多元索引中的歷史數據或者延長多元索引數據的保存時間,您可以修改多元索引的數據生命周期。
|
刪除多元索引 | 如果不再需要多元索引加速數據查詢時,您可以刪除多元索引。 重要 多元索引刪除后不能恢復,如需再次使用多元索引請重新創建。
|
常見問題
相關文檔
您還可以通過命令行工具和各語言SDK使用多元索引。具體操作,請參見通過命令行工具使用多元索引和通過SDK使用多元索引。
如果要在不修改數據表的存儲結構和數據的情況下,對新字段新數據類型的查詢,您可以使用虛擬列功能實現。具體操作,請參見虛擬列。