ALTER LOGICAL PARTITION TABLE

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');