Doris 动态分区表

Doris 动态分区使用方法说明。

官方文档

http://doris.apache.org/master/zh-CN/administrator-guide/dynamic-partition.html#%E7%A4%BA%E4%BE%8B

动态分区表DDL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE TABLE test.tbl1
(
a DATE,
b VARCHAR(10)
)
PARTITION BY RANGE(a) ()
DISTRIBUTED BY HASH(a)
PROPERTIES
(
"dynamic_partition.enable" = "true",
"dynamic_partition.time_unit" = "DAY",
"dynamic_partition.start" = "-7",
"dynamic_partition.end" = "2",
"dynamic_partition.prefix" = "p_",
"dynamic_partition.buckets" = "3"
);

建表完成DDL确认:

参数说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE TABLE test.tbl1
(
a DATE, -- 指定按时间分区,动态分区字段可以设置为DATE、DATETIME类型,此处按DAY分区,所以选择了DATE;如果需要更细的粒度,例如小时分区,可以使用DATETIME类型
b VARCHAR(10)
)
PARTITION BY RANGE(a) () -- 指定动态分区字段
DISTRIBUTED BY HASH(a)
PROPERTIES
(
"dynamic_partition.enable" = "true", -- 开启动态分区
"dynamic_partition.time_unit" = "DAY", -- 分区的规则,此处为按天分区;还可以设置为HOUR、WEEK、MONTH。分别表示按小时、按周、按月进行分区创建或删除。
"dynamic_partition.start" = "-7", -- 自动删除7天以前的分区
"dynamic_partition.end" = "2", -- 建表时自动创建未来两天的分区
"dynamic_partition.prefix" = "p_", -- 分区命名的前缀
"dynamic_partition.buckets" = "3" -- 每个分区的分桶数量
);

分区状态查看

1
SHOW DYNAMIC PARTITION TABLES;

Tips

需要注意,动态分区表分区的创建不是在插入了新的分区值数据的时候创建,

而是预先创建的,建议在建表时,设置预先创建1~2个分区。