OceanBase logo

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

プロダクト概要
デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

ドキュメント

会社概要

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

日本 - 日本語
International - English
中国站 - 简体中文
クラウドで始める

OceanBase

トランザクション処理、分析、AIワークロードに最適な分散データベース

プロダクト概要
デプロイを自由に

OceanBase Cloud

OceanBaseの導入とスケーリングを最適化

エンタープライズ版

自社インフラ上での運用・管理に対応

オープンソース版を試す

コミュニティ版

開発者向けオープンソース分散データベース

OceanBase seekdb

AIネイティブなオープンソースの検索データベース

顧客事例

さまざまな業界の企業による導入事例を紹介します。

さらに見る
利用シーン別

あらゆるシナリオに対応するOLTP

ハイブリッドクラウドソリューション

大容量ストレージデータベースのコスト削減

リアルタイム分析混合ワークロード

複数インスタンスの統合

OceanBaseの企業情報、パートナーシップ、そして信頼性・セキュリティへの取り組みについて紹介します。

OceanBaseについて

トラストセンター

法的情報

お問い合わせ

クラウドで始める
编组
すべての製品
    • データベース
    • アイコンOceanBaseデータベース
    • アイコンOceanBase Cloud
アイコン

OceanBase Cloud

すべてのバージョン

    OceanBase ロゴ

    AI時代を支える分散データベース

    日本 - 日本語
    International - English
    中国站 - 简体中文
    プロダクト
    OceanBase Cloudエンタープライズ版コミュニティ版OceanBase seekdb
    会社概要
    OceanBaseについてトラストセンター法的情報お問い合わせ
    公式アカウント
    ConnpassXQiitaLumaGitHub

    © OceanBase 2026. All rights reserved

    クラウドサービス契約個人情報保護ポリシーセキュリティ
    お問い合わせ
    ドキュメントフィードバック
    1. ホーム
    2. OceanBase Cloud
    3. master
    アイコンOceanBase Cloud
    master
    データベース
    • OceanBaseデータベース
    • OceanBase Cloud
    • master

    パーティション戦略の使用例

    最終更新日:2026-06-03 10:03:39  更新
    シェア
    このページの内容
    OceanBaseのMySQLタイプテーブルのパーティション戦略の設定
    OceanBase Oracle型テーブルのパーティション戦略の設定
    関連ドキュメント

    折りたたみ

    シェア

    このドキュメントでは、パーティション作成戦略とパーティション削除戦略の設定方法について説明します。

    OceanBaseのMySQLタイプテーブルのパーティション戦略の設定

    このセクションでは、OceanBaseのMySQLタイプテーブルのパーティション戦略を設定する例を用いて、データソースmysql424のデータベースtest_424内のorderテーブルに対して、パーティション作成戦略と削除戦略を設定する方法を説明します。

    1. SQLウィンドウで、SQLステートメントを編集してテーブルorderを作成します。

      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開発ウィンドウの**チケットタブで、ゾーニング計画** > **パーティションプランの新規作成**をクリックします。

    3. **パーティションプランの新規作成**パネルで、editをクリックしてパーティション戦略を編集します。

    4. **パーティション戦略パネルで、ポリシーの作成**のチェックボックスをオンにしてパーティション戦略を作成します。

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

    6. ルールを作成します。

      上図のように、orderテーブルのtimeおよびparti_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':日付形式。

    7. 名前付け方法を選択します。

      上図のように、選択した名前付け方法は**プレフィックス + サフィックス**です。この名前付け方法は、固定文字列のプレフィックスと時間に基づく可変のサフィックスで構成されます。

      1. 固定プレフィックス:このプレフィックスはユーザーが自由に指定できます。

      2. 可変サフィックス:時間型のパーティションキーに対応するパーティションの上限値を現在のパーティションの命名サフィックスとして選択できます。さらに、時間のフォーマット出力形式や時間の増分間隔も選択可能です。

      3. 設定完了後、**テスト生成**ボタンをクリックすると、設定したパーティション名を確認できます。

    8. パーティションの削除項目で、時間間隔に応じて事前に作成するパーティション数を設定し、削除後にインデックスを再作成するかどうかを選択します。

    9. **パーティション戦略パネルの右下にあるSQLプレビュー**をクリックすると、設定したパーティション戦略に基づいて生成されたSQLステートメントを確認できます。

    10. **確認**をクリックして、パーティション戦略の設定を完了します。

    OceanBase Oracle型テーブルのパーティション戦略の設定

    このセクションでは、OceanBase Oracle型テーブルのパーティション戦略を設定する例を用いて、データソースoboracle4.3.xのデータベースOBORACLEにおいて、order テーブルに対して作成パーティション戦略と削除パーティション戦略を設定する方法を説明します。

    1. SQLウィンドウで、SQLステートメントを編集し、table orderを作成します。

      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開発ウィンドウの チケット タブで、ゾーニング計画 > パーティションプランの新規作成 をクリックします。

    3. パーティションプランの新規作成 パネルで、editをクリックしてパーティション戦略を編集します。

    4. パーティション戦略 パネルで、パーティション戦略 項目の下の ポリシーの作成 を選択して、パーティション戦略を作成します。

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

    6. ルールを作成します。

      上図のように、order テーブルに含まれる TIME と KEY のパーティションキーに対してパーティション戦略を設定できます。

      • 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":日付フォーマットです。

    7. 名前付け方法を選択します。

      上図のように、選択した名前付け方法は プレフィックス + サフィックス です。この名前付け方法は、固定文字列のプレフィックスと時間に基づく可変のサフィックスで構成されます。

      1. 固定プレフィックス:このプレフィックスはユーザーが自由に指定できます。

      2. 可変サフィックス:時間型のパーティションキーに対応するパーティションの上限値を、現在のパーティションの名前付けサフィックスとして選択できます。さらに、時間のフォーマット出力形式や時間の増分間隔も選択可能です。

      3. 設定完了後、テスト生成 ボタンをクリックすると、設定したパーティション名を確認できます。

    8. パーティションの削除 項目で、時間間隔に基づいて事前に作成するパーティションの数を設定し、削除後にインデックスを再作成するかどうかを選択します。

    9. パーティション戦略 パネルの右下にある SQLプレビュー をクリックすると、設定したパーティション戦略に基づいて生成されたSQLステートメントを確認できます。

    10. 確認 をクリックして、パーティション戦略の設定を完了します。

    関連ドキュメント

    • パーティション計画の管理

    • パーティション戦略の設定

    前のトピック

    パーティションポリシーの設定
    最後

    次のトピック

    SQLスケジュールタスク
    次
    このページの内容
    OceanBaseのMySQLタイプテーブルのパーティション戦略の設定
    OceanBase Oracle型テーブルのパーティション戦略の設定
    関連ドキュメント