starrocks的冷热数据自动分离

【详述】starrocks的冷热数据自动分离
【建表示例】
CREATE TABLE if not exists test_test (
op varchar,
id bigint(20) NOT NULL COMMENT ‘id’,
ts_ms bigint,
ts_date date
)
DUPLICATE KEY(op)
partition by range(ts_date)()
DISTRIBUTED BY HASH(id) BUCKETS 10 properties (
“replication_num” = “2”,
“dynamic_partition.enable” = “true”,
“dynamic_partition.time_unit” = “DAY”,
“dynamic_partition.start” = “-2147483648”,
“dynamic_partition.end” = “1”,
“dynamic_partition.prefix” = “par”,
“dynamic_partition.buckets” = “10”
);
【实现目标】
1.建立动态分区表,在fe.conf配置 tablet_sched_storage_cooldown_second=259200(3天),这样配置的话,今天的分区par20230410会在3天后变成冷分区,那par20230411分区会在4月15日变成冷分区的,意思就是后续的分区会在他对应的三天后自动变成冷分区吗;
2. 表级别的使用

storage_cooldown_time="xxx"

但是这个不同动态配置时间,还是说这个可以动态配置时间实现我上述的目标;
3.在客户端输入命令 SHOW PARTITIONS FROM 表名;
查询到


如果想将par20230403在这里将CooldownTime的值改为2023-04-12 00:00:00,
那么应该在哪里修改,修改后par20230403分区是不是会在2023-04-12 00:00:00变成冷分区
【StarRocks版本】2.5.2
【集群规模】3fe(1 follower+2observer)+3be(fe与be混部)
【表模型】明细模型
【联系方式】392388393@qq.com

fe.conf配置 tablet_sched_storage_cooldown_second 这个是全局
表设置storage_cooldown_time="xxx"是局部
storage_root_path注意设置好SSD和HDD

在2023-04-12 00:00:00后,par20230403就会转移去冷数据HDD盘上。

看着好像都回复了,但又好像什么都没有回答.

局部设置比全局优先度高,咱们先自己测试感受一下吧。

你前面说的我都知道,

  1. 但是我想问的是如果我在fe.conf配置tablet_sched_storage_cooldown_second这个参数为三天,
    但是我创建的是以天为单位的动态分区表,假设今天创建了这个表,那今天会有par20230411和par20230412两个分区,par20230411在4月14日变成冷分区,par20230412在4月15日变成冷分区,那等到明天自动创建了par20230413分区,那这个分区是会在4月16日变成冷分区还是会在9999-12-31日变成冷分区?
  2. 表级别的使用
storage_cooldown_time="xxx"
```这里只能设置比如"2023-04-12 00:00:00"这样的具体数值,我想问的是这里能设置每天的分区3天后自动变成冷分区吗,还是说这里无法实现,只能在fe.conf配置tablet_sched_storage_cooldown_second这个参数才实现这个需求?
3.在客户端SHOW PARTITIONS FROM 表名;查出来的CooldownTime,这里是只读的,如果我想改,是否能改,能改的话是在哪里改?
  1. tablet_sched_storage_cooldown_second是全局配置,是相对时间,例如配置259200,表创建3天后将冷到hdd,可以实现你的需求,不过建表中需要指定"storage_medium"=“SSD”
  2. storage_cooldown_time=“xxx"是分区级别的,是绝对时间,例如配置的"2023-04-12 00:00:00”,那么这个分区就会在这个时间点之后降冷到hdd,没有相对时间3天的这种逻辑
  3. 分区级别的支持修改
ALTER TABLE part_exp MODIFY PARTITION p3 SET("storage_medium"="SSD", "storage_cooldown_time"="2023-04-12 00:00:00");
2赞

这就明白了,
但是不能符合全部场景,tablet_sched_storage_cooldown_second是全局配置,如果我有一个需求,某些表热分区时间是7天,有些表热分区时间是30天,那我只能把这个参数设置成30天了,不能做到表级别动态设置;
而doris在建表时dynamic_partition.hot_partition_num这个参数支持表级别设置

局部配置可以根据一个表的一个分区单独设置的。

1赞

是可以,但是是绝对时间,不用动态设置

嗯,暂时先统一用全局吧,局部设置的绝对时间是需要改善的。