目前在StarRocks的主键模型中,分区键必须是主键之一,导致只能将创建时间作为分区键,不能将更新时间作为分区键。如果历史分区很多,数据写入时如果创建时间分布不均匀,会导致同时更新大量分片,如果能将更新字段作为分区字段(前提是分区字段不是主键字段),就只会更新最新分区,减小数据写入压力
1赞
目前还没有计划,分区键会决定数据的分布情况,如果分区列的值变更,涉及到数据的重新分布。您的需求场景我会反馈给产研同学,看下是否有好的实现方案,感谢反馈。
你好,我也有这样子的应用场景,请问主键与分区键解耦未来计划解耦嘛
你好 暂时还没有计划 因为涉及数据分布 改动的话会比较大 方便提供个具体的建表吗 我看下你的场景
我们单表数据日增预估2000万,要保留3个月(可能会更久),大概是20亿的量,所以数据需要根据时间来做分区,但是我们也有比较多的主键查询的场景(见:https://forum.mirrorship.cn/t/topic/12256/13),受限于StarRocks主键模型的约束,分区键必须在主键中,这样相当于主键是由业务主键+时间字段来决定,但是真正查询的时候,都是用业务主键来查询,因此还是期望主键和分区键能够解耦,而且StarRocks3.2.3版本支持了行列混存,这里有个短路查询,但是查询的时候,所有主键都必须在where中才会触发,这样子严重制约了行列混存的使用