Hologres の自動パーティショニング機能は、パーティションテーブルに定義したルールに基づいてパーティションの作成と管理を自動化し、事前設定を不要にします。また、この機能はクエリパフォーマンスに影響を与えることなく、対象となるデータをコールドストレージに移動し、ストレージコストを削減します。
概要
自動パーティショニング機能は、複数の Hologres バージョンを経て進化してきました。
-
Hologres V1.3: 自動パーティショニングを導入しました。この機能は、ユーザー定義のルールに基づいて、スケジュールされたタスクを定期的に実行し、パーティションを事前作成および削除します。
-
Hologres V1.3.37: 階層型ストレージのサポートを追加しました。この機能は、データを自動的にコールドストレージにアーカイブすることで、ストレージコストを削減します。詳細については、「階層型ストレージ」をご参照ください。
-
Hologres V2.1.11 以降、自動パーティショニングは Date 型をパーティションキーとしてサポートします。
-
Hologres V2.2: 自動パーティショニング設定に
schd_start_timeプロパティを追加しました。このプロパティを使用すると、パーティションの作成、削除、アーカイブのスケジュールをカスタマイズできます。 -
Hologres V3.0.12:
auto_partitioning_time_formatパラメーターを追加しました。このパラメーターを使用すると、パーティションキーの日付と時刻のフォーマットを指定して、YYYY-MM-DD フォーマットでパーティションを作成できます。
注意事項
Hologres では、親テーブルではなく子テーブルにデータをインポートできます。
説明Realtime Compute for Apache Flink では、Hologres の親テーブルにリアルタイムでデータをインポートできます。詳細については、「Hologres のパーティション結果テーブルにリアルタイムでデータを書き込む」をご参照ください。
各パーティション化ルールは、1 つのパーティションテーブルの作成にのみ使用できます。
PARTITION BY句は、リストパーティションのみをサポートしています。パーティションキーは単一列である必要があります。パーティションテーブルにプライマリキーがある場合、パーティションキーはプライマリキーのサブセットである必要があります。
-
動的パーティショニングの場合、スケジュール時刻 (
schd_start_time) は親テーブルにのみ適用され、その子テーブルには適用されません。 -
auto_partitioning_time_formatパラメーターは不変です。新しいテーブルの CREATE TABLE 文では指定できますが、既存のテーブルでは変更できません。 -
子テーブルの名前は、
auto_partitioning_time_formatパラメーターで指定された日付フォーマットに従います。子テーブルをクエリする場合、その名前を二重引用符で囲む必要があります。例:SELECT xxx FROM "tbl_2024_11_22"。
自動パーティショニングの設定
構文
パーティションテーブルの作成時、または既存のパーティションテーブルについて、自動パーティショニングのプロパティを設定できます。
WITH 句の使用
-
パーティションテーブルを作成する際に、自動パーティショニングのプロパティを設定します。
-- パーティションテーブルを作成する際に、自動パーティショニングのプロパティを設定します。 CREATE TABLE [IF NOT EXISTS] [<schema_name>.]<table_name> ([ { <column_name> <column_type> [ <column_constraints>, [...]] | <table_constraints> [, ...] } ]) PARTITION BY LIST(<column_name>) WITH ( auto_partitioning_enable = 'xxx', auto_partitioning_time_unit = 'xxx', auto_partitioning_time_zone = 'xxx', auto_partitioning_num_precreate = 'xxx', auto_partitioning_num_retention = 'xxx', auto_partitioning_num_hot='xxx', -- 注:auto_partitioning_schd_start_time プロパティは Hologres V2.2 以降でサポートされています。 auto_partitioning_schd_start_time = 'xxx', -- 注:auto_partitioning_time_format プロパティは Hologres V3.0.12 以降でサポートされています。 auto_partitioning_time_format = 'xxx' ); -
既存のパーティションテーブルの自動パーティショニングプロパティを変更します。
-- 自動パーティショニングのプロパティを変更します。 ALTER TABLE [<schema_name>.]<table_name> SET ( auto_partitioning_enable = 'xxx', auto_partitioning_num_precreate = 'xxx', auto_partitioning_num_retention = 'xxx', auto_partitioning_num_hot='xxx', -- 注:auto_partitioning_schd_start_time プロパティは Hologres V2.2 以降でサポートされています。 auto_partitioning_schd_start_time = 'xxx' );
CALL コマンドの使用
-
パーティションテーブルを作成する際に、自動パーティショニングのプロパティを設定します。
-- パーティションテーブルを作成する際に、自動パーティショニングのプロパティを設定します。 BEGIN; CREATE TABLE [IF NOT EXISTS] [<schema_name>.]<table_name> ([ { <column_name> <column_type> [ <column_constraints>, [...]] | <table_constraints> [, ...] } ]) PARTITION BY LIST(<column_name>); CALL set_table_property('[<schema_name>.]<table_name>', 'auto_partitioning.enable', 'xxx'); CALL set_table_property('[<schema_name>.]<table_name>', 'auto_partitioning.time_unit', 'xxx'); CALL set_table_property('[<schema_name>.]<table_name>', 'auto_partitioning.time_zone', 'xxx'); CALL set_table_property('[<schema_name>.]<table_name>', 'auto_partitioning.num_precreate', 'xxx'); CALL set_table_property('[<schema_name>.]<table_name>', 'auto_partitioning.num_retention', 'xxx'); CALL set_table_property('[<schema_name>.]<table_name>', 'auto_partitioning.num_hot', 'xxx'); -- 注:auto_partitioning.schd_start_time プロパティは Hologres V2.2 以降でサポートされています。 CALL set_table_property ('[<schema_name>.]<table_name>', 'auto_partitioning.schd_start_time', 'xxx'); -- 注:auto_partitioning.time_format プロパティは Hologres V3.0.12 以降でサポートされています。 CALL set_table_property ('[<schema_name>.]<table_name>', 'auto_partitioning.time_format', 'xxx'); COMMIT; -
既存のパーティションテーブルの自動パーティショニングプロパティを変更します。
-- 自動パーティショニングのプロパティを変更します。 CALL set_table_property('[<schema_name>.]<table_name>', 'auto_partitioning.enable', 'xxx'); CALL set_table_property('[<schema_name>.]<table_name>', 'auto_partitioning.num_precreate', 'xxx'); CALL set_table_property('[<schema_name>.]<table_name>', 'auto_partitioning.num_retention', 'xxx'); CALL set_table_property('[<schema_name>.]<table_name>', 'auto_partitioning.num_hot', 'xxx'); -- 注:auto_partitioning.schd_start_time プロパティは Hologres V2.2 以降でサポートされています。 CALL set_table_property ('[<schema_name>.]<table_name>', 'auto_partitioning.schd_start_time', 'xxx');
パラメーター
CREATE TABLE WITH 構文で自動パーティショニングを設定する場合、プロパティ名のドット (.) をアンダースコア (_) に置き換える必要があります。たとえば、auto_partitioning.enable を auto_partitioning_enable に変更します。
|
パラメーター |
必須 |
説明 |
更新可能 |
バージョン要件 |
|
|
いいえ |
自動パーティショニングを有効にするかどうかを制御します。有効な値:
|
はい |
Hologres V1.3 以降 |
|
|
はい |
パーティショニングの時間単位を指定します。有効な値:
たとえば、このプロパティを |
いいえ |
|
|
|
いいえ |
パーティショニングのタイムゾーンを指定します。デフォルトでは、現在のセッションのタイムゾーンが使用されます。このプロパティを設定すると、Hologres は指定されたタイムゾーンに基づいてパーティションを管理します。 次の SQL ステートメントを実行すると、利用可能なタイムゾーンを表示できます。結果の
|
いいえ |
|
|
|
いいえ |
事前作成するパーティションの数を指定します。有効な値:
説明
たとえば、現在の日付が 2022-01-10 で、 重要
パーティションを事前作成すると、 |
はい |
|
|
|
いいえ |
保持する履歴パーティションの数を指定します。有効な値:
説明
たとえば、現在の日付が 2022-01-10 で、 |
はい |
|
|
|
いいえ |
保持するホットパーティションの数を指定します。ホットパーティションは、ホットストレージにあるパーティションです。有効な値:
|
はい |
Hologres V1.3.37 以降 |
|
|
いいえ |
パーティショニングタスクを実行するカスタム時刻を指定します。デフォルトでは、Hologres はこのタスクを、 このプロパティを使用して、スケジュール時刻を変更できます。サポートされているフォーマットについては、「時刻フォーマット」をご参照ください。現在より後の時刻を設定した場合、その時刻にスケジュールが有効になります。 |
はい |
Hologres V2.2 以降 |
|
|
いいえ |
パーティションキーの値の文字列フォーマットを指定します。
|
いいえ |
Hologres V3.0.12 以降 |
子テーブルの命名規則
auto_partitioning.time_unit プロパティを HOUR、DAY、MONTH、QUARTER、または YEAR に設定すると、Hologres は親テーブル名に時間サフィックスを追加して新しい子テーブルに名前を付けます。フォーマットは {parent_table}_{time_suffix} です。時間サフィックスは、自動パーティショニングのスケジュールと、指定された時間単位のフォーマットテンプレートに基づいて生成されます。次の表にマッピングを示します。
|
時間単位 |
時間サフィックスのフォーマット |
サフィックスの例 |
スケジュール時刻 |
|
HOUR |
YYYYMMDDHH24 |
|
各時間の開始時。 例:2024年11月22日 21:00:01。 |
|
YYYY-MM-DD-HH24 |
|
||
|
DAY |
YYYYMMDD |
|
毎日 00:00:01。 例:2024年11月22日 00:00:01。 |
|
YYYY-MM-DD |
|
||
|
MONTH |
YYYYMM |
|
毎月 1 日の 00:00:01。 例:2024年11月1日 00:00:01。 |
|
YYYY-MM |
|
||
|
QUARTER |
YYYYQ |
|
各四半期の初日の 00:00:01。 例:2024年1月1日 00:00:01。 |
|
YYYY-Q |
|
||
|
YEAR |
YYYY |
|
毎年 1 月 1 日の 00:00:01。 例:2023年1月1日 00:00:01。 |
例
次の例では、日単位でパーティション分割されたテーブルを作成します。このテーブルは、今後 3 日間のパーティションを事前作成し、過去 2 日間の履歴パーティションを保持し、Asia/Shanghai タイムゾーンを使用するように設定されています。
WITH 句の使用
-
パーティションテーブル
tbl1を作成します。-- パーティションテーブルを作成し、自動パーティショニングを設定します。 CREATE TABLE tbl1 ( c1 TEXT NOT NULL, c2 TEXT ) PARTITION BY LIST (c2) WITH ( auto_partitioning_enable = 'true', auto_partitioning_time_unit = 'DAY', auto_partitioning_time_zone = 'Asia/Shanghai', auto_partitioning_num_precreate = '3', auto_partitioning_num_retention = '2' ); -
データを挿入します。
INSERT INTO tbl1 (c1, c2) VALUES ('Data 1', '20231212'); INSERT INTO tbl1 (c1, c2) VALUES ('Data 2', '20231213'); INSERT INTO tbl1 (c1, c2) VALUES ('Data 3', '20231214'); -
データをクエリします。
SELECT * FROM tbl1 WHERE c2='20231212';次の結果が返されます:
c1 c2 Data 1 20231212
CALL コマンドの使用
-
パーティションテーブル
tbl1を作成します。-- パーティションテーブルを作成し、自動パーティショニングを設定します。 BEGIN; CREATE TABLE tbl1 ( c1 TEXT NOT NULL, c2 TEXT ) PARTITION BY LIST (c2); CALL set_table_property ('tbl1', 'auto_partitioning.enable', 'true'); CALL set_table_property ('tbl1', 'auto_partitioning.time_unit', 'DAY'); CALL set_table_property ('tbl1', 'auto_partitioning.time_zone', 'Asia/Shanghai'); CALL set_table_property ('tbl1', 'auto_partitioning.num_precreate', '3'); CALL set_table_property ('tbl1', 'auto_partitioning.num_retention', '2'); COMMIT; -
データを挿入します。
INSERT INTO tbl1 (c1, c2) VALUES ('Data 1', '20231212'); INSERT INTO tbl1 (c1, c2) VALUES ('Data 2', '20231213'); INSERT INTO tbl1 (c1, c2) VALUES ('Data 3', '20231214'); -
データをクエリします。
SELECT * FROM tbl1 WHERE c2='20231212';次の結果が返されます:
c1 c2 Data 1 20231212
次の表に、パーティションの作成と削除のロジックを示します。
|
時刻 |
イベント |
結果 |
|
2023-12-12 09:00:00 |
前述の SQL ステートメントを実行して、パーティションテーブルを作成します。 |
|
|
2023-12-13 00:00:00 |
システムが自動的に子テーブルを作成します。 |
|
|
2023-12-14 00:00:00 |
システムが自動的に子テーブルを作成します。 |
|
|
2023-12-15 00:00:00 |
システムが自動的に子テーブルを作成し、古い子テーブルを削除します。 |
|
|
2023-12-16 00:00:00 |
システムが自動的に子テーブルを作成し、古い子テーブルを削除します。 |
|
ユースケース
特定の子テーブルの保持
デフォルトでは、Hologres は設定された自動パーティショニングルールに基づいて子テーブルを自動的に作成・削除し、保持範囲外のテーブルを削除します。ただし、一部のシナリオでは、重要なデータを保持する必要がある場合があります。例えば、E コマースビジネスで、前年比分析のために年に一度のショッピングフェスティバルのデータを保持する場合などです。特定の子テーブルを保持するには、それらに keep_alive プロパティを設定します。構文は次のとおりです:
-
Hologres V2.1 以降の構文:
-- 子テーブルを保持します。 ALTER TABLE [<schema_name>.]<table_name> SET (keep_alive = 'true'); -- 子テーブルの保持を停止します。このプロパティを削除すると、自動パーティショニングは直ちに期限切れデータのクリーンアップをトリガーします。 ALTER TABLE [<schema_name>.]<table_name> SET (keep_alive = 'false'); -
すべてのバージョンの構文:
-- 子テーブルを保持します。 CALL set_table_property('[<schema_name>.]<table_name>', 'keep_alive', 'true'); -- 子テーブルの保持を停止します。このプロパティを削除すると、自動パーティショニングは直ちに期限切れデータのクリーンアップをトリガーします。 CALL set_table_property('[<schema_name>.]<table_name>', 'keep_alive', 'false');説明table_nameを子テーブルの名前に置き換えてください。
パーティションテーブルのストレージ階層の管理
パーティションテーブルを管理する際、ストレージ階層化はコストとパフォーマンスのバランスを取るのに役立ちます。例えば、頻繁なクエリのために最新の N 個の履歴パーティションをホットストレージに保持し、続く M 個の古いパーティションをコールドストレージに格納してコストを削減できます。自動パーティショニングと組み合わせることで、この機能により N+M の保持期間外のデータを自動的に削除するポリシーを定義できます。
自動パーティションテーブルの作成
次の例では、日単位でパーティション化されたテーブルを作成します。このポリシーは、直近 7 日間のパーティションをホットストレージに保持し、その前の 23 日間のパーティションをコールドストレージに保持します。30 日より古いパーティションは自動的に削除されます。
BEGIN;
CREATE TABLE tbl2(
c1 text not null,
c2 text
)
PARTITION BY LIST(c2);
CALL set_table_property('tbl2', 'auto_partitioning.enable', 'true');
CALL set_table_property('tbl2', 'auto_partitioning.time_unit', 'DAY');
CALL set_table_property('tbl2', 'auto_partitioning.num_precreate', '3');
CALL set_table_property('tbl2', 'auto_partitioning.num_hot', '7');
CALL set_table_property('tbl2', 'auto_partitioning.num_retention', '30');
COMMIT;
結果は次の図のとおりです。

