背景
有一张业务表,最初建表的时候,使用的是静态分区。在我公司业务场景中,静态分区仅写到了’2023-03-24’,所以当’2023-03-25’的数据要写入到这个表里面的时候,会报错。
解决方案
--按照自己的需求配置
alter table target_database.target_table set (
"dynamic_partition.enable" = "true",
"dynamic_partition.time_unit" = "DAY",
"dynamic_partition.time_zone" = "Asia/Shanghai",
"dynamic_partition.start" = "-2147483648",
"dynamic_partition.end" = "30",
"dynamic_partition.prefix" = "p",
"dynamic_partition.buckets" = "8"
)
参考文档;star rocks 官方文档表设计
修改完了之后,使用下述命令查看表的分区是否自动创建了
show partitions from target_database.target_table
刚修改完没有这么快的,因为有一个dynamic_partition_check_interval_seconds
管理控制
dynamic_partition_check_interval_seconds:FE 配置项,动态分区检查的时间周期,默认为 600,单位为 s,即每10分钟检查一次分区情况是否满足PROPERTIES中动态分区属性,如不满足,则会自动创建和删除分区。
总结
这个操作比较简单,主要是因为当star rocks
表从静态分区变为动态分区的时候,自动创建分区的动作没有这么快,需要耐心等待一点时间。给后来的哥们做个参考。