全部產品
Search
文件中心

ApsaraDB for OceanBase (Deprecated):分區策略使用樣本

更新時間:Jan 05, 2026

設定 OceanBase MySQL 類型的表分區策略

樣本:在資料庫 test_data 中,對order表設定建立分區策略和刪除分區策略。

  1. 在 SQL 視窗中,編輯 SQL 陳述式以建立表 order。

    image

    CREATE TABLE `order` (
    `time` date NOT NULL,
     `parti_key` int(11),
     `name` varchar(120) DEFAULT NULL
    ) partition by range columns(time, parti_key)
    (partition p2023_01 values less than ('2023-01-01', 20230101),
    partition p2023_02 values less than ('2023-02-01', 20230201))
  2. 在 SQL 開發視窗的 工單 頁簽中單擊 分區計劃 > 建立分區計劃

    image

  3. 建立分區計劃 面板中,單擊image編輯分區策略。

    image

  4. 設定分區策略 面板中,勾選 分區策略 項下的 建立策略 刪除策略

    image

    1. 建立分區策略

      1. 設定將要建立的分區數量。

      2. 建立規則。

        如上圖所示,可以對order表中包含的timeparti_key分區鍵設定分區策略。

        • time:該分區鍵類型為DATE,屬於時間類型,因此其可以使用 順序遞增 作為分區建立策略。樣本中,time分區鍵的建立策略是以目前時間(即分區計劃任務實際運行時的時間)為基準時間,間隔 1 個月產生若干分區。

        • parti_key:該分區鍵類型為INT,嘗試使用 自訂 作為分區建立策略。假定需要以目前時間為基準,間隔 1 個月產生若干分區。參照 自訂分區建立策略 一節中的表述,該運算式可以按照如下步驟產生:

          1. 擷取分區產生的基準時間:由於是以目前時間為基準,可以直接使用now()函數。

          2. 定義分區產生的間隔:由於樣本中是以 1 個月為間隔,因此在 建立規則 > 細則 > 間隔 中填入 1 作為固定間隔,且在步驟 1 運算式的基礎上增加 interval 運算式,產生下一個分區。即now () + interval ${INTERVAL} month,其中${INTERVAL}指代 建立規則 > 細則 > 間隔 中填入的值。

          3. 產生對應分區鍵類型的分區運算式:parti_key的類型為int,但步驟 1 中產生的運算式的類型為時間類型,需要將其轉換為int類型。您可以先將其轉成數字樣式的字串,再轉換為int類型,即:cast(date_format(now() + interval ${INTERVAL} month, '%Y%m01') as signed)

            其中,

            • CAST(xxx AS SIGNED):將欄位轉換成整數。

            • DATE_FORMAT():將欄位轉換成日期格式。

            • NOW():返回當前日期。

              說明

              在 ODC 中,還支援通過變數 ${LAST_PARTITION_VALUE} 引入當前資料庫的分區上限值,例如 ${LAST_PARTITION_VALUE} + interval ${INTERVAL} month 表示從資料庫最新的分區上限值進行後續分區產生。

            • INTERVAL ${INTERVAL} MONTH:按月間隔運算式,${INTERVAL}為 ODC 定義的時間間隔函數固定用法

            • '%Y%m01':日期格式。

      3. 選擇命名方式。

        如上圖所示,選擇的命名方式為 首碼+尾碼,該命名方式由一個固定的字串首碼和基於時間的可變尾碼構成。

        1. 固定首碼:該首碼可由使用者自由指定。

        2. 可變尾碼:可選擇時間類型的分區鍵對應的分區上界作為當前分區的命名尾碼,另外可選時間的格式化輸出格式以及時間的遞增間隔。

        3. 配置完成後,單擊 測試產生 按鈕可以查看設定的分區名。

      4. 選擇是否將表中最後一個分區的統計資訊複製到新分區。

    2. 刪除分區策略

      • 分區保留數量:保留最近的 N 個分區,即刪除最近 N 個分區外的其他分區。

      • 設定分區資料保留時間:刪除分區時,需確保該分區的上界小於設定的保留時間點;否則不予刪除。

      • 刪除後是否重建索引:用於控制刪除分區後是否自動重建索引,以保證索引的完整性和查詢效能。

    3. 單擊 分區策略 面板右下角的 預覽 SQL 查看根據所設定的分區策略產生的 SQL 陳述式。

      image

    4. 單擊 確定,完成設定分區策略。

  5. 單擊 提交,建立分區計劃。

