如果由於業務變更、效能最佳化等情況需要在多元索引中新增、更新或者刪除索引列以及修改多元索引的路由鍵和預排序方式,您可以通過動態修改多元索引的schema實現。動態修改schema操作包括為源索引建立灰階索引並修改多元索引schema、等待表資料全部同步到灰階索引、設定權重進行A/B測試、交換源索引和灰階索引的schema和刪除灰階索引五個步驟。
功能概述
Table Store資料表是schema free的,而多元索引是強schema的。建立多元索引時,您需要指定添加到多元索引中的列,這樣使用多元索引查詢資料時才能查詢到這些列。但是出於業務變更、效能最佳化等目的,修改多元索引schema成為一個非常常見的需求。例如以下情境:
新增索引列:隨著業務發展,需要查詢更多的列,則可以添加更多的索引列。
更新索引列:可以修改列類型、虛擬列、是否數組、分詞類型、日期格式等。
刪除索引列:隨著業務發展,有些列不再需要查詢,可以考慮刪掉。
修改路由鍵:查詢時合理指定路由鍵,減少查詢時的讀放大並提升效能。
修改預排序:查詢時如果資料排序次序與預排序相同,則可以加速資料查詢。
使用流程
動態修改schema的具體流程如下圖所示。整個過程對業務層透明,您無需變更業務代碼,即可實現輕量級動態修改schema。
修改多元索引schema的主要步驟說明請參見下表。
步驟 | 操作 | 說明 |
1 | 建立灰階索引 | 為源索引建立一個灰階索引,並根據需要新增、修改和刪除多元索引的schema。 |
2 | 查看索引同步進度 | 灰階索引會自動同步資料表的資料,等待資料表的存量和增量資料同步到灰階索引,直到同步進度與源索引的進度相同。 |
3 | 設定權重進行A/B測試 | A/B測試功能支援將查詢流量按照一定比例分攤到源索引和灰階索引來驗證修改schema的效果。 通過A/B測試逐步引流查詢流量到灰階索引,直到100%查詢流量均切到灰階索引。 |
4 | 交換索引Schema | 查詢流量全部切換到灰階索引後,交換源索引和灰階索引的schema。 交換索引後,源索引名會關聯到新schema,而灰階索引名會關聯到老schema,並且100%查詢流量會查詢源索引名關聯的新schema。 |
5 | 刪除灰階索引 | 交換索引並驗證索引無誤後,建議靜置一段時間(例如一天)再刪除灰階索引。 |
操作步驟
進入索引管理頁簽。
在頁面上方,選擇地區和資源群組。
在概覽頁面,單擊執行個體名稱或在操作列單擊執行個體管理。
在執行個體詳情頁簽的資料表列表地區,單擊資料表名稱或在操作列單擊索引管理。
基於源索引建立灰階索引。
在索引管理頁簽,單擊多元索引操作列的修改schema。
在重建索引對話方塊,根據需要添加、修改或者刪除索引欄位。
如果需要修改多元索引的路由鍵或者預排序方式,請開啟進階選項開關,然後根據下表說明進行配置。
參數
說明
路由鍵
自訂路由欄位,可以選擇部分主鍵列作為路由欄位。
在進行索引資料寫入時,會根據路由欄位的值計算索引資料的分布位置,路由欄位的值相同的記錄會被索引到相同的資料分區中。更多資訊,請參見多元索引路由欄位的使用。
預排序
多元索引預設按照設定的索引預排序方式進行排序。使用多元索引查詢資料時,預排序決定了資料的預設返回順序。更多資訊,請參見索引預排序。
如果要按照主鍵排序,直接選擇此參數為預設排序即可。
如果要按照欄位值或者主鍵組合排序,請選擇此參數為自訂排序,並進行配置。具體操作如下:
選擇排序類型為主鍵預排序或者欄位預排序,並單擊添加。
根據實際選擇欄位名或排序方式。
排序方式支援選擇升序和降序。
重要只有選擇排序類型為欄位預排序時,才需要選擇欄位名。
使用自訂排序時支援同時配置主鍵預排序和欄位預排序,請根據需要配置。
單擊確認重建。
在索引對比對話方塊,查看源索引和灰階索引的路由鍵、預排序和schema對比資訊,確認無誤後,單擊確定。
查看索引同步資訊。
單擊源索引前的表徵圖或者源索引名稱。
系統會顯示源索引的灰階索引。
單擊灰階索引操作列的灰階/上線。
重要灰階索引會經歷“存量同步”和“增量同步處理”兩個階段。
資料同步完成前,將滑鼠游標移動至操作列的灰階/上線按鈕上,系統會提示切換有風險,禁止使用者切換。
當灰階索引同步進度追上源索引的同步進度後,將滑鼠游標移動至操作列的灰階/上線上,系統會提示可安全切換,此時請繼續執行後續操作。
在灰階/上線對話方塊,查看索引同步資訊。
索引同步完成後,通過設定權重進行A/B測試。
A/B測試功能支援將查詢流量按照一定比例分攤到源索引和灰階索引來驗證修改schema的效果。僅當查詢流量全部都切到灰階索引時,才能繼續執行後續步驟。
在灰階/上線對話方塊的操作地區,拖動滑塊調整源索引和灰階索引的權重後,單擊設定權重。
在設定權重對話方塊,查看權重資料和schema對比資訊。
確認無誤後,單擊設定權重。
在系統提示框中單擊確定。
查詢流量全部切換到灰階索引後,交換源索引和灰階索引的schema。
交換索引後,源索引名會關聯到新schema,而灰階索引名會關聯到老schema,並且100%查詢流量會查詢源索引名關聯的新schema。
在灰階/上線對話方塊的操作地區,單擊交換索引。
在交換索引對話方塊,查看源索引和灰階索引的路由鍵、預排序和schema對比資訊,確認無誤後,單擊確認交換。
交換索引並驗證索引無誤後,建議靜置一段時間(例如一天)再刪除源索引。
在灰階/上線對話方塊,單擊刪除灰階索引。
在確認刪除灰階索引對話方塊,確認要刪除的灰階索引資訊正確後,在文字框中輸入
我已確認新索引資料已經同步完成並且灰階一定時間
內容。單擊確定。
安全性
為了保證操作的安全性,Table Store提供了“復原機制”和“切換提醒”,最大限度地降低修改索引過程中可能的風險。
復原機制
動態修改Schema的關鍵步驟均支援復原。
建立灰階索引後,如果發現灰階索引的Schema不符合預期,您可以刪除後重新建立。
在A/B測試階段,通過設定查詢權重,將查詢流量逐步引流到灰階索引。在此過程中,如果發現問題,可以隨時重新設定查詢權重,將查詢流量重新引流到源索引。
交換源索引和灰階索引的Schema後,如果發現問題,您可以隨時撤銷交換,切回源索引的Schema。交換索引和撤銷交換互為逆向操作。
切換提醒
如果在灰階索引的同步進度落後於源索引時將流量切到灰階索引,則可能會出現查詢資料回退。此時Table Store會通過源索引和灰階索引的同步狀態和最後同步時間,判斷“是否可以安全切換”。
當出現如下情況時,Table Store會判斷為可安全切換。
當源索引處於全量階段,灰階索引為全量或者增量階段,即灰階索引已追上源索引。
源索引和灰階索引均處於增量階段,且“源索引最後同步時間 - 60 s <= 灰階索引最後同步時間”,即灰階索引落後源索引的時間不超過1分鐘。
計費說明
灰階索引構建和資料寫入不會產生費用。源索引和灰階索引均會產生與儲存規模有關的儲存和預留讀CU費用。更多資訊,請參見多元索引計量計費。
相關文檔
如果要在不改變表結構情況下實現新欄位新資料類型的查詢功能,您可以通過修改多元索引Schema或者建立多元索引時結合虛擬列功能來實現。更多資訊,請參見虛擬列。
您可以根據查詢情境使用全匹配查詢、匹配查詢、短語匹配查詢、精確查詢、多詞精確查詢、首碼查詢、範圍查詢、萬用字元查詢、多條件組合查詢、巢狀型別查詢、地理距離查詢、地理長方形範圍查詢、地理多邊形範圍查詢、列存在性查詢、摺疊(去重)、基於分詞的萬用字元查詢、虛擬列等功能查詢所需資料。
如果需要使用SQL快速查詢多元索引中不同類型的資料,您可以使用SQL查詢功能通過多元索引實現。更多資訊,請參見SQL查詢介紹、建立多元索引的映射關係、查詢資料、全文檢索索引、多元索引數群組類型、多元索引巢狀型別和多元索引虛擬列。
如果要實現求最小值、求最大值、求和、求平均值、統計行數、去重統計行數、百分位統計、按欄位值分組、按範圍分組、按地理位置分組、按過濾條件分組、長條圖統計、日期長條圖統計、擷取統計彙總分組內的行、巢狀查詢等資料分析需求,您可以使用多元索引統計彙總功能實現。更多資訊,請參見統計彙總。