ストレージ階層化ポリシーの変更
auto_partitioning.num_hot パラメーターの値を変更することで、ホットストレージパーティションポリシーを変更できます。ただし、このポリシーを変更しても、Hologres はすでにコールドストレージにある子テーブルを自動的にホットストレージに戻しません。現在の日付が 2022 年 7 月 1 日であり、次のパーティションテーブルを作成したと仮定します:
BEGIN;
CREATE TABLE tbl_p(
c1 text not null,
c2 text
)
PARTITION BY LIST(c2);
CALL set_table_property('tbl_p', 'auto_partitioning.enable', 'true');
CALL set_table_property('tbl_p', 'auto_partitioning.time_unit', 'DAY');
CALL set_table_property('tbl_p', 'auto_partitioning.num_precreate', '3');
CALL set_table_property('tbl_p', 'auto_partitioning.num_hot', '3');
CALL set_table_property('tbl_p', 'auto_partitioning.num_retention', '10');
COMMIT;
これにより、データ分散に関して次の 2 つのシナリオが発生する可能性があります:
-
シナリオ 1: ホットパーティション数の増加
ホットパーティションポリシーを 4 つのパーティションを保持するように変更するには、次のコードを実行します:
CALL set_table_property('tbl_p', 'auto_partitioning.num_hot', '4');すでにコールドストレージにある子テーブルは自動的にホットストレージに移動されないため、変更の効果は次の図のようになります。

