作用
动态分区可以让doris管理分区的创建跟删除。
创建
可以在建表的时候创建。或者修改表的动态分区属性。
CREATE TABLE tbl1
(...)
PROPERTIES
(
"dynamic_partition.prop1" = "value1",
"dynamic_partition.prop2" = "value2",
...
)
ALTER TABLE tbl1 SET
(
"dynamic_partition.prop1" = "value1",
"dynamic_partition.prop2" = "value2",
...
)
限制
目前仅支持date分datetime类型的单列进行动态分区。并且只支持range分区。
常用的规则参数
具体的取值范围看链接 规则参数
"dynamic_partition.enable"="true", -- 是否开启动态分区
"dynamic_partition.time_unit"="MONTH",-- 动态分区的时间单位
"dynamic_partition.start"="-36",-- 只保留最近三年的数据
"dynamic_partition.end"="1", -- 提前一个月创建分区
"dynamic_partition.prefix"="user", -- 分区名字前缀
"dynamic_partition.buckets" = "10" -- 与创建的分区对应的桶数
例子
create table if not exists doris_ts.dy_part
(
user_id int(11) not null comment "用户Id",
send_date date not null,
sleep_long TINYINT max comment "睡眠时长"
)engine=olap
aggregate key (user_id,send_date)
comment"用户睡眠表"
PARTITION by range (send_date) ()
distributed by hash (user_id) buckets 10
properties(
"replication_num"="1", -- 副本数
"dynamic_partition.enable"="true", -- 是否开启动态分区
"dynamic_partition.time_unit"="MONTH",-- 动态分区的时间单位
"dynamic_partition.start"="-36",-- 只保留最近三年的数据
"dynamic_partition.end"="1", -- 提前一个月创建分区
"dynamic_partition.prefix"="user", -- 分区名字前缀
"dynamic_partition.buckets" = "10" -- 与创建的分区对应的桶数
);
查看动态分区表的调度
动态分区
-- 检查动态分区表的调度 SHOW DYNAMIC PARTITION TABLES;