StarRocks version 3.3
升级至 v3.3 后,请勿直接将集群降级至 v3.2.0、v3.2.1 或 v3.2.2,否则会导致元数据丢失。您必须降级到 v3.2.3 或更高版本以避免出现此问题。
3.3.9
发布日期:2025 年 1 月 12 日
新增功能
- 支持将 Trino SQL 翻译为 StarRocks SQL。#54185
功能优化
- 在 FE 节点以
bdbje_reset_election_group
开头时,纠正 FE 节点名称以方便理解。#54399 - 在 ARM 结构上实现 IF 函数的向量化。#53093
- ALTER SYSTEM CREATE IMAGE 支持创建 StarManager 的 Image。#54370
- 存算分离集群支持删除主键表的云原生索引。#53971
- 指定 FORCE 关键词时,系统强制刷新物化视图。#52081
- CACHE SELECT 支持指定 Hint。#54697
- 支持通过 FILES() 函数导入压缩的 CSV 文件,支持的压缩格式包括 gzip、bz2、lz4、deflate 以及 zstd。#54626
- 允许在 UPDATE 中对同一列进行多个赋值。#54534
问题修复
修复了如下问题:
- JDBC Catalog 物化视图刷新时出现的意外错误。#54487
- Delta Lake 表 Join 自身时出现的结 果不稳定。#54473
- 使用 HDFS 文件系统接口备份文件时的重试上传失败问题。#53679
- aarch64 架构上的 BFD 初始化错误。#54372
- BE 日志中记录敏感信息。#54677
- Profile 中 Compaction 相关的指标错误。#54678
- 创建 TIME 嵌套类型的表导致的 BE 崩溃。#54601
- 带有子查询 TOP-N 的
LIMIT
查询计划错误。#54507
降级说明
- 集群只可从 v3.3.9 降级至 v3.2.11 或更高版本。
3.3.8
发布日期:2025 年 1 月 3 日
功能优化
- 添加集群空闲 API 以帮助判断集群状态。#53850
- JSON 指标中添加节点信息和直方图指标。#53735
- 优化存算分离集群中主键表的 MemTable。#54178
- 优化存算分离集群中主键表的内存占用和统计信息。#54358
- 当查询需要扫描全表或大量分区时,增加单节点扫描分区数量限制以控制单 BE 或 CN 节点的扫描压力,提升系统稳定性。#53747
- 支持收集 Paimon 表的统计信息。#52858
- 存算分离集群支持配置 S3 Client 请求超时时间。#54211
问题修复
- 主键表 DelVec 不一致导致 BE 退出。#53460
- 存算分离集群中主键表的锁释放问题。#53878
- 函数嵌套中 UDF 遇到错误时,查询不会返回错误。#44297
- 事务因依赖原始副本,导致其状态阻塞在 Decommission 阶段。#49349
- 查询 Delta Lake 表时,使用相对路径而不是文件名来获取文件。#53949
- 查询 Delta Lake Shallow Clone 表报错。#54044
- 使用 JNI 读取 Paimon 时的大小写敏感问题。#54041
- 使用 INSERT OVERWRITE 覆盖写 Hive Catalog 中由 Hive 创建的表报错。#53792
- SHOW TABLE STATUS 命令没有校验视图权限。#53811
- FE 指标缺失。#53058
- INSERT 任务内存泄露问题。#53809
- 副本复制任务中提交的事务没有写锁引发的并发问题。#54061
- 统计信息数据库中的表
parti``ti``on_ttl
不生效。#54398 - Query Cache 相关问题:
- 物化视图 Union Rewrite 的问题。#54293
- 主键表部分列更新导致的字符串填充缺位。#54182
- 在启用低基数优化时
max(count(distinct))
的错误执行计划。#53403 - 变更物化视图参数
excluded_refresh_tables
的问题。#53394
行为变更
- 存算分离集群中主键表
persistent_index_type
默认值修改为CLOUD_NATIVE
,即默认打开 Persistent Index。#52209
3.3.7
发布日期:2024 年 11 月 29 日
新增功能
- 物化视图新增
excluded_refresh_tables
参数,物化视图刷新的时候不会触发数据同步的基表。#50926
功能优化
问题修复
修复了如下问题:
- Power BI 连接外表失败。#52977
- 日志中误导性的 FE Thrift RPC 失败信息。#52706
- Routine Load 因事务过期而导致任务取消(目前仅有数据库或表不存在任务才会被取消)。#50334
- 通过 HTTP 1.0 提交的 Stream Load 失败。#53010 #53008
- 分区 ID 整数溢出。 #52965
- Hive Text Reader 无法识别最后一个空元素。#52990
array_map
出现在 Join 条件中导致的问题。#52911- 元数据 Cache 在高并发场景下的问题。#52968
- 从物化视图基表删除分区后,整个物化视图会被重新刷新。#52740
3.3.6
发布日期:2024 年 11 月 18 日
功能优化
- 优化主键表内部修复的逻辑。#52707
- 优化统计信息直方图的内部实现。#52400
- 支持通过 FE 参数
sys_log_warn_modules
选择日志级别以降低 Hudi Catalog 日志的打印量。#52709 - 函数
yearweek
支持进行常量折叠。#52714 - 防止 Lambda 函数被下推。#52655
- 拆分监控项 Query Error 为三个部分:Internal Error Rate、Analysis Error Rate 以及 Timeout Rate。#52646
- 避免将常量表达式提取为
array_map
中的公共表达式。#52541 - 优化物化视图的 Text-based Rewrite。#52498
问题修复
修复了如下问题:
- 对存算分离集群内表运行 SHOW CREATE TABLE 时
unique_constraints
和foreign_constraints
参数显示不全。#52804 - 设置
enable_mv_automatic_active_check
为false
后系统仍会将部分物化视图设置为 Active。 #52799 - 刷新过时内存后内存占用未能降低。#52613
- Hudi File-system View 导致的资源泄漏。#52738
- 主键表数据 Publish 和 Update 操作同时发生导致的问题。#52687
- 客户端无法正常终止查询。#52185
- 多列 List 分区无法下推。#51036
- 因 ORC 文件缺少
hasnull
导致返回错误结果。#52555 - 因建表时 ORDER BY 列使用大写列名导致的问题。#52513
- 运行
ALTER TABLE PARTITION (*) SET ("storage_cooldown_ttl" = "xxx")
报错。#52482
行为变更
-
历史版本中,缩容操作会因统计信息数据库
_statistics_
中的视图副本数不足而失败。v3.3.6 及以后版本中,如缩容至 3 个或以上节点,则系统会将视图的副本数设置为 3,如缩容至 1 个节点,则会将视图的副本数设置为 1,使缩容操作正常进行。#51799受影响的视图包括:
column_statistics
histogram_statistics
table_statistic_v1
external_column_statistics
external_histogram_statistics
pipe_file_list
loads_history
task_run_history
-
新创建的主键表将不再允许使用
__op
作为列名,即使已经将 FE 配置项allow_system_reserved_names
设置为true
。历史表不受此变更影响。 #52621 -
表达式分区的表不允许变更分区名。#52557
-
废弃 FE 配置项
heartbeat_mgr_blocking_queue_size
和profile_process_threads_num
。#52236 -
存算分离集群中的主键表默认开启基于对象存储的持久化索引。 #52209
-
使用随机分桶方式的表禁止手动更改分桶方式。 #52120
-
备份还原相关参数变更:#52111
make_snapshot_worker_count
支持动态配置。release_snapshot_worker_count
支持动态配置。upload_worker_count
支持动态配置,默认值从1
改为等同于节点 CPU 核数。download_worker_count
支持动态配置,默认值从1
改为等同于节点 CPU 核数。
-
SELECT @@autocommit
的返回值从 BOOLEAN 类型改为 BIGINT 类型。 #51946 -
新增 FE 参数
max_bucket_number_per_partition
,为单个分区增加分桶上限控制。 #47852 -
主键表默认开启内存占用检查。 #52393
-
优化导入策略,当 Compaction 任务无法及时完成时降低导入速度。#52269
3.3.5
发布日期:2024 年 10 月 23 日
新增功能
- DATETIME 类型支持毫秒和微秒。
- 资源组支持 CPU 硬隔离。
功能优化
- 优化了 Flat JSON 的性能和抽取策略。#50696
- 优化了以下 ARRAY 函数的内存占用:
- 优化了 Not Null 属性的 List 分区键导入 Null 值时的报错信息。#51086
- 优化了 Files 函数在认证信息错误时的报错信息。#51697
- 优化了 INSERT OVERWRITE 内部的统计信息。#50417
- 存算分离集群支持持久化索引文件的 GC。#51684
- 增加 FE 日志以定位 FE OOM 问题。#51528
- 支持从 FE 的元数据路径中恢复元数据。#51040
问题修复
修复如下问题:
- PIPE 因异常而导致死锁。 #50841
- 动态分区创建失败而堵塞后续分区创建。#51440
- UNION ALL 查询中加入 ORDER BY 报错。#51647
- UPDATE 语句中包含 CTE 导致 Hint 失效。#51458
- 系统视图
statistics.loads_history
中的load_finish_time
字段在导入任务结束后依旧不符合预期的变更。#51174 - UDTF 错漏多字节 UTF-8。#51232
行为变更
- 更改 EXPLAIN 语句的返回内容,更改后其返回内容等同于 EXPLAIN COST。您可以通过 FE 的动态参数
query_detail_explain_level
来设置 EXPLAIN 返回的信息级别,默认为COSTS
,其他有效值包括NORMAL
和VERBOSE
。 #51439
3.3.4
发布日期:2024 年 9 月 30 日
新增功能
- 支持在 List Partition 的表上创建异步物化视图。 #46680 #46808
- List Partition 表支持 Nullable 分区列。 #47797
- 支持通过
DESC FILES()
查看外部文件 Schema 信息。#50527 - 支持通过
SHOW PROC '/replications'
查看数据复制任务指标。#50483
功能优化
- 优化存算分离架构下
TRUNCATE TABLE
的数据回收速度。#49975 - CTE 算子支持中间结果落盘。#47982
- 支持自适应分阶段调度,缓解复杂查询导致的 OOM。#47868
- 在一些特定场景下支持了 STRING 类型的 date 或 datetime 列的查询下推。#50643
- 支持基于常量的半结构化数据上计算
COUNT DISTINCT
。#48273 - 新增 FE 参数
lake_enable_balance_tablets_between_workers
,用于启用存算分离表的 Tablet 均衡。#50843 - 优化生成列的改写能力。#50398
- Partial Update 支持自动填充默认值为
CURRENT_TIMESTAMP
的列的值。#50287
问题修复
修复了如下问题:
- Tablet Clone 时 FE 侧死循环导致报错 "version has been compacted"。#50561
- ISO 格式 DATETIME 类型在查询时无法下推。#49358
- 并发场景下,当 Tablet 被删除后,数据仍旧存在。#50382
- 函数
yearweek
结果错误。#51065 - ARRAY 低基数字典在 CTE 查询中的问题。#51148
- FE 重启后,物化视图的分区 TTL 相关参数丢失。#51028
- 升级后,表中使用
CURRENT_TIMESTAMP
定义的列数据丢失。#50911 - 函数
array_distinct
导致堆栈溢出。#51017 - 升级后,因字段默认长度变化而导致的物化视图激活(active)失败。您可以通过设置
enable_active_materialized_view_schema_strict_check
为false
规避此类问题。#50869 - 资源组属性
cpu_weight
可以设置为负。#51005 - 磁盘容量的统计信息统计错误。#50669
- 函数
replace
常量折叠。#50828
行为变更
- 更改外表物化视图的默认副本数,从默认
1
副本改为遵循 FE 参数default_replication_num
的值(默认值:3
)。#50931
3.3.3
发布日期:2024 年 9 月 5 日
新增功能
- 支持设置用户级别变量。#48477
- 支持了 Delta Lake Catalog 的元数据缓存、元数据手动刷新以及周期性刷新策略。#46526 #49069
- 支持导入 Parquet 文件的 JSON 类型。#49385
- JDBC SQL Server Catalog 支持 LIMIT 查询。#48248
- 存算分离集群支持通过 INSERT INTO 执行 部分列更新。#49336
功能优化
- 优化导入报错信息:
- 优化导入时的分区机制,降低初始阶段的内存占用。#47976
- 优化存算一体集群的内存占用问题。增加元数据内存占用限制,避免在 Tablet、Segment 文件过多时可能引发的问题。#49170
- 优化了
max(partition_column)
的查询性能。#49391 - 如果分区列是生成列(即基于表中某个原生列计算所得),且查询的谓词过滤条件包含原生列,则可以使用分区裁剪优化查询性能。 #48692
- 对 Files()、PIPE 相关操作中的敏感信息进行脱敏。#47629
- 提供新的命令
SHOW PROC '/global_current_queries'
,用以查看在所有 FE 节点上运行的查询。而相对应的命令SHOW PROC '/current_queries'
只能查看当前连接的 FE 节点上运行的查询。#49826
问题修复
修复了如下问题:
- 在通过 StarRocks 外表将数据导出至目标集群时,系统将源集群 BE 误添加到当前集群。#49323
- aarch64 类机器上部署的 StarRocks 集群在通过
select * from files
读取 ORC 文件时,TINYINT 数据类型返回 NULL。#49517 - Stream Load 导入包含大 Integer 类型的 JSON 格式文件失败。 #49927
- Files() 导入 CSV 文件时,对非可见字符的错误处理而导致的 Schema 获取错误。#49718
- 多列分区表替换临时产生的分区错误。 #49764