Range 分区(不推荐)
Range 分区适用于存储简单的连续数据,如时间序列数据或连续的数值数据。
基于 Range 分区,您可以使用动态分区策略创建分区,该策略允许您管理分区的生命周期(TTL)。
备注
从 v3.4 开始,表达式分区方式进一步优化,以统一所有分区策略,并支持更复杂的解决方案。在大多数情况下,建议您使用表达式分区。表达式分区将在未来版本中逐渐取代 Range 分区策略。
介绍
Range 分区适用于基于连续日期/数值范围的频繁查询数据。此外,它还可以应用于一些特殊情况下,例如需要按月分区历史数据,而按天分区最近数据。
您需要显式定义数据分区列,并建立分区与分区列值范围之间的映射关系。在数据导入期间,StarRocks 会根据数据分区列值所属的范围将数据分配到相应的分区。
关于分区列的数据类型,在 v3.3.0 之前,Range 分区仅支持日期和整数类型的分区列。从 v3.3.0 开始,可以使用三个特定的时间函数作为分区列。在显式定义分区与分区列值范围之间的映射关系时,您需要首先使用特定的时间函数将时间戳或字符串类型的分区列值转换为日期值,然后根据转换后的日期值划分分区。
信息
- 如果分区列值是时间戳,您需要使用 from_unixtime 或 from_unixtime_ms 函数将时间戳转换为日期值以划分分区。当使用 from_unixtime 函数时,分区列仅支持 INT 和 BIGINT 类型。当使用 from_unixtime_ms 函数时,分区列仅支持 BIGINT 类型。
- 如果分区列值是字符串(STRING、VARCHAR 或 CHAR 类型),您需要使用 str2date 函数将字符串转换为日期值以划分分区。