全部產品
Search
文件中心

Tablestore:動態修改schema

更新時間:Nov 09, 2024

如果由於業務變更、效能最佳化等情況需要在多元索引中新增、更新或者刪除索引列以及修改多元索引的路由鍵和預排序方式,您可以通過動態修改多元索引的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

刪除灰階索引

交換索引並驗證索引無誤後,建議靜置一段時間(例如一天)再刪除灰階索引。

操作步驟

  1. 進入索引管理頁簽。

    1. 登入Table Store控制台

    2. 在頁面上方,選擇地區和資源群組。

    3. 概覽頁面,單擊執行個體名稱或在操作列單擊執行個體管理

    4. 執行個體詳情頁簽的資料表列表地區,單擊資料表名稱或在操作列單擊索引管理

  2. 基於源索引建立灰階索引。

    1. 索引管理頁簽,單擊多元索引操作列的修改schema

    2. 重建索引對話方塊,根據需要添加、修改或者刪除索引欄位。

      image

    3. 如果需要修改多元索引的路由鍵或者預排序方式,請開啟進階選項開關,然後根據下表說明進行配置。

      參數

      說明

      路由鍵

      自訂路由欄位,可以選擇部分主鍵列作為路由欄位。

      在進行索引資料寫入時,會根據路由欄位的值計算索引資料的分布位置,路由欄位的值相同的記錄會被索引到相同的資料分區中。更多資訊,請參見多元索引路由欄位的使用

      預排序

      多元索引預設按照設定的索引預排序方式進行排序。使用多元索引查詢資料時,預排序決定了資料的預設返回順序。更多資訊,請參見索引預排序

      • 如果要按照主鍵排序,直接選擇此參數為預設排序即可。

      • 如果要按照欄位值或者主鍵組合排序,請選擇此參數為自訂排序,並進行配置。具體操作如下:

        1. 選擇排序類型為主鍵預排序或者欄位預排序,並單擊添加

        2. 根據實際選擇欄位名或排序方式。

          排序方式支援選擇升序和降序。

          重要

          只有選擇排序類型為欄位預排序時,才需要選擇欄位名。

        使用自訂排序時支援同時配置主鍵預排序和欄位預排序,請根據需要配置。

    4. 單擊確認重建

    5. 索引對比對話方塊,查看源索引和灰階索引的路由鍵、預排序和schema對比資訊,確認無誤後,單擊確定

  3. 查看索引同步資訊。

    1. 單擊源索引前的image.png表徵圖或者源索引名稱。

      系統會顯示源索引的灰階索引。

    2. 單擊灰階索引操作列的灰階/上線

      重要

      灰階索引會經歷“存量同步”和“增量同步處理”兩個階段。

      • 資料同步完成前,將滑鼠游標移動至操作列的灰階/上線按鈕上,系統會提示切換有風險,禁止使用者切換。

      • 當灰階索引同步進度追上源索引的同步進度後,將滑鼠游標移動至操作列的灰階/上線上,系統會提示可安全切換,此時請繼續執行後續操作。

    3. 灰階/上線對話方塊,查看索引同步資訊。

      image.png

  4. 索引同步完成後,通過設定權重進行A/B測試。

    A/B測試功能支援將查詢流量按照一定比例分攤到源索引和灰階索引來驗證修改schema的效果。僅當查詢流量全部都切到灰階索引時,才能繼續執行後續步驟。

    1. 灰階/上線對話方塊的操作地區,拖動滑塊調整源索引和灰階索引的權重後,單擊設定權重

      fig_setindex

    2. 設定權重對話方塊,查看權重資料和schema對比資訊。

    3. 確認無誤後,單擊設定權重

    4. 在系統提示框中單擊確定

  5. 查詢流量全部切換到灰階索引後,交換源索引和灰階索引的schema。

    交換索引後,源索引名會關聯到新schema,而灰階索引名會關聯到老schema,並且100%查詢流量會查詢源索引名關聯的新schema。

    image.png

    1. 灰階/上線對話方塊的操作地區,單擊交換索引

    2. 交換索引對話方塊,查看源索引和灰階索引的路由鍵、預排序和schema對比資訊,確認無誤後,單擊確認交換

  6. 交換索引並驗證索引無誤後,建議靜置一段時間(例如一天)再刪除源索引。

    image.png

    1. 灰階/上線對話方塊,單擊刪除灰階索引

    2. 確認刪除灰階索引對話方塊,確認要刪除的灰階索引資訊正確後,在文字框中輸入我已確認新索引資料已經同步完成並且灰階一定時間內容。

    3. 單擊確定

安全性

為了保證操作的安全性,Table Store提供了“復原機制”和“切換提醒”,最大限度地降低修改索引過程中可能的風險。

  • 復原機制

    動態修改Schema的關鍵步驟均支援復原。

    • 建立灰階索引後,如果發現灰階索引的Schema不符合預期,您可以刪除後重新建立。

    • 在A/B測試階段,通過設定查詢權重,將查詢流量逐步引流到灰階索引。在此過程中,如果發現問題,可以隨時重新設定查詢權重,將查詢流量重新引流到源索引。

    • 交換源索引和灰階索引的Schema後,如果發現問題,您可以隨時撤銷交換,切回源索引的Schema。交換索引撤銷交換互為逆向操作。

  • 切換提醒

    如果在灰階索引的同步進度落後於源索引時將流量切到灰階索引,則可能會出現查詢資料回退。此時Table Store會通過源索引和灰階索引的同步狀態和最後同步時間,判斷“是否可以安全切換”。

    當出現如下情況時,Table Store會判斷為可安全切換

    • 當源索引處於全量階段,灰階索引為全量或者增量階段,即灰階索引已追上源索引。

    • 源索引和灰階索引均處於增量階段,且“源索引最後同步時間 - 60 s <= 灰階索引最後同步時間”,即灰階索引落後源索引的時間不超過1分鐘。

計費說明

灰階索引構建和資料寫入不會產生費用。源索引和灰階索引均會產生與儲存規模有關的儲存和預留讀CU費用。更多資訊,請參見多元索引計量計費

相關文檔