全部產品
Search
文件中心

:邏輯表結構設計

更新時間:Jun 30, 2024

Data Management提供的結構設計功能,可以實現對目標庫表進行符合研發規範的表結構設計。您可按需自訂不同業務線的研發流程,保障多套環境(例如開發環境、測試環境、生產環境)之間結構的一致性。本文介紹邏輯表結構設計的方法。

背景資訊

分庫分表後需要保障一個分表的DDL變更在所有分區中同時生效,同時儘可能減少複雜操作。DMS提供的邏輯表結構設計基於邏輯庫、邏輯表的彙總,可以實現將分庫分表當做單個表進行透明操作,符合使用者訴求。

前提條件

  • 支援的資料庫類型:

    • MySQL:RDS MySQLPolarDB MySQL版MyBase MySQL、其他來源MySQL。

    • OceanBase。

  • 執行個體的管控模式為安全協同。更多資訊,請參見查看管控模式

  • 已有一個開發環境類型的邏輯庫作為設計階段的基準庫、一個生產環境類型的邏輯庫作為發布階段的目標庫。配置邏輯庫和設定執行個體環境類型的操作,請參見邏輯庫更改執行個體環境類型

    說明

    MySQL預設的安全規則(mysql default)規定結構設計的研發流程中設計階段的庫環境為開發庫(dev),發布階段的庫環境為生產環境(product)。您可根據業務需求自行調整研發流程,具體操作,請參見結構設計

  • 您需要有基準庫和目標庫的變更許可權。

注意事項

基準庫與目標庫的類型需要保持一致。例如基準庫為MySQL,則目標庫的類型也需要為MySQL。

操作步驟

  1. 登入Data Management 5.0
  2. 在頂部功能表列中,選擇資料庫開發 > 結構變更 > 結構設計

    說明

    若您使用的是極簡模式的控制台,請單擊控制台左上方的2023-01-28_15-57-17.png表徵圖,選擇全部功能 > 資料庫開發 > 結構變更 > 結構設計

  3. 單擊頁面右上方的結構設計

  4. 配置結構設計工單的基本資料,並單擊提交。部分參數說明如下:

    配置

    說明

    變更基準庫

    選擇安全協同模式的邏輯庫。邏輯庫的環境類型需要符合該資料庫安全規則的研發流程規範,關於研發流程,請參見結構設計

    變更相關人

    搜尋並選擇變更相關人,變更相關人可查看工單,參與開發、評審並推動工作。

    說明

    非相關人員則不能查看工單(管理員、DBA除外)。

  5. 建立邏輯表。

    有兩種建立邏輯表的方式:

    • 通過可視化方式

      1. 單擊建立邏輯表

      2. 建立邏輯表頁面,分別單擊基本資料列資訊索引資訊,設定表的基本資料、列資訊和索引資訊。

      3. 單擊分錶拓撲,輸入邏輯表的運算式。關於邏輯表運算式,請參見邏輯表運算式

        說明

        修改邏輯表運算式會刪除原表,建立新表,風險比較大,無法復原,請謹慎操作。

      4. 單擊計算表拓撲分布,預覽建立表名和表的分布地址是否符合預期。若不符合則可以調整運算式後重試。

      5. 單擊儲存

    • 通過SQL建表語句

      1. 單擊匯入SQL語句

      2. 輸入建表Create Table或修改表Alter Table的SQL語句,並單擊確定

        例如,建立兩張表orders_logic_[05]orders_logic_[06],SQL建表語句如下:

        CREATE TABLE `orders_logic_[05-06]` (
            `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'primary key',
            `gmt_create` datetime NOT NULL COMMENT 'create time',
            `gmt_modified` datetime NOT NULL COMMENT 'modify time',
            PRIMARY KEY (`id`)
        ) DEFAULT CHARACTER SET=utf8 COMMENT='建立邏輯表';
      3. 建立邏輯表:orders_logic_[05-06]頁簽,確認表結構資訊,確認無誤後,單擊儲存

        說明

        已有表的變更不能調整分表運算式。

  6. 預檢測結果對話方塊中,查看預檢查結果。

    • 預檢查通過:單擊確認無誤,提交保存

    • 預檢查結果中只有警告:單擊忽略警告, 繼續保存,或單擊關閉,按規範修改表結構後,重新單擊儲存

    • 預檢查結果中有錯誤:查看錯誤原因,單擊關閉,按規範修改表結構後,重新單擊儲存

    說明
    • 系統根據預設安全規則中的研發規範對建表語句進行校正,提示本次操作中存在的研發規範類錯誤和警告。

    • 當前DMS的研發規範支援建立表、修改表欄位、修改表索引等多方面近40條規範,您可以在安全規則中進行自訂配置。

    預檢查通過後,系統將自動跳轉至結構設計專案首頁頁簽,您可以在項目編輯的表頁簽中,查看修改、新增的表,編輯、刪除目標表等。

  7. 將修改、新增的表執行到基準庫中。

    1. 單擊執行變更到基準庫

    2. 執行變更到基準庫面板,選擇執行策略、灰階方式和灰階行動,單擊確定

    待審批完成後,系統會自動將修改、新增的表結構執行到基準庫中,在變更執行歷史頁簽中查看執行進度。

    說明
    • 執行記錄會以每個分庫一條記錄進行分組執行。

    • 您可以在基準庫的SQL視窗中,查看修改、新增的表結構是否符合預期。

    • 預設的安全規則規定結構變更均需要提交審批工單,您也可以在安全規則中進行自訂配置,例如設定開發節點的變更為免審批、設定生產節點的變更審批人等。

  8. 單擊進入下一節點,在彈出的對話方塊中,再次單擊進入下一節點

  9. 將修改、新增的表結構執行到生產庫中。

    1. 單擊執行變更到目標庫

    2. 執行變更到目標庫面板中,選擇目標庫,單擊確定

      說明

      您還可以單擊增加多套庫,將指令碼代碼批量執行到多套生產庫。

      待審批完成後,系統會自動將修改、新增的表結構同步到目標生產庫中。您還可以在生產庫的SQL視窗中,查看修改、新增的表結構是否符合預期。

    3. 單擊進入下一節點,在彈出的對話方塊中,再次單擊進入下一節點

      整個流程結束,工單關閉後,您可以單擊各節點查看變更與發布記錄。

後續操作

建立邏輯表後,需要維護路由演算法。具體操作,請參見配置路由演算法