すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for OceanBase:例

最終更新日:Oct 31, 2025

OceanBase MySQL 互換データソースのテーブルパーティショニング戦略を設定する

例: mysql424 データソースの test_424 データベースにある order テーブルのパーティション作成戦略とパーティション削除戦略を設定します。

パラメーター

値の例

プロジェクト名

odc_4.2.0

データソース

mysql424

データベース名

test_424

テーブル名

order

  1. SQL ウィンドウで、order という名前のテーブルを作成する SQL 文を記述します。

    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

  5. 作成するパーティションの数を設定します。

  6. パーティション作成ルールを構成します。

    前の図に示すように、order テーブルの time および parti_key パーティショニングキーのパーティション作成戦略を設定できます。

    • time: このパーティショニングキーのデータの型は DATE で、時間型です。したがって、作成メソッドとして [シーケンシャル増分] を選択できます。この例では、time パーティショニングキーのパーティション作成戦略に従って、現在の時間 (パーティショニング計画タスクが実行される時間) が参照時間として使用され、パーティションは 1 か月の時間間隔で作成されます。

    • parti_key: このパーティショニングキーのデータの型は INT で、時間型ではありません。したがって、作成メソッドとして [カスタム] のみを選択できます。現在の時間を参照時間として使用し、1 か月の時間間隔でパーティションを作成する必要があるとします。「カスタムパーティション作成戦略」セクションの説明に従って、次のステップを実行してパーティショニング式を生成できます。

      1. パーティション作成の参照時間を取得する: 現在の時間が参照時間として使用されます。したがって、now() 関数を直接使用できます。

      2. パーティション作成の時間間隔を定義する: この例では、時間間隔は 1 か月です。したがって、[作成ルール] セクションの [ルール] 列の [間隔] フィールドに 1 を入力し、ステップ 1 で生成された式に基づいて間隔式を追加して、次のパーティションを生成する必要があります。具体的には、式は now () + interval ${INTERVAL} month です。ここで、${INTERVAL}[作成ルール] セクションの [ルール] 列の [間隔] フィールドの値です。

      3. パーティショニングキーと同じデータの型のパーティショニング式を生成する: parti_key パーティショニングキーのデータの型は int ですが、ステップ 1 とステップ 2 が完了した後に生成される式は時間型です。したがって、式を 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': 日付フォーマット。

  7. パーティションの命名フォーマットを選択します。

    前の図に示すように、命名規則として [プレフィックス + サフィックス] を選択します。これは、固定文字列プレフィックスと時間ベースの可変サフィックスで構成されます。

    1. 固定プレフィックス: 必要に応じてプレフィックスを定義できます。

    2. 可変サフィックス: 時間型のパーティショニングキーに対応するパーティションの上限を、現在のパーティションの名前のサフィックスとして選択できます。また、時間のフォーマット済み出力フォーマットと時間の増分間隔を選択することもできます。

    3. 構成後、[テスト生成] をクリックしてパーティション名を表示します。

  8. [パーティションの削除] セクションで、保持するパーティションの数を設定し、削除後にインデックスを再構築するかどうかを選択します。

  9. [パーティショニング戦略の構成] パネルの右下隅にある [SQL のプレビュー] をクリックして、構成されたパーティショニング戦略によって生成された SQL 文を表示します。

    image

  10. [OK] をクリックします。

OceanBase Oracle 互換データソースのテーブルパーティショニング戦略を設定する

例: oboracle_430 データソースの OBORACLE データベースにある order テーブルのパーティション作成戦略とパーティション削除戦略を設定します。

  1. SQL ウィンドウで、order という名前のテーブルを作成する SQL 文を記述します。

    image

    CREATE TABLE "OBORACLE"."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

  5. 作成するパーティションの数を設定します。

  6. パーティション作成ルールを構成します。

    前の図に示すように、order テーブルの TIME および KEY パーティショニングキーのパーティション作成戦略を設定できます。

    • TIME: このパーティショニングキーのデータの型は DATE で、時間型です。したがって、作成メソッドとして [シーケンシャル増分] を選択できます。この例では、TIME パーティショニングキーのパーティション作成戦略に従って、現在の時間 (パーティショニング計画タスクが実行される時間) が参照時間として使用され、パーティションは 1 か月の時間間隔で作成されます。

    • KEY: このパーティショニングキーのデータの型は NUMBER で、時間型ではありません。したがって、作成メソッドとして [カスタム] のみを選択できます。現在のシステム時間を参照時間として使用し、1 か月の時間間隔でパーティションを作成する必要があるとします。「カスタムパーティション作成戦略」セクションの説明に従って、次のステップを実行してパーティショニング式を生成できます。

      1. パーティション作成の参照時間を取得する: 現在の時間が参照時間として使用されます。したがって、SYSDATE 関数を直接使用できます。

      2. パーティション作成の時間間隔を定義する: この例では、時間間隔は 1 か月です。したがって、[作成ルール] セクションの [ルール] 列の [間隔] フィールドに NUMTOYMINTERVAL(1, 'MONTH') を入力し、ステップ 1 で生成された式に基づいて間隔式を追加して、次のパーティションを生成する必要があります。具体的には、式は SYSDATE + ${INTERVAL} です。ここで、${INTERVAL}[作成ルール] セクションの [ルール] 列の [間隔] フィールドの値です。

      3. パーティショニングキーと同じデータの型のパーティショニング式を生成する: KEY パーティショニングキーのデータの型は NUMBER ですが、ステップ 1 とステップ 2 が完了した後に生成される式は時間型です。したがって、式を NUMBER 型に変換する必要があります。式を数値文字列に変換してから NUMBER 型に変換できます。つまり、TO_CHAR(SYSDATE + ${INTERVAL}, 'YYYYMM"01"') です。

        • TO_CHAR: フィールド値を文字型に変換します。

        • SYSDATE: 現在のシステム時間を返します。

        • YYYYMM"01": 日付フォーマット。

  7. パーティションの命名フォーマットを選択します。

    前の図に示すように、命名規則として [プレフィックス + サフィックス] を選択します。これは、固定文字列プレフィックスと時間ベースの可変サフィックスで構成されます。

    1. 固定プレフィックス: 必要に応じてプレフィックスを定義できます。

    2. 可変サフィックス: 時間型のパーティショニングキーに対応するパーティションの上限を、現在のパーティションの名前のサフィックスとして選択できます。また、時間のフォーマット済み出力フォーマットと時間の増分間隔を選択することもできます。

    3. 構成後、[テスト生成] をクリックしてパーティション名を表示します。

  8. [パーティションの削除] セクションで、保持するパーティションの数を設定し、削除後にインデックスを再構築するかどうかを選択します。

  9. [パーティショニング戦略の構成] パネルの右下隅にある [SQL のプレビュー] をクリックして、構成されたパーティショニング戦略によって生成された SQL 文を表示します。

    image

  10. [OK] をクリックします。

リファレンス