Hologres V3.1 以降、論理パーティションテーブルがサポートされています。このトピックでは、ALTER LOGICAL PARTITION TABLE 文を使用して論理パーティションテーブルの構成を変更する方法について説明します。
論理パーティションテーブルの変更
Hologres は ALTER TABLE 構文をサポートしています。パーティション化されていないテーブルに対する ALTER TABLE の使用方法の詳細については、「ALTER TABLE」をご参照ください。物理テーブルと同様に、論理パーティションテーブルも ALTER TABLE 構文をサポートし、パーティション化されていないテーブルのすべての ALTER TABLE 機能を備えています。さらに、論理パーティションテーブルは、パーティションごとにパーティションプロパティの変更をサポートしています。論理パーティションテーブルとパーティションプロパティの詳細については、「テーブルプロパティの説明」および「パーティションプロパティの説明」をご参照ください。
テーブルプロパティの変更
ALTER TABLE <table_name> SET (<property_name> = <property_value> [, ...]);
テーブルプロパティのリセット
ALTER TABLE <table_name> RESET (<property_name> [, ...]);
パーティションプロパティの変更
ALTER TABLE <table_name> PARTITION(<partition_key> = '<partition_value>') [...] SET (<property_name> = <property_value> [, ...]);
パーティションプロパティのリセット
ALTER TABLE <table_name> PARTITION(<partition_key> = '<partition_value>') [...] RESET (<property_name> [, ...]);
説明
物理パーティションテーブルと比較して、論理パーティションテーブルはパーティションの作成を必要としません。また、ALTER TABLE 構文を使用してパーティションをアタッチまたはデタッチする必要もありません。
例
データの準備
-- 論理パーティションテーブルを作成します。
CREATE TABLE public.hologres_logical_parent_1 (
a TEXT,
b INT,
c TIMESTAMP,
ds DATE NOT NULL,
PRIMARY KEY (b, ds))
LOGICAL PARTITION BY LIST (ds)
WITH (
orientation = 'column',
distribution_key = 'b',
partition_expiration_time = '30 day',
partition_keep_hot_window = '15 day',
partition_require_filter = TRUE,
binlog_level = 'replica',
partition_generate_binlog_window = '3 day'
);
-- データを挿入します。
INSERT INTO public.hologres_logical_parent_1
VALUES
('a', 1, '2025-03-16 10:00:00', '2025-03-16'),
('b', 2, '2025-03-17 11:00:00', '2025-03-17');
論理パーティションテーブルのテーブルプロパティの変更
ALTER TABLE public.hologres_logical_parent_1
SET (
partition_expiration_time = '60 day',
partition_keep_hot_window = '30 day',
partition_require_filter = FALSE);
論理パーティションテーブルの複数パーティションのパーティションプロパティの変更
ALTER TABLE public.hologres_logical_parent_1
PARTITION (ds = '2025-03-16') PARTITION (ds = '2025-03-17')
SET (
keep_alive = TRUE,
storage_mode = 'hot');