このトピックでは、パーティション作成戦略とパーティション削除戦略の設定例を紹介します。
OceanBase MySQL データソースのテーブルパーティション戦略を設定する
例: mysql424
データソースの test_424
データベースにある order
テーブルのパーティション作成戦略とパーティション削除戦略を設定します。
パラメータ | 値の例 |
プロジェクト名 | odc_4.2.0 |
データソース | mysql4.2.4 |
データベース名 | test_424 |
テーブル名 | 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 ウィンドウの チケットパーティション分割計画新規作成 タブで、 > を選択します。
[パーティション作成計画] パネルで、
をクリックしてパーティション分割戦略を設定します。
パーティション分割戦略を構成する作成戦略削除戦略パーティション分割戦略 パネルで、 の下の と を選択します。
作成するパーティションの数を設定します。
パーティション作成ルールを構成します。
前の図に示すように、
order
テーブルのtime
パーティションキーとparti_key
パーティションキーのパーティション作成戦略を設定できます。time
: このパーティションキーのデータ型は、時間型であるdate
です。そのため、作成方法として [順次増加] を選択できます。この例では、time
パーティションキーのパーティション作成戦略に従って、現在の時間(パーティションプランタスクが実行される時間)が基準時間として使用され、1 か月の時間間隔でパーティションが作成されます。parti_key
: このパーティションキーのデータ型はint
で、時間型ではありません。そのため、作成方法としてカスタムのみを選択できます。現在の時間を基準時間として使用し、1 か月の時間間隔でパーティションを作成する必要があるとします。カスタムパーティション作成ストラテジー セクションの説明に従って、次の手順を実行してパーティション式を生成できます。パーティション作成の基準時間を入手する: 現在の時間が基準時間として使用されます。したがって、
now()
関数を直接使用できます。パーティション作成の時間間隔を定義する: この例では、時間間隔は 1 か月です。したがって、
1
間隔ルール作成ルールnow () + interval ${INTERVAL} か月
${INTERVAL}
間隔ルール作成ルール セクションの 列の フィールドに を入力し、手順 1 で生成された式に基づいて間隔式を追加して、次のパーティションを生成する必要があります。具体的には、式は です。ここで、 は セクションの 列の フィールドの値です。パーティションキーと同じデータ型のパーティション式を生成する:
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()
: 現在の日付を返します。INTERVAL ${INTERVAL} MONTH
: 月単位で間隔を指定する式。${INTERVAL}
は、ODC の時間間隔関数の特定の構文です。'%Y%m01'
: 日付形式。
パーティション命名形式を選択します。
前の図に示すように、プレフィックス + サフィックス命名規則 で を選択します。これは、固定文字列プレフィックスと時間ベースの可変サフィックスで構成されます。
固定プレフィックス: 必要に応じてプレフィックスを定義できます。
可変サフィックス: 時間型のパーティションキーに対応するパーティションの上限を、現在のパーティションの名前のサフィックスとして選択できます。時間のフォーマット済み出力形式と時間の増分間隔も選択できます。
構成後、テスト生成 をクリックしてパーティション名を表示します。
パーティションの削除 セクションで、保持するパーティションの数を設定し、削除後にインデックスを再構築するかどうかを選択します。
SQL のプレビューパーティション分割戦略を構成する パネルの右下隅にある をクリックして、構成されたパーティション戦略によって生成された SQL 文を表示します。
[OK] をクリックします。
OceanBase Oracle データソースのテーブルパーティション戦略を設定するOceanBase Oracle データソースのテーブルパーティショニング戦略を設定する
例: oboracle_430
データソースの OBORACLE
データベースにある order
テーブルのパーティション作成戦略とパーティション削除戦略を設定します。
パラメータ | 値の例 |
プロジェクト名 | odc_4.2.0 |
データソース | oboracle_430 |
データベース名 | OBORACLE |
テーブル名 | order |
SQL ウィンドウで、
order
という名前のテーブルを作成する SQL 文を記述します。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));
SQL ウィンドウの チケットパーティション分割計画新規作成 タブで、 > を選択します。
[パーティション作成計画] パネルで、
をクリックしてパーティション分割戦略を設定します。
パーティション分割戦略を構成する作成戦略削除戦略パーティション分割戦略 パネルで、 の下の と を選択します。
作成するパーティションの数を設定します。
パーティション作成ルールを構成します。
前の図に示すように、
order
テーブルのTIME
パーティションキーとKEY
パーティションキーのパーティション作成戦略を設定できます。TIME
: このパーティションキーのデータ型は、時間型であるDATE
です。そのため、作成方法として [順次増加] を選択できます。この例では、TIME
パーティションキーのパーティション作成戦略に従って、現在の時間(パーティションプランタスクが実行される時間)が基準時間として使用され、1 か月の時間間隔でパーティションが作成されます。KEY
: このパーティションキーのデータ型はNUMBER
であり、時間型ではありません。そのため、作成方法として カスタム のみを選択できます。現在のシステム時刻を基準時間として使用し、1 か月の時間間隔でパーティションを作成する必要があるとします。カスタムパーティション作成ストラテジ セクションの説明に従って、次の手順を実行してパーティション式を生成できます。パーティション作成の基準時間を入手する: 現在の時間が基準時間として使用されます。したがって、
SYSDATE
関数を直接使用できます。パーティション作成の時間間隔を定義する: この例では、時間間隔は 1 か月です。したがって、
1
間隔ルール作成ルールSYSDATE + ${INTERVAL}
${INTERVAL}
間隔ルール作成ルール セクションの 列の フィールドに を入力し、手順 1 で生成された式に基づいて間隔式を追加して、次のパーティションを生成する必要があります。具体的には、式は です。ここで、 は セクションの 列の フィールドの値です。パーティションキーと同じデータ型のパーティション式を生成する:
KEY
パーティションキーのデータ型はNUMBER
ですが、手順 1 と手順 2 の完了後に生成される式は時間型です。したがって、式をNUMBER
型に変換する必要があります。最初に式を数値文字列に変換し、次にNUMBER
型に変換できます。つまり、TO_CHAR(SYSDATE + ${INTERVAL}, 'YYYYMM"01"')
です。TO_CHAR
: フィールド値を文字型に変換します。SYSDATE
: 現在のシステム時間を返します。YYYYMM"01"
: 日付形式。
パーティション命名形式を選択します。
前の図に示すように、プレフィックス + サフィックス命名規則 で を選択します。これは、固定文字列プレフィックスと時間ベースの可変サフィックスで構成されます。
固定プレフィックス: 必要に応じてプレフィックスを定義できます。
可変サフィックス: 時間型のパーティションキーに対応するパーティションの上限を、現在のパーティションの名前のサフィックスとして選択できます。時間のフォーマット済み出力形式と時間の増分間隔も選択できます。
構成後、テスト生成 をクリックしてパーティション名を表示します。
パーティションの削除 セクションで、保持するパーティションの数を設定し、削除後にインデックスを再構築するかどうかを選択します。
SQL のプレビューパーティション分割戦略を構成する パネルの右下隅にある をクリックして、構成されたパーティション戦略によって生成された SQL 文を表示します。
[OK] をクリックします。