Hologres V3.1版本起支持逻辑分区表(LOGICAL PARTITION TABLE),本文为您介绍如何使用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');
该文章对您有帮助吗?