3.0.0-rc01
新增功能
系统架构
- 支持存算分离架构。可以在 FE 配置文件中开启,开启后数据会持久化到远程对象存储/HDFS 中,本地盘作为缓存使用,可以更灵活的增删节点,支持表级别的缓存生命周期管理。在本地缓存命中的情况下性能可以对齐非存算分离版本。更多信息,参见部署使用 StarRocks 存算分离集群。
存储和导入
- 支持自增列 AUTO_INCREMENT,提供表内全局唯一 ID,可以简化数据管理。
- 支持导入时自动创建分区和使用分区表达式定义分区规则,提高了分区创建的易用性和灵活性。
- Primary Key 模型表支持更丰富的 UPDATE 和 DELETE 语法,包括使用 CTE 和对多表的引用。
- Broker Load 和 INSERT INTO 增加 Load Profile,支持通过 profile 查看并分析导入作业详情。使用方法与 查看分析Query Profile 相同。
数据湖分析
- [Preview] 支持 Presto/Trino 兼容模式,可以自动改写 Presto/Trino 的 SQL。参见系统变量 中的
sql_dialect
。 - 支持 Global UDF。
- [Preview] 支持 JDBC Catalog。
- 支持使用 SET CATALOG 命令来手动选择 Catalog。
权限与安全
查询
- [Preview] 支持大查询的算子落盘,可以在内存不足时利用磁盘空间来保证查询稳定执行成功。
- Query Cache 支持更多使用场景,包括各种 Broadcast Join、Bucket Shuffle Join 等 Join 场景。
- 动态自适应并行度,可以根据查询并发自适应调节
pipeline_dop
。
半结构化数据分析
- 新增函数 map_apply、map_filter、transform_keys、transform_values、map_from_arrays。
- array_agg 支持 ORDER BY。
- 新增字符串函数 replace。
功能优化
存储与导入
- 数据导入提供了更丰富的 CSV 格式参数,包括
skip_header
、trim_space
、enclose
和escape
。参见 STREAM LOAD、BROKER LOAD 和 ROUTINE LOAD。 -
Primary Key 模型表解耦了主键和排序键,支持通过
ORDER BY
单独指定排序键。 - 优化 Primary Key 模型表在大数据导入、部分列更新、以及开启持久化索引等场景的内存占用。 #12068 #14187 #15729
物化视图
- 优化 物化视图 的改写能力:
- 支持 view delta join, 可以改写。
- 支持对 Outer Join 和 Cross Join 的改写。
- 优化带分区时 UNION 的 SQL rewrite。
- 完善物化视图的构建能力:支持 CTE、SELECT * 、UNION。
- 优化 SHOW MATERIALIZED VIEW 命令的返回信息。
查询
- 完善算子对 Pipeline 的支持,所有算子都支持 Pipeline。
- 完善大查询定位。SHOW PROCESSLIST 支持查看 CPU 内存信息,增加大查询日志。
- 优化 Outer Join Reorder 能力。
- 优化 SQL 解析阶段的报错信息,查询的报错位置更明确,信息更清晰。
数据湖分析
- 优化元数据统计信息收集。
- Hive Catalog、Iceberg Catalog、Hudi Catalog 和 Delta Catalog 支持通过 SHOW CREATE TABLE 查看外表 Schema 信息,支持通过 SHOW CREATE CATALOG 查看 Catalog 的创建信息。
函数
问题修复
-
StarRocks 源文件的许可 header 中部分 url 无法访问。# 2224
-
SELECT 查询出现 unknown error。# 19731
-
支持 SHOW/SET CHARACTER。# 17480
-
当导入的内容超过 StarRocks 字段长度时,ErrorURL 提示信息不准确。提示源端字段为空,而不是内容超长。# 14
-
支持 show full fields from ‘table’。# 17233
-
分区修剪导致 MV 改写失败。# 14641
-
当 MV 创建语句包含 count(distinct) 且 count(distinct) 作用在分布列上时,MV 改写失败。# 16558
行为变更
- RBAC 升级以后会兼容之前的用户和权限,但是 GRANT 和 REVOKE 等相关语法有大幅改动。具体参见 SQL 参考 > 用户账号管理。
升级注意事项
必须从2.5版本升级到3.0 否则无法回滚 (理论上从 2.5 以下的版本升级到 3.0 也支持。但保险起见,请统一从 2.5 升级,降低风险。)
BDBJE 升级
3.0 版本升级了 BDB 库,但是 BDB 不支持回滚,所以需要在回滚之后仍然使用 3.0 里的 BDB 库。
-
在 FE 包替换成旧版本之后,将 3.0 包里的
fe/lib/starrocks-bdb-je-18.3.13.jar
放到 2.5 版本fe/lib
目录下。 -
删除
fe/lib/je-7.*.jar
。
权限系统升级
升级到 3.0 会默认采用新的 RBAC 权限管理系统,升级后只支持回滚到 2.5。
回滚后需要手动执行 ALTER SYSTEM CREATE IMAGE 命令,触发创建新的 image 并等待该 image 同步给所有的 follower 节点。如不执行该命令,可能会导致部分回滚失败。ALTER SYSTEM CREATE IMAGE 在 2.5.3 版本及以后支持。
存算分离版本
存算分离版本和非存算分离版本在集群部署的时候在FE配置时生效,请独立部署存算分离模式集群。