このトピックでは、OceanBase Developer Center (ODC) でパーティションの作成と削除を含むパーティションの自動管理のためのパーティショニングプランを適用する方法について説明します。
背景
パーティショニング計画機能は、RANGE パーティショニングの拡張機能です。ODC は、指定されたパーティショニング戦略に基づいて RANGE パーティションテーブルを自動的に管理できるため、手動でパーティションを作成する必要はありません。これにより、RANGE パーティションテーブルのメンテナンスが容易になります。
RANGE パーティショニング: これは最も一般的なパーティショニングタイプで、通常は日付と組み合わせて使用されます。RANGE パーティショニングでは、データベースはパーティショニングキーの値の範囲に基づいて行をパーティションにマップします。詳細については、「パーティショニングルールの設定」および「パーティショニングタイプ」をご参照ください。
パーティショニング計画: パーティショニング計画機能は、RANGE パーティショニングの拡張機能です。ODC は、指定されたパーティショニング戦略に基づいて RANGE パーティションテーブルを自動的に管理できるため、手動でパーティションを作成する必要はありません。これにより、RANGE パーティションテーブルのメンテナンスが容易になります。
作成戦略: ODC は、指定されたパーティショニングルールに基づく自動テーブルパーティショニングをサポートしています。2 つのパーティション作成メソッドがサポートされています。
シーケンシャルインクリメント: このメソッドは、時間、数値、または文字タイプのフィールドにのみ適用されます。

カスタム: 任意のフィールドタイプに対して、パーティショニング用のカスタム SQL 式を定義できます。

削除戦略: 許可されるパーティションの指定数に基づいて、最新のパーティションが保持され、冗長なパーティションが削除されます。
パーティショニング計画の実行プロセス

テーブルのパーティション作成戦略とパーティション削除戦略を設定します。
戦略の実行サイクルを設定します。
タスクプロセスを承認します。
パーティショニング計画を実行します。
注意事項
OceanBase MySQL 互換および OceanBase Oracle 互換のデータソースのみがサポートされています。
RANGE パーティションテーブルのみがサポートされています。
RANGE パーティションテーブルの最後のパーティションの上限が MAXVALUE で指定された値に達すると、パーティションを作成できません。この場合、[パーティショニング計画の作成] パネルでパーティショニング戦略を設定することはできません。
デフォルトでは、パーティショニング計画は正時に実行されます。
データベースに既にパーティショニング計画がある場合、新しいパーティショニング計画が承認されると、既存の計画は上書きされます。
テーブルグループ内のテーブルのパーティションを作成すると、失敗したり、負荷分散ステータスが損なわれたりする可能性があります。このようなテーブルにパーティション作成戦略を設定する場合は、注意して進めてください。
同じテーブルグループ内のテーブルは同じ数のパーティションを持つ必要があるため、テーブルグループ内のテーブルのパーティションを作成すると、テーブルグループが無効になる可能性があります。
グローバルインデックスを含むテーブルからパーティションを削除すると、グローバルインデックスが無効になります。注意して進めてください。グローバルインデックスの再構築を選択すると、時間のかかるプロセスや再構築の失敗によるオンラインの問題が原因で、ビジネス上の問題が発生する可能性があります。
グローバルインデックスの再構築オプションは、Oracle 互換モードでのみ提供されます。MySQL 互換モードでは、グローバルインデックスはデフォルトで再構築されます。
パーティショニング計画の作成
例: mysql4253 データソースの test_data データベースの order テーブルに対して、1 か月の時間間隔でパーティションを作成します。
パラメーター | 値の例 |
プロジェクト名 | odc_test |
データソース | mysql4253 |
データベース名 | test_data |
テーブル名 | order |
SQL ウィンドウで、order という名前のテーブルを作成する SQL 文を記述します。

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))SQL ウィンドウの [チケット] タブで、[パーティショニング計画] > [新規作成] を選択します。

[パーティショニング計画の作成] パネルで、次のパラメーターを設定します。

パラメーター
説明
データベース
パーティショニング計画を作成するデータベースを選択します。
パーティショニング戦略
指定したデータベースで対象の RANGE パーティションテーブルを選択し、
をクリックしてパーティショニング戦略を設定します。詳細については、「パーティショニング戦略の設定」および「例」をご参照ください。説明[パーティション戦略] の横にある [未構成のテーブルのみ表示] を選択すると、パーティショニング戦略が設定されていないテーブルのみを表示できます。
複数の RANGE パーティションテーブルを選択し、一度にパーティショニング戦略を設定することもできます。
戦略実行サイクル
作成戦略の実行期間: すべてのパーティション作成戦略の実行サイクルを設定します (例: 毎日午前 2:00)。
削除戦略の実行期間をカスタマイズ: このオプションを選択し、すべてのパーティション削除戦略の実行サイクルを設定します。このオプションを選択しない場合、パーティション削除戦略はパーティション作成戦略と一緒にスケジュールされます。
例: パーティション作成戦略の実行サイクルを毎日午前 3:00 に設定し、パーティション削除戦略の実行サイクルを毎日午前 1:00 に設定します。システムは、毎日午前 3:00 にすべてのパーティション作成戦略を実行し、毎日午前 1:00 にすべてのパーティション削除戦略を実行します。

