Doris进阶——动态分区

动态分区:对表级别的数据进行生命周期管理,相当于对分区设置TTL。可对分区实现动态添加和动态删除,动态分区只支持Range分区

原理:FE会在后台起一条线程,根据用户定义的规则进行分区的创建和删除。同时Doris支持对已有规则进行动态调整。

Doris目前只支持对单列分区的分区表设定动态分区规则。

动态分区前缀:dynamic_partition;

动态分区参数可参考:Doris官网

动态分区建表语句示例(创建一张以小时为单位的分区表):

-- 创建以小时为分区的动态分区表,注意HOUR的数据类型不能是DAET,应该是DATETIME

 CREATE TABLE IF NOT EXISTS test.dynamic_test
(
    `timestamp` DATETIME NOT NULL COMMENT "日志时间",
    `type` INT NOT NULL COMMENT "日志类型",
    `error_code` INT COMMENT "错误码",
    `error_msg` VARCHAR(1024) COMMENT "错误详细信息",
    `op_id` BIGINT COMMENT "负责人id",
    `op_time` DATETIME COMMENT "处理时间"
)
ENGINE=OLAP -- 指定执行引擎
DUPLICATE KEY(`timestamp`, `type`) -- 明细表
PARTITION BY RANGE(`timestamp`)() -- 指定分区Key
DISTRIBUTED BY HASH (`timestamp`) BUCKETS 10
PROPERTIES(
"replication_num" = "2", -- 指定副本数
"dynamic_partition.enable" = "true", -- 开启动态分区特性
"dynamic_partition.time_unit" = "HOUR", -- 指定为HOUR分区(可根据需求创建月、周、日分区,但是HOUR 分区的数据类型不能是DATE,只能是DATETIME)
"dynamic_partition.end" = "1", -- 动态分区的结束偏移,为正数,提前创建对应范围的分区
"dynamic_partition.start" = "-5",-- 动态分区的起始偏移量,为负数,会删除对应范围的分区
"dynamic_partition.prefix" = "p", -- 指定分区前缀
"dynamic_partition.buckets" = "10" -- 指定分区中的分桶数
 );
  • 查看表分区:SHOW PARTITIONS FROM TABLE;

创建历史分区:

历史分区主要参数介绍,其他参数请参考 :Doris官网

  • create_history_partition  创建历史分区的开关,默认是false,改为true时就会自动创建历史分区,但是和start有关,如start未设置则无意义

  • history_partition_num 创建历史分区的数据量,默认为-1,不设置时,创建历史分区数量为 end - start,如参数大于 end - start ,则多余的分区不会创建

  • hot_partition_num 指定热分区,参数值标识往前N天和未来所有分区全部为热分区。对于热分区,系统会自动设置存储方式为SSD,并且设置storage_cooldown_time

  • 创建历史分区的方式:可以在建表时直接指定,也可以通过ALTER 的方式设置

    • 例如:ALTER TABLE student_dynamic_partition1 SET ("dynamic_partition.create_history_partition" = "true");

    • 查看分区情况:SHOW PARTITIONS FROM TABLE;

手动分区和动态分区的转换:

手动和动态分区的转换,主要时通过dynamic_partition 的参数来调整的

动态转手动:"dynamic_partition.enable" = "false" 关闭动态分区开关即可

手动转动态:"dynamic_partition.enable" = "true" 打开动态分区开关即可,还需要添加 end、start等参数

具体内容看官网!!!

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小眼睛的Ayuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值