設定 OceanBase Oracle 類型的表分區策略

樣本:在資料庫 SYS 中,對order表設定建立分區策略和刪除分區策略。

  1. 在 SQL 視窗中,編輯 SQL 陳述式以建立表 order。

    image

    CREATE TABLE "SYS"."order" (
      "TIME" DATE NOT NULL ENABLE,
      "KEY" NUMBER(*,0) NOT NULL ENABLE,
      "NAME" VARCHAR2(120) DEFAULT NULL
    ) COMPRESS FOR ARCHIVE REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0
     partition by range("TIME", "KEY")
    (partition "p2024_01" values less than (TO_DATE(' 2024-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'),20240101),
    partition "p2024_02" values less than (TO_DATE(' 2024-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'),20240201));
  2. 在 SQL 開發視窗的 工單 頁簽中單擊 分區計劃 > 建立分區計劃

    image

  3. 建立分區計劃面板中,單擊image編輯分區策略。

    image

  4. 設定分區策略 面板中,勾選 分區策略 項下的 建立策略 刪除策略

    image

    1. 建立分區策略

      1. 設定將要建立的分區數量。

      2. 建立規則。

        如上圖所示,可以對order表中包含的TIMEKEY分區鍵設定分區策略。

        • TIME:該分區鍵類型為DATE,屬於時間類型,因此其可以使用 順序遞增 作為分區建立策略。樣本中,TIME分區鍵的建立策略是以目前時間(即分區計劃任務實際運行時的時間)為基準時間,間隔 1 個月產生若干分區。

        • KEY:該分區鍵類型為NUMBER,嘗試使用 自訂 作為分區建立策略。假定需要以當前系統時間為基準,間隔 1 個月產生若干分區。參照 自訂分區建立策略 一節中的表述,該運算式可以按照如下步驟產生:

          1. 擷取分區產生的基準時間:由於是以當前系統時間為基準,可以直接使用sysdate函數。

          2. 定義分區產生的間隔:由於樣本中是以 1 個月為間隔,因此在 建立規則 > 細則 > 間隔 中填入NUMTOYMINTERVAL(1, 'MONTH')作為固定間隔,且在步驟 1 運算式的基礎上增加 interval 運算式,產生下一個分區。即SYSDATE + ${INTERVAL},其中${INTERVAL}指代 建立規則 > 細則 > 間隔 中填入的值。

          3. 產生對應分區鍵類型的分區運算式:KEY的類型為NUMBER,但步驟 1 中產生的運算式的類型為時間類型,需要將其轉換為NUMBER類型。您可以先將其轉成數字樣式的字串,再轉換為NUMBER類型,即:TO_CHAR(SYSDATE + ${INTERVAL}, 'YYYYMM"01"')

            其中,

            • TO_CHAR:將欄位轉換成字元型。

            • SYSDATE:返回當前系統時間。

            • YYYYMM"01":日期格式。

      3. 選擇命名方式。

        如上圖所示,選擇的命名方式為 首碼+尾碼,該命名方式由一個固定的字串首碼和基於時間的可變尾碼構成。

        1. 固定首碼:該首碼可由使用者自由指定。

        2. 可變尾碼:可選擇時間類型的分區鍵對應的分區上界作為當前分區的命名尾碼,另外可選時間的格式化輸出格式以及時間的遞增間隔。

        3. 配置完成後,單擊 測試產生 按鈕可以查看設定的分區名。

      4. 將表中最後一個分區的統計資訊複製到新分區:否。

    2. 刪除分區策略

      • 分區保留數量:保留最近的 N 個分區,即刪除最近 N 個分區外的其他分區。

      • 設定分區資料保留時間:刪除分區時,需確保該分區的上界小於設定的保留時間點;否則不予刪除。

      • 刪除後是否重建索引:用於控制刪除分區後是否自動重建索引,以保證索引的完整性和查詢效能。

    3. 單擊 分區策略 面板右下角的 預覽 SQL 查看根據所設定的分區策略產生的 SQL 陳述式。

      image

    4. 單擊 確定,完成設定分區策略。

  5. 單擊 提交,建立分區計劃。

相關文檔