タスク設定
タスクエラーの処理メソッドを選択します。有効な値:
タスクを停止: これはデフォルトのオプションです。このオプションを選択すると、スクリプトの実行中にエラーが発生した場合、タスクは中止されます。
エラーを無視して続行: このオプションを選択すると、システムはエラーが発生した文をスキップし、スクリプト内の他の文の実行を続行します。
実行タイムアウト値
デフォルト値は 2 時間です。
備考
変更目的や期待される目標など、プロジェクトのビジネス背景。
上記情報を指定した後、パネルの右下隅にある [送信] をクリックします。
タスクが生成されると、[タスクセンター] パネルにリダイレクトされます。ここでタスクの承認ステータスとタスク情報を表示できます。

パーティショニング計画タスクの表示
タスク情報
[チケット] タブのパーティショニング計画タスクリストで、パーティショニング計画タスクの [アクション] 列にある [表示] をクリックします。

[チケット詳細] パネルで、[基本情報] タブをクリックし、タスクの基本情報とタスク設定を表示します。
パラメーター
説明
タスクの基本情報
タスクのステータス、ID、タイプ、データソース、リスクレベル、備考、作成者、作成時間が表示されます。
タスク設定
パーティショニング計画タスクの作成時に選択した RANGE パーティションテーブルのパーティショニング戦略を表示できます。
パネルの右下隅にある [再度開始] をクリックして、タスクを再度開始できます。
タスクプロセス
[チケット詳細] パネルで、[ワークフロー] タブをクリックし、タスクの開始ステータス、承認ステータス、実行ステータス、実行結果を表示します。
パネルの右下隅にある [再度開始] をクリックして、タスクを再度開始できます。
関連レコード
[チケット詳細] パネルで、[関連レコード] タブをクリックし、タスクの ID、データベース、作成時間、ステータスを表示します。レコードの [アクション] 列にある [表示] をクリックすることもできます。
パネルの右下隅にある [再度開始] をクリックして、タスクを再度開始できます。
タスクログ
[チケット詳細] パネルで、[ログ] タブをクリックして、タスクのすべてのログとアラートログを表示します。

タブ
説明
すべてのログ
[INFO]、[ERROR]、[WARN] ログを含む、すべてのタスクログの完全な情報が表示されます。[検索]、[ダウンロード]、または [コピー] をクリックして、すべてのログを検索、ダウンロード、またはコピーできます。
アラートログ
アラートログには、タスクの [ERROR] および [WARN] ログが含まれます。タスクが失敗した場合、アラートログでエラーメッセージを表示できます。[検索]、[ダウンロード]、または [コピー] をクリックして、アラートログを検索、ダウンロード、またはコピーできます。
[再度開始] をクリックして、タスクを再度開始できます。
パーティショニング計画タスクのインポート
ApsaraDB for OceanBase から OceanBase Cloud にインスタンスとそのパーティショニング計画タスクを移行できます。
ステップ 1: ApsaraDB for OceanBase からパーティショニング計画タスクをエクスポートする
ApsaraDB for OceanBase コンソールにログオンします。左側のナビゲーションウィンドウで [データ開発] をクリックします。
[チケット] > [パーティショニング計画] を選択します。パーティショニング計画ページで、対象のチケットを選択し、[一括エクスポート] をクリックします。

スケジュールされたタスクのエクスポートページで、対象のタスクを選択し、[すべてエクスポート] をクリックします。

エクスポート後、ポップアップウィンドウのキーをコピーして適切に保管してください。このキーは、後でパーティショニング計画をインポートする際に必要になります。

ステップ 2: OceanBase Cloud にパーティショニング計画タスクをインポートする
ApsaraDB for OceanBase コンソールの左側のナビゲーションウィンドウで、[統合] をクリックし、[SQL 開発] > [OceanBase 開発者センター (ODC)] を選択します。

ODC で、[チケット] > [パーティショニング計画] を選択します。パーティショニング計画ページで、対象のチケットを選択し、[パーティショニング計画のインポート] をクリックします。

パーティショニング計画のインポートページで、ステップ 1 でエクスポートした .zip ファイルを追加し、[ファイルキー] にファイルキーを入力し、対象のプロジェクトを選択して、[次へ: プレビュー] をクリックします。

プレビューページで、新しい対象データベースを選択し、[インポートチケット内の新旧データベース間でデータベースオブジェクトの一貫性を確認しました] を選択して、[インポート] をクリックします。

インポート後、パーティショニング計画リストでインポートされたパーティショニング計画を表示できます。
