关于分区表历史分区清理咨询

【详述】
咨询各位大佬,针对分区表目前有3个问题,望请教下,
1.使用表达式parttition by column (字符串的column)创建的分区表,导入数据后show partition显示分区为list分区这个是合理的是嘛
2.针对上面使用表达式分区创建的分区表,在设置了partition_live_number为3后,按理说只保留按字典排序的分区值前3个分区,但是在fe.log日志中发现这样一个日志:
INFO (DynamicPartitionScheduler|54) [DynamicPartitionScheduler.findSchedulableTables():701] finished to find all schedulable tables, cost: 1ms, dynamic partition tables: {starrocks_aud
it_db__=[starrocks_audit_tbl__]}, ttl partition tables: {fintech=[mkt_user_df]}, scheduler enabled: true, scheduler interval: 600s
2024-08-06 14:55:21.248+08:00 WARN (DynamicPartitionScheduler|54) [DynamicPartitionScheduler.scheduleTTLPartition():497] currently only support range partition.remove database=55044, table=162644 from scheduler
这个显示我不是range分区建立的表是否设置了partition_live_number是不生效的,starrocks不会帮我删除历史分区?
3.如果会删除,那每次删除历史分区的时机是什么时候呢?
【背景】无
【业务影响】
【是否存算分离】否
【StarRocks版本】3.2.8
【集群规模】例如:3fe+5be

  1. 分区表显示为 List 分区 :如果您使用表达式 partition by 字段 创建了一个分区表,理论上这种方式应该生成 Range 分区。这个可以发下语句具体看下 是不是配置哪里有问题
  2. partition_live_number 参数不生效 :你提到的日志信息显示了 DynamicPartitionScheduler 的警告,表明当前只支持 Range 分区,并且分区的删除功能在你的情况中可能未启用。 partition_live_number 参数用于设置保留的分区数量,但如果日志显示你使用的分区类型不被支持,那么该参数可能会无效。在这种情况下,StarRocks 可能不会自动删除历史分区。
  3. 删除历史分区的时机 :如果 partition_live_number 参数有效,StarRocks 通常会在定期的调度中(如 DynamicPartitionScheduler 任务运行周期)执行删除操作 ,以 当前时间 为基准,然后从后往前数指定个数的分区进行保留,其余(更早的)分区会被删除。后台会定时调度任务来管理分区数量,调度间隔可以通过 FE 动态参数 dynamic_partition_check_interval_seconds 配置,默认为 600 秒,即 10 分钟。假设当前为 2023 年 4 月 4 日, partition_live_number 设置为 2 ,分区包含 p20230401p20230402p20230403p20230404 ,则分区 p20230403p20230404 会保留,其他分区会删除。如果导入了脏数据,比如未来时间 4 月 5 日和 6 日的数据,导致分区包含 p20230401p20230402p20230403p20230404p20230405p20230406 ,则分区 p20230403p20230404p20230405p20230406 会保留,其他分区会删除。

[quote=“yuchen1019, post:2, topic:14088”

[/quote]

针对问题1 建表语句为
CREATE TABLE test (
user_guid varchar(65533) NULL COMMENT “user_guid”,
fst_mkt_activity_id varchar(65533) NULL COMMENT “”,
lst_mkt_activity_id varchar(65533) NULL COMMENT “”,
pt varchar(65533) NOT NULL COMMENT “full_partition”
) ENGINE=OLAP
DUPLICATE KEY(user_guid, fst_mkt_activity_id, lst_mkt_activity_id)
COMMENT “test”
PARTITION BY (pt)
DISTRIBUTED BY HASH(user_guid, fst_mkt_activity_id, lst_mkt_activity_id) BUCKETS 60
PROPERTIES (
“replication_num” = “3”,
“in_memory” = “false”,
“enable_persistent_index” = “false”,
“replicated_storage” = “true”,
“partition_live_number” = “3”,
“compression” = “LZ4”
);

与官网样例中的https://docs.starrocks.io/zh/docs/table_design/expression_partitioning/截图中的描述一样方式进行建表,按理说这样建表方式是不是都会是list分区

@yuchen1019