-
シナリオ 2: ホットパーティション数の減少
ホットパーティションポリシーを 2 つのパーティションを保持するように変更する必要がある場合は、次のコードを実行します:
CALL set_table_property('tbl_p', 'auto_partitioning.num_hot', '2');コールドストレージ内の子テーブルは自動的にホットストレージに移動されません。ただし、Hologres は、新たにコールドストレージの対象となったデータをコールドストレージ階層に移動します。変更の効果は次の図のようになります。

コールドテーブルから自動パーティションテーブルへの変換
コールドストレージのパーティションテーブルを自動パーティションテーブルに変換し、直近 7 日間のパーティションをホットストレージに移動するには、次の手順に従います:
-
データを準備します:
-- テーブル作成時にコールドストレージ階層を指定します。 BEGIN; CREATE TABLE tbl2( c1 TEXT NOT NULL, c2 TEXT ) PARTITION BY LIST(c2); CALL set_table_property('tbl2', 'storage_mode', 'cold'); CREATE TABLE tbl2_20230808 PARTITION OF tbl2 FOR VALUES IN('20230808'); CREATE TABLE tbl2_20230809 PARTITION OF tbl2 FOR VALUES IN('20230809'); CREATE TABLE tbl2_20230810 PARTITION OF tbl2 FOR VALUES IN('20230810'); CREATE TABLE tbl2_20230817 PARTITION OF tbl2 FOR VALUES IN('20230817'); COMMIT; -
テーブルを自動パーティションテーブルに変換し、直近 7 日間のパーティションをホットストレージに設定します:
BEGIN; CALL set_table_property('tbl2', 'storage_mode', 'hot'); -- 親テーブルをホットストレージに設定します。 CALL set_table_property('tbl2_20230810', 'storage_mode', 'cold'); -- ホットストレージに移動する必要のない子テーブルをコールドストレージに設定します。 CALL set_table_property('tbl2_20230809', 'storage_mode', 'cold'); CALL set_table_property('tbl2_20230808', 'storage_mode', 'cold'); CALL set_table_property('tbl2', 'auto_partitioning.enable', 'true'); CALL set_table_property('tbl2', 'auto_partitioning.time_unit', 'DAY'); CALL set_table_property('tbl2', 'auto_partitioning.num_precreate', '3'); CALL set_table_property('tbl2', 'auto_partitioning.num_hot', '7'); CALL set_table_property('tbl2', 'auto_partitioning.num_retention', '10'); COMMIT;
自動パーティショニング設定とスケジュールの確認
現在のデータベース内の自動パーティションテーブルの情報と設定をクエリするには、次の SQL ステートメントを実行します:
SELECT
nsp_name AS schema_name,
tbl_name AS table_name,
ENABLE,
time_unit,
time_zone,
num_precreate,
num_retention,
b.usename AS create_user,
cret_time,
schd_start_time,
options
FROM
hologres.hg_partitioning_config AS a
LEFT JOIN pg_user AS b ON a.cret_user = b.usesysid;
次の表に、クエリ結果のフィールドを示します:
|
パラメーター |
説明 |
|
schema_name |
テーブルのスキーマ名。 |
|
table_name |
テーブル名。 |
|
ENABLE |
自動パーティショニングが有効かどうかを示します。 |
|
time_unit |
自動パーティショニングの時間単位。 |
|
time_zone |
自動パーティショニングのタイムゾーン。 |
|
num_precreate |
事前作成されるパーティションの数。 |
|
num_retention |
保持する履歴パーティションの数。 |
|
create_user |
設定を作成したユーザー。 |
|
cret_time |
設定が作成された時刻。 |
|
schd_start_time |
パーティショニングタスクが実行されるようにスケジュールされた直近の時刻。 |
次のコードブロックは、クエリ結果のサンプルを示しています:
schema_name | table_name | enable | time_unit | time_zone | num_precreate | num_retention | create_user | cret_time | schd_start_time | options
-------------+------------------------+--------+-----------+-----------+---------------+---------------+------------------+-----------------------------+--------------------------+---------
public | test_auto_part_daily | t | day | PRC | 4 | -1 | 1534141793071340 | 2022-04-01 11:45:33+08 | 2050-01-01 00:00:00+08 | {}
public | test_auto_part_hourly | t | hour | PRC | 4 | -1 | 1534141793071340 | 2022-04-01 11:44:39+08 | 2050-01-03 18:00:00+08 | {}
public | test_auto_part_weekly | t | week | PRC | 2 | 3 | 1534141793071340 | 2022-04-01 11:45:43+08 | 2050-01-03 00:00:00+08 | {}
public | test_auto_part_monthly | t | month | PRC | 1 | 0 | 1534141793071340 | 2022-04-01 11:45:55+08 | 2050-01-01 00:00:00+08 | {}
public | test_auto_part_quarterly | t | quarter | PRC | 2 | -1 | 1534141793071340 | 2022-04-01 11:46:09+08 | 2050-01-01 00:00:00+08 | {}
public | test_auto_part_yearly | t | year | PRC | 1 | -1 | 1534141793071340 | 2022-04-01 11:46:18+08 | 2050-01-01 00:00:00+08 | {}
(6 rows)
子テーブルログの確認
クエリログには、子テーブルの作成またはパージのログは記録されません。これらのログをクエリするには、次の SQL ステートメントを実行します:
SELECT
relname,
relowner,
schdtime,
trigtime,
status,
message,
precreate,
discard
FROM
hologres.hg_partitioning_log
次の表に、クエリ結果のフィールドを示します:
|
パラメーター |
説明 |
|
relname |
|
|
relowner |
パーティションテーブルの所有者。 |
|
schdtime |
スケジュールされた時刻。 |
|
trigtime |
実際のトリガー時刻。 |
|
status |
ステータス。 |
|
message |
実行の詳細またはエラーメッセージ。 |
|
precreate |
作成された子テーブルの名前。 |
|
discard |
パージされた子テーブルの名前。 |
次のコードブロックは、クエリ結果のサンプルを示しています:
relname | relowner | schdtime | trigtime | status | message | precreate | discard
-----------+------------------+------------------------+------------------------+---------+---------+------------------------------+------------------
public.tbl1 | 1534141793071340 | 2022-04-01 11:00:00+08 | 2022-04-01 11:24:22+08 | SUCCESS | | {tbl1_2022032713,tbl1_2022032714} | {}
public.tbl2 | 1534141793071340 | 2022-04-01 12:00:00+08 | 2022-04-01 12:38:31+08 | SUCCESS | | {tbl2_2022040112} | {}
public.tbl2 | 1534141793071340 | 2022-04-01 13:00:00+08 | 2022-04-01 13:00:00+08 | SUCCESS | | {tbl2_2022040113} | {}
public.tbl2 | 1534141793071340 | 2022-04-01 14:00:00+08 | 2022-04-01 14:00:00+08 | SUCCESS | | {tbl2_2022040114} | {tbl2_2022040112}
(4 rows)
よくある質問
既存テーブルでの自動パーティショニングの有効化
既存のパーティションテーブルで自動パーティショニングを有効にするには、次のいずれかの SQL ステートメントを実行します。
-- Hologres V2.1 以降の例
ALTER TABLE auto_part_old SET (
auto_partitioning_enable = 'true',
auto_partitioning_time_unit = 'HOUR',
auto_partitioning_time_zone = 'PRC',
auto_partitioning_num_precreate = '4',
auto_partitioning_num_retention = '-1',
auto_partitioning_num_hot = '-1'
);
-- すべての Hologres バージョンの例
BEGIN;
CALL set_table_property('auto_part_old', 'auto_partitioning.enable', 'true');
CALL set_table_property('auto_part_old', 'auto_partitioning.time_unit', 'HOUR');
CALL set_table_property('auto_part_old', 'auto_partitioning.time_zone', 'PRC');
CALL set_table_property('auto_part_old', 'auto_partitioning.num_precreate', '4');
CALL set_table_property('auto_part_old', 'auto_partitioning.num_retention', '-1');
CALL set_table_property('auto_part_old', 'auto_partitioning.num_hot', '-1');
COMMIT;
auto_partitioning.time_unit プロパティと auto_partitioning.time_zone プロパティは、自動パーティショニングのコア設定です。いったん設定すると、これらのプロパティは変更できません。
既存子テーブルの自動クリーンアップ
システムは、子テーブル名に基づいて子テーブルを削除するかどうかを判断します。子テーブル名が {parent_table}_{time_suffix} の命名規則に一致する場合、クリーンアップの対象になります。一致しない場合、クリーンアップされません。
num_precreate 子テーブルの作成遅延
テーブルで自動パーティショニングを初めて有効にした場合、作成タスクは直ちに実行されません。システムはデフォルトで 10 分ごとに作成対象のパーティションを確認します。そのため、システムはこの 10 分以内に子テーブルを作成します。