StarRocks version 3.5
warning
升级注意事项
-
从 StarRocks v3.5.0 起,需使用 JDK 17 或更高版本。
- 如从 v3.4 或更早版本升级集群,需先升级 JDK,并在 FE 配置文件 fe.conf 中移除
JAVA_OPTS中与 JDK 17 不兼容的参数(如 CMS 和 GC 参数)。推荐直接使用 v3.5 版本的JAVA_OPTS默认值。 - 对于使用 External Catalog 的集群,需要在 BE 配置文件 be.conf 的配置项
JAVA_OPTS中添加--add-opens=java.base/java.util=ALL-UNNAMED。 - 对于使用 Java UDF 的集群,需要在 BE 配置文件 be.conf 的配置项
JAVA_OPTS中添加--add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED。 - 此外,自 v3.5.0 起,StarRocks 不再提供特定 JDK 版本的 JVM 配置,所有 JDK 版本统一使用
JAVA_OPTS。
- 如从 v3.4 或更早版本升级集群,需先升级 JDK,并在 FE 配置文件 fe.conf 中移除
-
建议在将集群升级至 v3.5 之前,先将其升级至 v3.4.10 或更高版本。否则,在灰度升级过程中必须手动禁用低基数优化,具体操作如下:
SET GLOBAL cbo_enable_low_cardinality_optimize=false;
降级注意事项
- 升级至 v3.5 后,请勿直接将集群降级至 v3.4.0 ~ v3.4.5,否则会导致元数据不兼容。您必须降级到 v3.4.6 或更高版本以避免出现此问题。
- 升级至 v3.5.2 后,请勿将集群降级至 v3.5.0 和 v3.5.1,否则会导致 FE Crash。
3.5.15
发布日期:2026 年 3 月 26 日
行为变更
- 优化了
sql_mode的处理逻辑:当设置了DIVISION_BY_ZERO或FAIL_PARSE_DATE模式时,str_to_date/str2date中的除零操作和日期解析失败现在将返回错误,而不是被静默忽略。#70004 - 当
sql_mode为FORBID_INVALID_DATE时,INSERT VALUES语句中的无效日期现在将被正确拒绝,而不是被绕过。#69803 - 表达式分区生成列现在在
DESC和SHOW CREATE TABLE的输出中被隐藏。#69793 - 审计日志中不再包含 Client ID 信息。#69383
REFRESH EXTERNAL TABLE的FORCE选项已回滚,不再支持。#70428
功能优化
- 支持通过将
desc_hint_split_range设置为0或更小的值来禁用降序 TopN 的分割和反向扫描范围。#70307 information_schema现在可以显示外部 Catalog 表的注释信息。#70197- 在 Trino 方言中为
INSERT语句添加了EXPLAIN和EXPLAIN ANALYZE支持。#70174 - 为
CatalogRecycleBin添加了可配置参数以控制回收站行为。#69838 - 改进了
ADMIN REPAIR TABLE和SHOW TABLET STATUS,提供更好的修复和状态信息。#69656 - 黑名单中的查询现在从错误指标中排除。#69621
- 在存算分离模式下新增对云原生 Tablet 的
SHOW TABLET STATUS支持。#69616 - 降低了存算分离模式下主键表 Tablet 统计信息收集的开销。#69548
- 支持动态配置执行状态汇报线程池大小。#69142
问题修复
修复了以下问题:
- 恢复 Tablet 时数据版本未设置。#70373
- 创建 Hive 表时表注释未设置。#70318
- 双精度常量折叠产生
INF而非返回错误。#70309 - Iceberg 物化视图刷新在快照时间戳非单调递增时失败。#70382
toIcebergTable函数属性映射中common应为comment。#70267- Root 用户在某些场景下未正确绕过 Ranger 权限检查。#70254
AuditEventProcessor线程在发生OutOfMemoryException时意外退出。#70206- Schema Change 发布过程中
cal_new_base_version存在越界访问。#70132 - 由于边界比较中的类型不匹配,分区谓词被意外裁剪。#70097
- BE 运行时
str_to_date丢失微秒精度。#70068 - 调用
set_callback_function时 Join Spill 进程崩溃。#70030 - 从 bthread 上下文调用
DeltaWriter::close()时出现 DCHECK 失败。#69960 AsyncDeltaWriter关闭/完成生命周期中存在 use-after-free 竞态条件。#69940- Follower FE 的
changeCatalogDb中未等待 Journal 回放完成导致一致性问题。#69834 - 竞态条件导致写入事务完成的 editlog 丢失。#69899
- 修复了若干已知 CVE 漏洞。#69863
- 包含反斜杠转义序列的 LIKE 模式匹配不正确。#69775
- 重命名分区列后表达式分析失败。#69771
AsyncDeltaWriter::close中存在 use-after-free 崩溃。#69770Partition.hasStorageData结果不正确导致PartitionColumnMinMaxRewriteRule中存在潜在 Bug。#69751- 文件 Sink 输出文件名中出现重复的 CSV 压缩后缀。#69749
- Lake
capture_tablet_and_rowsets操作在未启用实验性配置的情况下可访问。#69748 - 主键表 SST 缓存损坏。#69693
AsyncFlushOutputStream中存在 use-after-free。#69688disableRecoverPartitionWithSameName中保留时钟重置不正确且扫描不完整。#69677SchemaBeTabletsScanner中未根据运行模式正确获取 Tablet 信息。#69645- Shadow Partition 存在时分区最小值裁剪不正确。#69641
- 优雅退出后不同事务发布了相同版本。#69639
get_column_values中当rssid未找到时存在迭代器未定义行为。#69617KILL ANALYZE语句有时无法停止正在运行的ANALYZE TABLE操作。#69592- 分区表物化视图强制刷新的若干 Bug。#69488
3.5.14
发布日期:2026 年 3 月 5 日
功能优化
- 为 Lake 表中的 Primary Key 索引新增 SST 读写失败指标。#69513
- 新增 “segment file not found” 错误计数指标。#69543
- 从包含
convert_tz的标量子查询中提取范围谓词。#69055 - Paimon 表支持复杂类型。#66784
- 延迟远程 Load 的 Spill Directory 删除。#68803
- 支持修复云原生表。#67108
- 支持向 CSV 格式的 Hive 表插入 ARRAY 类型数据。#67355
问题修复
已修复以下问题:
RowGroupWriter异常导致的异常行为问题。#69568- 聚合表/更新表在执行 Schema Change 后,排序键未包含新添加的 Key 列。#69529
- 指标值
g_publish_version_failed_tasks在resource_busy状态下无法反映真实情况。#69526 - 在将主键表 Tablet 移动到回收站时,Rowset 文件被误删除。#69438
- 并发执行 SWAP 后,基于名称查找表导致
addPartitions出现锁泄漏。#69284 isInternalCancelError使用了equals而非startsWith。#69523- 当
_writer->Close()抛出除ParquetStatusException以外的异常时,Pipeline 可能阻塞或崩溃。#69492 - Hadoop-client 库缺陷。#69503
- 写入操作失败时错误地返回成功。#69473
- CVE-2025-67721 漏洞。#69138
- 存算分离集群中低基数优化下 RuntimeFilter 问题。#64669
- 物化视图 Tablet 元数据在 FE Leader 与 Follower 之间不一致。#69428
- Rollup 处理器在
computeMinActiveTxnId中未考虑活跃事务 ID。#69285 - 多 FE 场景下的 Arrow Flight Proxy 问题。#68300
- 函数字段的并发问题。#69315
DROP FUNCTION IF EXISTS忽略了ifExists标志。#69216- LDAP 认证中缺少对用户名的大小写不敏感标准化处理。#67966
- 某些类型的分区无法写入。#68221
- 由于共享可变状态导致物化视图重写时 Projection 丢失。#69063
- 查询表副本时分区大小写不敏感查找问题。#69173
- 同步物化视图在全 NULL 值处理上的问题。#69136
- 访问外部 Catalog 时
mv onReload相关问题。#68926 - 重复常量场景下 DISTINCT ORDER BY 别名问题。#69014
- 存算分离集群中修改 CHAR 列长度后查询结果错误。#68808
- Azure ABFS/WASB FileSystem 缓存键问题。#68901
- 常量侧列引用的 OUTER JOIN 谓词重写错误。#67072
IllegalArgumentException比较器传递性违规问题。#68743- 在
report_fragment中,查询生命周期短于 Fragment 导致的问题。#67219 - 共享
DecodeInfo导致的低基数重写空指针异常(NPE)。#68799 - 缺少
pcu_upt_cnt指标。#68845 - JSON flatten 在相同路径下数组与对象冲突问题。#68804
ClonExpr的 nullable 相关缺陷。#68800
3.5.13
发布日期:2026 年 2 月 13 日
功能优化
- 新增 FE 配置项
enable_table_metrics_collect,用于控制是否收集表级别指标。#68691 - 支持在用户级别为 Merge Commit 设置默认 Warehouse。#68616
问题修复
修复了以下问题:
- 复制事务中的源分区检查问题。#68883
- 在
BEGIN TRANSACTION中指定 Label 时,未正确识别已使用的 Label。#68660 - 带有 CTE 作用域的
JOIN ON子句相关的错误。#68809 - 在显式指定下界时,可能创建重叠的范围分区。#68255
- SQL 方言从 Trino 降级为 StarRocks 时解析器逻辑错误。#68725
- Projection Column 裁剪问题。#68242
- 子查询作用域检查问题。#68415
- 函数分析器中的类型转换不匹配问题。#66749
- 候选物化视图选择逻辑错误。#68571
- Thrift
accept线程在发生异常时退出。#68644 - Iceberg 数据文件大小估算不准确。#68787
- 数据湖表内存泄漏问题。#68678
- HMS 连接池满时发生死锁。#68033
- Iceberg Delete 列的 Nullability 问题。#68649
- 物化视图持有大型外部表问题。#68171
- Iceberg 表缓存内存限制问题。#67769
- PocoHttpClient 使用了错误的超时参数。#68765
- 使用 Clang 编译 BE 失败问题。#68805
- 启动期间物化视图被重复加载多次。#62351
- CVE-2025-27821。#68529
- 在某些场景下,可变参数函数返回错误的日期值。#67947
3.5.12
发布日期:2026 年 1 月 22 日
功能优化
- 为 BrpcStubCache 新增清理器,用于清理未使用的连接。 #61417
- 支持对统计信息删除(针对已删除表)以及 Edit Log 写请求进行批量处理。 #67896
- 在需要加密的情况下,审计日志中保留 SQL 注释。 #63298
- 在物化视图相关指标中新增
warehouse_name标签。 #67715 - 改进了 JDBC 表名和列名的标识符包裹处理。 #67853
- 为 Iceberg JDBC Catalog 新增
CLIENT_FACTORY属性。 #67613
问题修复
修复了以下问题:
- 在混合使用 DATE 和 DATETIME 类型时,可变参数函数返回错误的日期结果。 #67947
NormalizePredicateRule在非确定性表达式上的震荡问题。 #67923- Lambda 函数在低基数场景下的问题。 #67843
- 子字段表达式未收集子字段的问题。 #67850
- 在子节点统计信息缺失时,RBO Join Reorder 出现 NPE 的问题。 #67693
- 因 MemTable finalize 失败导致 BE 崩溃的问题。 #67787
- 在动态 overwrite 场景下,FE 重启后临时分区未被清理的问题。 #67629
- Compaction 的 I/O 统计信息不准确的问题。 #67524
- 复制事务过程中,跨集群物理分区比较逻辑不正确的问题。 #67616
- SQL Server 和 Oracle 标识符符号处理存在的问题。 #67965
- 由于配置未正确传递,Iceberg 元数据表查询中出现 NPE 的问题。 #67151
- 空 Parquet 或 ORC 文件场景下,
files()schema 检测存在的问题。 #67762 - 在 Hive 表上执行 UNION ALL 时,Profile 中的指标值不准确的问题。 #67912
- FE 查询场景下,缺乏通过 Arrow Flight 代理获取数据的支持。 #67794
- 由于
OlapTableSink::is_full()中的竞争条件导致在自动创建分区时 SIGSEGV 崩溃。#67566
3.5.11
发布日期:2026 年 1 月 5 日
功能改进
- 支持在节点不可访问的情况下通过 Arrow Flight 拉取数据。#66348
- 在 SIGTERM 处理器中记录终止原因(包括触发的进程信息)。#66737
- 新增 FE 配置项
enable_statistic_collect_on_update,用于控制 UPDATE 语句是否可以触发自动统计信息收集。#66794 - 支持配置
networkaddress.cache.ttl。#66723 - 改进 “no rows imported” 错误提示信息。#66624 #66535
- 针对大分区表,通过延迟计算优化
deltaRows。#66381 - 优化物化视图重写性能。#66623
- 在 Shared-Data 集群中支持单 Tablet 的
ResultSink优化。#66517 - 默认启用
rewrite_simple_agg_to_meta_scan。#64698 - 支持 GROUP BY 表达式下推以及基于 GROUP BY 的物化视图重写。#66507
- 新增重载的
newMessage方法,以改进物化视图相关日志。#66367
问题修复
已修复以下问题:
- 当输入 Rowset 不存在时,Publish Compaction 可能发生崩溃。#67154
- 在查询包含大量列的表时,反复调用
update_segment_cache_size导致 CPU 开销过大和锁竞争严重。#66714 MulticastSinkOperator卡在OUTPUT_FULL状态。#67153- Skew Join Hint 中出现 “column not found”。#66929
- Tablet 数量持续增长,且 pending 与 running tablet 之和不等于总 Tablet 数。#66718
- Leader 启动期间构建的 Compaction Map 中的事务无法被 CompactionScheduler 访问,且无法被清理。#66533
- Delta Lake 表刷新不生效。#67156
- 在对非分区 Iceberg 表使用 DATE 谓词查询时,CN 发生崩溃。#66864
- 提交多个 SQL 语句时,Profile 中语句无法正确显示。#67097
- 由于 Meta Reader 不支持读取 Delta 列组文件,导致统计信息收集时缺失字典信息。#66995
- Java UDAF 中潜在的 Java Heap OOM 问题。#67025
- 在未指定 PARTITION BY 和 ORDER BY 的情况下,Ranking Window 优化逻辑错误导致 BE 崩溃。#67081
- 时区缓存未命中时日志级别不正确。#66817
- 在合并 Runtime Filter 时,
can_use_bf校验逻辑错误导致崩溃和结果错误。#67021 - Runtime Bitset Filter 与其他 OR 谓词一起下推时。#66996
- 合入 lz4 的关键补丁修复。#67053
- AsyncTaskQueue 死锁问题。#66791
- ObjectColumn 中的缓存不一致。#66957
- RewriteUnnestBitmapRule 导致输出列类型错误。#66855
- Delta Writer 中,在 FINISH 任务之后仍存在 WRITE 或 FLUSH 任务时,可能导致数据竞争和数据丢失。#66943
- 重新打开已中止的导入通道导致 Load Channel 无效并产生误导性内部错误。#66793
- Arrow Flight SQL 的相关问题。#65889
- 使用 MetaScan 查询已重命名列时。#66819
- 在关闭倾斜消除的分区级可溢出聚合中,Flush Chunk 前未移除 Hash 列。#66839
- BOOLEAN 类型以字符串字面量存储时,默认值处理不正确。#66818
decimal2decimalCast 直接返回输入列作为结果的异常行为。#66773- Schema Change 过程中 Query Planning 阶段出现 NPE。#66811
- LocalTabletsChannel 与 LakeTabletsChannel 之间的死锁问题。#66748
- 新版 FE 中
publish_version日志显示空的txn_ids。#66732 - FE 配置项
statistic_collect_query_timeout行为不正确。#66363 - UPDATE 语句不支持统计信息收集。#66443
- 低基数场景下 CASE 重写相关错误。#66724
- 当列列表为空时,统计信息查询失败。#66138
- 通过 Hint 切换 Warehouse 时,使用量与记录不一致。#66677
ANALYZE TABLE语句缺少 ExecTimeout。#66361array_map在常量一元表达式场景下返回错误结果。#66514- FE 重启后外键约束丢失。#66474
- 在空表上执行
max(not null string)时抛出std::length_error。#66554 - 主键索引 Compaction 与 Apply 之间的并发问题。#66282
EXPLAIN <query>行为不正确。#66542- 将 DECIMAL128 写入 Iceberg 表列时。#66071
- JSON → CHAR/VARCHAR 转换时,当目标长度等于最小长度时的长度校验问题。#66628
- 表达式子节点数量错误。#66511
3.5.10
发布日期:2025 年 12 月 15 日
功能改进
- 支持在 BE 崩溃日志中输出执行计划节点 ID,加快问题算子定位速度。 #66454
- 优化了
information_schema中系统视图的扫描,降低系统开销。 #66200 - 新增两个直方图指标(
slow_lock_held_time_ms和slow_lock_wait_time_ms),以增强对慢锁场景的可观测性,并区分长时间持有锁与高锁竞争。 #66027 - 在 tablet 上报和克隆流程中,将副本锁的粒度从数据库级别调整为表级别,减少锁竞争并提升调度效率。 #61939
- 避免在 BE 存储层输出不必要的列,并将谓词计算下推至 BE 存储层执行。 #60462
- 在后台线程中下发 scan range 时,提升了查询 Profile 的统计准确性。 #62223
- 优化了额外任务下发时的 Profile 统计逻辑,避免 CPU 时间被重复计数。 #62186
- 当引用的分区不存在时,提供更详细的错误信息,便于问题诊断。 #65674
- 增强了采样型基数估计在边界场景下的健壮性,提升行数估计的准确性。 #65599
- 在加载统计信息时增加分区过滤,防止 INSERT OVERWRITE 读取过期的分区统计信息。 #65578
- 将 pipeline CPU
execution_time指标拆分为查询和导入两类时间序列,提升按工作负载类型的可观测性。 #65535 - 支持在表级别配置
enable_statistic_collect_on_first_load,以更细粒度地控制首次导入时的统计信息收集。 #65463 - 将依赖 S3 的单元测试从
PocoClientTest重命名为更明确的 S3 相关名称,以准确反映其依赖关系和用途。 #65524
Bug 修复
修复了以下问题:
- 在使用不兼容 JDK 启动 StarRocks 时,libhdfs 可能发生崩溃。 #65882
PartitionColumnMinMaxRewriteRule可能导致查询结果错误。 #66356- 通过 AST key 解析物化视图时,因物化视图元数据未刷新而导致的重写问题。 #66472
- trim 函数在处理特定 Unicode 空白字符时可能崩溃或返回错误结果。 #66428, #66477
- 仍然引用已删除 Warehouse 的导入元数据和 SQL 执行失败问题。 #66436
- 分组执行 Join 与窗口函数组合使用时可能产生错误结果。 #66441
resetDecommStatForSingleReplicaTabletUnlocked中可能出现 FE 空指针异常。 #66034- 在存算分离集群中,
LakeDataSource缺失 Join 运行时过滤器下推优化。 #66354 - 运行时过滤器传输相关参数(如超时、HTTP RPC 限制等)未正确下发至接收端,导致参数不一致。 #66393
- 当分区值已存在时,自动创建分区失败。 #66167
- 当谓词选择性较高时,审计日志中的扫描统计信息不准确。 #66280
- 由于将非确定性函数下推到算子下方,导致查询结果错误。 #66323
- CASE WHEN 表达式可能导致表达式数量指数级增长。 #66324
- 同一查询中多次引用同一表但使用不同分区谓词时,物化视图补偿存在问题。 #66369
- 在子进程中使用 fork 可能导致 BE 无响应。 #66334
- 修复了 CVE-2025-66566 和 CVE-2025-12183 安全漏洞。 #66453, #66362
- 嵌套 CTE 复用导致的错误。 #65800
- 缺少对冲突的 schema change 子句进行校验而引发的问题。 #66208
- Rowset 提交失败时,Rowset GC 行为不正确。 #66301
- Pipeline 计数递减过程中可能发生 use-after-free。 #65940
- Stream Load 场景下,
information_schema.loads中的Warehouse字段为空。 #66202 - 当被引用视图与其基表同名时,物化视图创建异常。 #66274
- 全局字典在某些场景下未能正确更新。 #66194
- 从 Follower 节点转发的查询,其 Profile 日志记录不正确。 #64395
- 在缓存 SELECT 结果并重排 schema 时可能导致 BE 崩溃。 #65850
- 使用表达式删除分区时,影子分区被错误删除。 #66171
- 当同一 tablet 存在 CLONE 任务时,仍然执行 DROP 任务。 #65780
- RocksDB 日志文件参数配置不当导致稳定性和可观测性问题。 #66166
- 物化视图补偿逻辑错误,可能产生 NULL 结果。 #66216
- 即使 BE 收到
SIGSEGV信号,仍被错误地上报为存活状态。 #66212 - Iceberg 扫描相关的缺陷。 #65658
- Iceberg 视图 SQL 测试用例的回归覆盖和稳定性问题。 #66126
- 由于
set_collector被重复调用而引发的异常行为。 #66199 - 在列模式部分更新与条件更新同时使用时,可能导致导入失败。 #66139
- 并发事务下临时分区值冲突。 #66025
- Iceberg 表缓存存在缺陷:即使
cache.size() == 0,Guava LocalCache 仍可能保留过期条目,导致刷新无效并返回过期表数据。 #65917 LargeInPredicateException中的格式化占位符错误,导致错误信息中 LargeInPredicate 实际数量显示不正确。 #66152- 当 connectContext 为空时,
ConnectScheduler的超时检查器可能抛出 NullPointerException。 #66136 - 线程池任务抛出的异常未被正确处理,可能导致进程崩溃。 #66114
- 在某些执行计划中下推 DISTINCT LIMIT 可能导致数据丢失。 #66109
multi_distinct_count在底层 HashSet 转换为两级 HashSet 后未更新distinct_size,可能导致去重结果错误。 #65916- Exec Group 提交下一个 Driver 时存在竞态条件,可能触发
Check failed: !driver->is_in_blocked()并导致 BE 进程退出。 #66099 - 并发执行 ALTER TABLE ADD COLUMN(带默认值)和 INSERT 时,由于新列默认表达式类型不匹配导致 INSERT 失败。 #65968
- 当 SparkSQL 提前退出并关闭
RecordBatchQueue后,MemoryScratchSinkOperator可能一直处于pending_finish状态,导致 Pipeline 挂起。 #66041 - 读取包含空 Row Group 的 Parquet 文件时可能发生 Core Dump。 #65928
- 在高 DOP 场景下,由于事件调度器就绪检查逻辑复杂,可能发生递归调用并引发栈溢出。 #66016
- 当 Iceberg 基表包含过期快照时,异步物化视图刷新会跳过更新。 #65969
- 优化器仅依赖 hashCode 区分谓词差异,导致谓词复用和重写存在潜在问题。 #65999
- 多级分区基表的异步物化视图刷新过程中,仅检查父分区元数据,导致子分区更新被跳过。 #65596
- 统计信息收集问题:对空结果集执行 AVG(ARRAY_LENGTH(...)) 可能返回 NULL。 #65788
- BE 和 FE 在增量更新运行时 Profile 计数器时,min/max 值未正确更新或清理。 #65869
- 创建集群快照时,获取 image journal ID 的逻辑不正确,可能导致快照使用错误的日志位置。 #65970
- 由于文件清理错误处理中的状态检查逻辑不正确,清理失败时结果被错误上报。 #65709
- DictMappingOperator 中
isVariable()在某些执行计划下可能进入死循环。 #65743 - 由于未将 ConnectContext 传递到 scan range 下发线程,导致审计日志和 Profile 数据缺失。 #63544
- 存储引擎停止时,本地主键索引管理器可能发生 use-after-free。 #65534
- 动态覆盖模式下的 INSERT OVERWRITE 存在统计信息收集问题。 #65657
- DiskAndTabletLoadReBalancer 中使用粗粒度锁引发的并发问题。 #65557
- 由于关键锁缺乏慢锁检测,慢锁无法被正确识别和上报。 #65559
- 目标数据库已被删除时,回放 upsert 事务状态可能触发 NullPointerException。 #65595
- INSERT OVERWRITE 触发统计信息收集后,未清理旧的分区统计信息,导致使用了过期统计数据。 #65586
- 分区 ID 分配存在数据竞争,在并发场景下可能导致 ID 冲突。 #65608
- 获取初始 Tablet 元数据时缺失部分 Tablet ID。 #65550
- 审计日志和 Profile 中 PREPARE / EXECUTE 语句的记录信息不正确。 #65448
- 非线程安全的
has_output函数被多个线程调用,可能导致崩溃。 #65514 - 缺少
memtable_finalize_task_total计数器指标,导致 MemTable finalize 任务无法被正确跟踪。 #65548 - Arrow Flight 中查询 ID 冲突,导致多个查询未能共享同一个查询 ID。 #65558
TabletChecker.doCheck()与其他操作之间存在锁冲突。 #65237- 存算分离与存算一体数据集群之间的扫描行为不一致,导致查询语义差异。 #61100
3.5.9
发布日期:2025 年 11 月 26 日
功能优化
- 在 FE 中新增事务延迟指标,用于观察事务各阶段的耗时。#64948
- 支持覆盖写入 S3 上的非分区 Hive 表,简化数据湖场景下的整表重写。#65340
- 引入 CacheOptions,以提供对 Tablet 元数据缓存的更细粒度控制。#65222
- 支持对 INSERT OVERWRITE 采集样本统计,以确保统计信息与最新数据一致。#65363
- 优化 INSERT OVERWRITE 后的统计信息收集策略,避免因 Tablet 异步上报导致统计信息缺失或不正确。#65327
- 对 INSERT OVERWRITE 或物化视图刷新操作中被删除或替换的分区引入保留期,在回收站中保留一段时间以提升可恢复性。#64779
问题修复
以下问题已修复:
- 与
LocalMetastore.truncateTable()相关的锁竞争和并发问题。#65191 - 与 TabletChecker 相关的锁竞争及副本检查性能问题。#65312
- 通过 HTTP SQL 切换用户时日志记录错误。#65371
- 由于 DelVec CRC32 升级兼容性问题导致的校验失败。#65442
- 因 RocksDB 迭代器超时导致的 Tablet 元数据加载失败。#65146
- 当 JSON 超路径
$或所有路径被跳过导致内部flat_path字符串为空时,调用substr会抛异常并导致 BE 崩溃。#65260 - Fragment 执行中的 PREPARED 标记未正确设置。#65423
- 由于重复的 Load Profile 计数导致 Write 和 Flush 指标不准确。#65252
- 当多个 HTTP 请求复用同一 TCP 连接时,如果在 ExecuteSQL 请求后到达一个非 ExecuteSQL 请求,会导致通道关闭时
HttpConnectContext无法注销,从而引发 HTTP Context 泄漏。#65203 - MySQL 8.0 架构探查错误(通过添加会话变量
default_authentication_plugin和authentication_policy修复)。#65330 - 在分区重写后创建的临时分区上多余的统计收集导致 SHOW ANALYZE STATUS 报错。#65298
- Event Scheduler 中 Global Runtime Filter 的竞争问题。#65200
- 由于 Data Cache 的最小磁盘大小限制过大,导致 Data Cache 被过度禁用。#64909
- 与
goldLinker 自动回退相关的 aarch64 构建问题。#65156
3.5.8
发布日期:2025 年 11 月 10 日
功能优化
- 将 Arrow 升级至 19.0.1,以支持 Parquet 旧版 LIST 编码格式,从而兼容嵌套和复杂文件。 #64238
- FILES() 支持 Parquet 旧版 LIST 编码。 #64160
- 根据会话变量和插入列数量自动确定 Partial Update 模式。 #62091
- 在表函数之上的分析算子中应用低基数优化。 #63378
- 为
finishTransaction新增可配置的表锁超时设置,以避免阻塞。 #63981 - 存算分离集群支持获取表级扫描指标。 #62832
- 窗口函数 LEAD/LAG/FIRST_VALUE/LAST_VALUE 现在支持 ARRAY 类型参数。 #63547
- 支持多种数组函数的常量折叠,以提升谓词下推和 Join 简化性能。 #63692
- 支持批量 API 优化
SHOW PROC /backends/{id}中获取指定节点的tabletNum。新增 FE 配置项enable_collect_tablet_num_in_show_proc_backend_disk_path(默认值:true)。 #64013 - 确保
INSERT ... SELECT在执行前刷新外部表,以读取最新元数据。 #64026 - 在表函数、NL Join Probe、Hash Join Probe 中增加
capacity_limit_reached检查,以避免构造超限列。 #64009 - 新增 FE 配置项
collect_stats_io_tasks_per_connector_operator(默认值:4),用于设置收集外部表统计信息的最大任务数。 #64016 - 采样收集的默认分区大小从 1000 调整为 300。 #64022
- 锁表槽数量增加至 256,并在慢锁日志中增加
rid字段。 #63945 - 提升 Gson 反序列化在处理旧版数据时的健壮性。 #63555
- 缩小 FILES() 模式下推的元数据锁范围,以降低锁竞争并减少计划延迟。 #63796
- 新增 Task Run 执行超时检查机制,通过引入 FE 配置项
task_runs_timeout_second,并优化超时任务的取消逻辑。 #63842 - 确保
REFRESH MATERIALIZED VIEW ... FORCE始终刷新目标分区,即使在不一致或损坏的情况下。 #63844
问题修复
修复了以下问题:
- 解析 ClickHouse 的 Nullable (Decimal) 类型时出现异常。 #64195
- Tablet 迁移与主键索引查找的并发问题。 #64164
- 物化视图刷新缺少 FINISHED 状态。 #64191
- 存算分离集群中 Schema Change Publish 无法重试。 #64093
- 数据湖中主键表的行数统计错误。 #64007
- 存算分离集群中 Tablet 创建超时时无法返回节点信息。 #63963
- Lake Data Cache 损坏后无法清理。 #63182
- 带 IGNORE NULLS 标志的窗口函数无法与不带该标志的函数合并。 #63958
- 如果 Compaction 任务在 FE 重启前中止,则重启后无法重新调度。 #63881
- FE 频繁重启时任务调度失败。 #63966
- GCS 错误码处理问题。 #64066
- StarMgr gRPC 执行器的不稳定问题。 #63828
- 创建独占 Worker Group 时的死锁问题。 #63893
- Iceberg 表缓存未正确失效。 #63971
- 存算分离集群中排序聚合结果错误。 #63849
PartitionedSpillerWriter::_remove_partition中的 ASAN 错误。 #63903- 获取 Morsel 队列分片失败时 BE 崩溃。 #62753
- 物化视图改写中聚合下推类型转换错误。 #63875
- FE 中删除过期导入作业时报 NPE。 #63820
- 删除分区时的 Partitioned Spill 崩溃问题。 #63825
- 某些计划下物化视图改写抛出
IllegalStateException。 #63655 - 创建分区物化视图时发生 NPE。 #63830
3.5.7
发布日期:2025年10月21日
功能优化
- 通过在内存竞争严重的情况下引入重试回退机制,提升了 Scan Operator 的内存统计准确性。#63788
- 通过利用现有的分区分布,优化了物化视图桶的推理,防止了过多桶的创建。#63367
- 修改了 Iceberg 表缓存机制,提高了一致性并减少了频繁元数据更新时的缓存失效风险。#63388
- 在
QueryDetail和AuditEvent中增加了querySource字段,以便更好地追踪查询来源,跨 API 和调度器。#63480 - 通过在 MemTable 写入时检测到 Duplicate Key 时打印详细的上下文,增强了持久化索引诊断功能。#63560
- 通过优化锁粒度和并发场景中的顺序,减少了物化视图操作中的锁竞争。#63481
问题修复
修复了以下问题:
- 由于类型不匹配导致的物化视图重写失败。#63659
regexp_extract_all行为不正确,且不支持pos=0。#63626- 由于对带有复杂函数的 CASE WHEN 简化不当,导致扫描性能下降。#63732
- 在部分更新时,从列模式切换到行模式时,DCG 数据读取不正确。#61529
- 初始化
ExceptionStackContext时可能发生死锁。#63776 - ARM 架构机器上 Parquet 数值转换崩溃。#63294
- 聚合中间类型使用
ARRAY<NULL_TYPE>引发的问题。#63371 - 在边缘情况下(例如,INT128_MIN)将 LARGEINT 转换为 DECIMAL128 时,溢出检测不正确导致的稳定性问题。#63559
- 无法感知 LZ4 压缩和解压缩错误。#63629
- 查询由
FROM_UNIXTIME分区的表时,出现ClassCastException。#63684 - 当唯一有效的源副本被标记为
DECOMMISSION时,平衡触发迁移后的分区无法修复。#62942 - 使用 PREPARE 语句时,Profile 丢失 SQL 语句和 Planner Trace。#63519
extract_number,extract_bool和extract_string函数不具备异常安全性。#63575- 关闭的分区无法正确进行垃圾回收。#63595
PREPARE/EXECUTE语句的返回结果在 Profile 中显示为omit。#62988date_trunc的分区裁剪与组合谓词错误地产生了 EMPTYSET。#63464NullableColumn中的 CHECK 导致 Release Build 发生崩溃。#63553
3.5.6
发布日期: 2025年9月22日
功能优化
- 当被 Decommission 的 BE 的所有 Tablet 都在回收站中时,会强制删除该 BE,以避免 Decommission 过程被这些 Tablet 阻塞。 #62781
- 当 Vacuum 成功时会更新 Vacuum 指标。 #62540
- 在 Fragment 实例执行状态报告中新增线程池指标,包括活动线程数、队列数量和运行线程数。 #63067
- 在存算分离集群中支持 S3 路径风格访问,以提升与 MinIO 等 S3 兼容存储系统的兼容性。可在创建存储卷时将
aws.s3.enable_path_style_access设置为true以启用。 #62591 - 支持通过
ALTER TABLE <table_name> AUTO_INCREMENT = 10000;重置 AUTO_INCREMENT 值的起始点。 #62767 - 在 Group Provider 中支持使用 Distinguished Name (DN) 进行组匹配,以改善 LDAP/Microsoft Active Directory 环境下的用户组方案。 #62711
- 支持 Azure Data Lake Storage Gen2 的 Azure Workload Identity 认证。 #62754
- 在
information_schema.loads视图中新增事务错误消息,以便于故障诊断。 #61364 - 支持在包含复杂 CASE WHEN 表达式的 Scan 谓词中复用公共表达式,以减少重复计算。 #62779
- 使用 REFRESH 权限(而不是 ALTER 权限)来执行 REFRESH 语句。 #62636
- 默认禁用 Lake 表的低基数优化,以避免潜在问题。 #62586
- 默认启用存算分离集群中不同 Worker 之间的 Tablet 负载均衡。 #62661
- 支持在外连接 WHERE 谓词中复用表达式,以减少重复计算。 #62139
- 在 FE 中新增 Clone 指标。 #62421
- 在 BE 中新增 Clone 指标。 #62479
- 新增 FE 配置项
enable_statistic_cache_refresh_after_write,默认禁用统计缓存的延迟刷新。 #62518 - 在 SUBMIT TASK 中屏蔽凭据信息,以提高安全性。 #62311
- Trino 方言下的
json_extract返回 JSON 类型。 #59718 - 在
null_or_empty中支持 ARRAY 类型。 #62207 - 调整 Iceberg 清单缓存的大小限制。 #61966
- 为 Hive 新增远程文件缓存限制。 #62288
问题修复
修复了以下问题:
- 由于负超时值导致时间戳比较错误,次副本会无限期挂起。 #62805
- 当 TransactionState 为 REPLICATION 时,PublishTask 可能被阻塞。 #61664
- 在物化视图刷新过程中,Hive 表被删除并重新创建时的修复机制错误。 #63072
- 物化视图聚合下推改写后生成了错误的执行计划。 #63060
- PlanTuningGuide 在查询配置文件中生成无法识别的字符串(null explainString),导致 ANALYZE PROFILE 失败。 #63024
hour_from_unixtime的返回类型不正确,CAST的改写规则错误。 #63006- Iceberg 清单缓存中在数据竞争情况下出现 NPE。 #63043
- 存算分离集群缺乏物化视图的 Colocation 支持。 #62941
- Scan Range 部署期间 Iceberg 表扫描异常。 #62994
- 基于视图的改写生成了错误的执行计划。 #62918
- Compute Node 未在退出时正常关闭,导致错误和任务中断。 #62916
- Stream Load 执行状态更新时出现 NPE。 #62921
- 当列名与 PARTITION BY 子句中的名称大小写不一致时,统计信息出错。 #62953
- 当
LEAST函数用作谓词时返回错误结果。 #62826 - 在表裁剪边界 CTEConsumer 之上的 ProjectOperator 无效。 #62914
- Clone 后副本处理冗余。 #62542
- 无法收集 Stream Load 配置文件。 #62802
- 由于错误的 BE 选择导致磁盘再平衡无效。 #62776
- 当缺少
tablet_id导致 delta writer 为 null 时,LocalTabletsChannel 中可能发生 NPE 崩溃。 #62861 - KILL ANALYZE 不生效。 #62842
- 当 MCV 值包含单引号时,直方图统计中的 SQL 语法错误。 #62853
- Prometheus 指标输出格式错误。 #62742
- 在删除数据库后查询
information_schema.analyze_status时出现 NPE。 #62796 - CVE-2025-58056。 #62801
- 执行 SHOW CREATE ROUTINE LOAD 时,如果未指定数据库,会被视为 null,从而返回错误结果。 #62745
- 在
files()中错误跳过 CSV 头部导致数据丢失。 #62719 - 回放批量事务 upsert 时发生 NPE。 #62715
- 在存算一体集群中优雅关闭期间,Publish 被错误地报告为成功。 #62417
- 由于空指针导致异步 delta writer 崩溃。 #62626
- 在恢复任务失败后,由于未清除物化视图版本映射,跳过物化视图刷新。 #62634
- 物化视图分析器中区分大小写的分区列校验引发问题。 #62598
- 语法错误的语句生成重复的 ID。 #62258
- CancelableAnalyzeTask 中冗余状态赋值覆盖了 StatisticsExecutor 状态。 #62538
- 统计信息收集产生错误的错误消息。 #62533
- 外部用户的默认最大连接数不足,导致过早限流。 #62523
- 物化视图备份和恢复操作中可能出现 NPE。 #62514
http_workers_num指标不正确。 #62457- 构建运行时过滤器时未能找到对应的执行组。 #62465
- 在 Scan 节点中,由于简化了包含复杂函数的 CASE WHEN,导致结果冗余。 #62505
gmtime线程不安全。 #60483- 获取 Hive 分区时对转义字符串处理错误。 #59032
3.5.5
发布日期: 2025 年 9 月 5 日
功能优化
- 新增系统变量
enable_drop_table_check_mv_dependency(默认值:false)。设置为true后,若被删除的对象被下游物化视图所依赖,系统将阻止执行该DROP TABLE/DROP VIEW/DROP MATERIALIZED VIEW操作。错误信息会列出依赖的物化视图,并提示查看sys.object_dependencies视图获取详细信息。#61584 - 日志新增构建的 Linux 发行版与 CPU 架构信息,便于问题复现与排障。相关日志格式为
... build <hash> distro <id> arch <arch>。#62017 - 通过在每个 Tablet 缓存持久化索引与增量列组文件大小,替代按需目录扫描,加速 BE 的 Tablet 状态上报并降低高 I/O 场景延迟。 #61901
- 将 FE 与 BE 日志中多处高频 INFO 日志降级为 VLOG,并对任务提交日志做聚合,显著减少存储相关冗余日志与高负载下的日志量。#62121
- 通过
information_schema数据库查询 External Catalog 元数据时,通过将表过滤下推到调用getTable之前,加速此类查询,避免逐表 RPC,并提升性能。#62404
问题修复
修复了以下问题:
- 在 Plan 阶段获取分区级列统计信息时,因缺失而产生 NullPointerException 的问题。#61935
- Parquet 写出在 NULL 数组非零大小场景下的问题,并纠正
SPLIT(NULL, …)行为保持输出为 NULL,避免数据损坏与运行时错误。#61999 - 创建使用
CASE WHEN表达式的物化视图时,因 VARCHAR 类型返回不兼容导致的失败(修复后,系统确保刷新前后一致性,新增 FE 配置transform_type_prefer_string_for_varchar以优先用 STRING,避免长度不匹配)。#61996 - 当
enable_rbo_table_prune为false时,在表裁剪时系统无法在 memo 之外计算嵌套 CTE 统计信息的问题。#62070 - Audit Log 中,INSERT INTO SELECT 语句的 Scan Rows 结果不准确。#61381
- 初始化阶段出现 ExceptionInInitializerError/NullPointerException 问题,导致启用 Query Queue v2 时 FE 重启失败。 #62161
- BE 在
LakePersistentIndex初始化失败时因清理_memtable而崩溃。#62279 - 物化视图刷新时创建者的所有角色未被激活导致的权限问题(修复后,新增 FE 配置
mv_use_creator_based_authorization,设置为false时系统以 root 身份刷新物化视图,用于适配 LDAP 验证方式的集群)。#62396 - 因 List 分区表名仅大小写不同而导致的物化视图刷新失败(修复后,对分区名实施大小写不敏感的唯一性校验,与 OLAP 表语义一致)。#62389
3.5.4
发布日期: 2025年8月22日
功能优化
- 增加日志以明确 Tablet 无法修复的原因。 #61959
- 优化日志中的 DROP PARTITION 信息。 #61787
- 为统计信息未知的表分配一个较大但可配置的行数,用于统计估算。 #61332
- 增加基于标签位置的均衡统计。 #61905
- 增加 Colocate Group 均衡统计以提升集群监控能力。 #61736
- 当健康副本数超过默认副本数时,跳过 Publish 等待阶段。 #61820
- 在 Tablet 报告中加入 Tablet 信息的收集时间。 #61643
- 支持写入带标签的 Starlet 文件。 #61605
- 支持通过 SHOW PROC 查看集群均衡统计。 #61578
- 升级 librdkafka 至 2.11.0 以支持 Kafka 4.0,并移除废弃配置。 #61698
- 在 Stream Load 事务接口中新增
prepared_timeout配置。 #61539 - 升级 StarOS 至 v3.5-rc3。 #61685
问题修复
修复了以下问题:
- 随机分布表的 Dict 版本错误。 #61933
- 在 Context Condition 中的 Query Context 错误。 #61929
- ALTER 操作中因 Shadow Tablet 的同步 Publish 导致 Publish 失败。 #61887
- 修复 CVE-2025-55163 漏洞。 #62041
- 从 Apache Kafka 实时导入数据时发生内存泄漏。 #61698
- Lake Persistent Index 中 Rebuild 文件数量统计错误。 #61859
- 在生成表达式列上收集统计信息导致跨库查询失败。 #61829
- Query Cache 在存算一体集群中不一致,导致结果不一致。 #61783
- CatalogRecycleBin 保留已删除分区信息导致内存占用过高。 #61582
- SQL Server JDBC 连接在超时超过 65,535 毫秒时失败。 #61719
- 安全集成未能加密密码,导致敏感信息泄露。 #60666
- Iceberg 分区列上的
MIN()和MAX()异常返回 NULL。 #61858 - 含不可下推子字段的 Join 谓词被错误改写。 #61868
- 取消 QueryContext 可能导致 use-after-free。 #61897
- CBO 表裁剪逻辑错误忽略其他谓词。 #61881
COLUMN_UPSERT_MODE部分更新将自增列覆盖为 0。 #61341- JDBC TIME 类型转换使用错误的时区偏移,导致时间值错误。 #61783
- Routine Load 作业未序列化
max_filter_ratio。 #61755 - Stream Load 的
now(precision)函数存在精度参数丢失。 #61721 - 取消查询可能导致“query id not found”错误。 #61667
- LDAP 认证在查询过程中可能漏报 PartialResultException 导致查询结果不完整。 #60667
- 查询条件包含 DATETIME 时,Paimon Timestamp 的时区转换错误。 #60473
3.5.3
发布日期: 2025 年 8 月 11 日
功能优化
- Lake Compaction 增加 Segment 写入耗时统计信息。#60891
- 禁用 Data Cache 写入的 inline 模式以避免性能下降。#60530
- Iceberg 元数据扫描支持共享文件 I/O。#61012
- 支持终止所有 PENDING 状态的 ANALYZE 任务。#61118
- CTE 节点过多时强制复用以避免优化耗时过长。#60983
- 集群均衡结果中新增
BALANCE类型。#61081 - 优化含外部表的物化视图改写。#61037
- 系统变量
enable_materialized_view_agg_pushdown_rewrite默认值修改为true,即默认为物化视图查询改写启用聚合函数下推。 #60976 - 优化分区统计锁竞争。#61041
问题修复
修复了以下问题:
- 列裁剪后 Chunk 列大小不一致。#61271
- 非异步执行分区统计加载可能造成死锁。#61300
array_map处理常量数组列时崩溃。#61309- 将自增列设为 NULL 时,系统错误拒绝同一 Chunk 内的有效数据。#61255
- JDBC 实际连接数可能超过
jdbc_connection_pool_size限制。#61038 - FQDN 模式下未使用 IP 地址作为缓存键。#61203
- 数组比较过程中数组列克隆错误。#61036
- 部署序列化线程池阻塞导致查询性能下降。#61150
- 心跳重试计数器重置后 OK 响应未同步。#61249
hour_from_unixtime函数结果错误。#61206- ALTER TABLE 任务与分区创建冲突。#60890
- 从 v3.3 升级至 v3.4 或更新版本后缓存不生效。#60973
- 向量索引指标
hit_count未设置。#61102 - Stream Load 事务导入无法找到协调节点。#60154
- BE 在加载 OOM 分区时崩溃。#60778
- 手动创建的分区在执行 INSERT OVERWRITE 时失败。#60858
- 当分区的值不同但名称在不区分大小写的情况下相同时,分区创建失败。 #60909
- 不支持 PostgreSQL UUID 类型。#61021
- 通过
FILES()导入 Parquet 数据时列名大小写敏感的问题。#61059
3.5.2
发布日期: 2025 年 7 月 18 日
功能优化
- 为数组列实现了 NDV 统计信息采集,以提高查询计划的准确性。#60623
- 禁止存算分离集群中 Colocate 表的副本均衡以及 Tablet 调度,减少无用的日志输出。#60737
- 优化 Catalog 访问机制,在 FE 启动时,系统默延迟异步访问外部数据源,避免外部服务不可用导致 FE 启动卡死。 #60614
- 新增 Session 变量
enable_predicate_expr_reuse以控制是否开启谓词下推。 #60603 - 支持获取 Kafka Partition 信息失败后重试。#60513
- 移除物化视图和基表的分区列必须一对一匹配的限制。#60565
- 支持构建 Runtime In-Filter 增强聚合操作,通过在聚合阶段过滤数据来优化查询性能。#59288
问题修复
修复了以下问题:
- 低基数优化导致多列 COUNT DISTINCT 查询 Crash。 #60664
- 当存在多个同名全局用户定义函数(UDF)时,系统错误匹配这些函数。#60550
- Stream Load 导入时的空指针问题。#60755
- 使用集群快照进行恢复时 FE 启动报空指针问题。#60604
- 在处理乱序值列的短路查询时因读取列模式不匹配导致的 BE 崩溃。#60466
- 在 SUBMIT TASK 语句中通过 PROPERTIES 设置 Session 变量不生效。#60584
- SELECT min/max 查询在部分条件下查询结果不正确。#60601
- 当谓词左侧为函数时,系统调用错误的分片裁剪逻辑,导致查询命中错误的 bucket 进而导致查询结果不正确。#60467
- 通过 Arrow Flight SQL 协议查询不存在的
query_id导致系统崩溃。 #60497
行为变更
lake_compaction_allow_partial_success默认值变更为true。Compaction 操作在部分成功后可以标记为成功,避免阻塞后续的 Compaction 任务。 #60643
3.5.1
发布日期:2025 年 7 月 1 日
新增特性
- [Experimental] StarRocks 自 3.5.1 版本起,引入基于 Apache Arrow Flight SQL 协议的高性能数据传输链路,全面优化数据读取路径,显著提升传输效率。该方案打通了从 StarRocks 列式执行引擎到客户端的全链路列式传输,避免了传统 JDB 和 ODBC 接口中频繁的行列转换与序列化开销,真正实现了零拷贝、低延迟、高吞吐的数据传输能力。#57956
- Java Scalar UDF(用户自定义函数)的输入参数支持 ARRAY 和 MAP 类型。#55356
- 跨节点数据缓存共享功能:支持在计算节点之间通过网络共享远程数据湖上外表数据的缓存。当某个计算节点本地缓存未命中时,会优先尝试从同一集群内其他节点的缓存中获取数据,只有在集群内所有节点缓存均未命中的情况下,才会从远程存储重新拉取数据。此功能可有效降低在弹性扩缩容过程中缓存失效导致的性能抖动,确保查询性能稳定。新增 FE 配置参数
enable_trace_historical_node控制该行为,默认为false。 #57083 - Storage Volume 新增对 Google Cloud Storage (GCS) 的原生支持:支持以 GCS 作为后端存储卷,以及通过原生的 SDK 管理和访问 GCS 存储资源。#58815
功能优化
- 优化创建 Hive 外表失败时的报错信息。#60076
- 通过 Iceberg Metadata 中的
file_record_count优化count(1)查询性能。#60022 - 优化 Compaction 调度逻辑,避免在所有子任务都成功的情况下依然延迟调度的情况发生。#59998
- BE 和 CN 节点升级到 JDK17 后,新增
JAVA_OPTS="--add-opens=java.base/java.util=ALL-UNNAMED"。#59947 - 支持在 Kafka Broker 的 Endpoint 发生变更时通过 ALTER ROUTINE LOAD 命令修改
kafka_broker_list属性。#59787 - 支持通过参数精简 Docker Base Image 构建时的依赖。#59772
- 支持通过 Managed Identity 认证访问 Azure。#59657
- 优化通过
Files()函数查询外部数据时路径列重名的报错信息。#59597 - 优化 LIMIT 下推逻辑。#59265
问题修复
修复了如下问题:
- 当查询包含 Max 和 Min 且包含空分区时的分区裁剪的问题。#60162
- 物化视图改写查询时丢失 Null 分区的而导致的查询结果不正确问题。#60087
- Iceberg 外表使用基于
str2date函数的分区表达式时导致的刷新异常。#60089 - 使用 START END 方式创建的临时分区的分区范围不正确的问题。#60014
- Routine Load 指标在 非 Leader FE 节点上显示不正确的问题。#59985
- 执行包含
COUNT(*)窗口函数的查询会触发 BE/CN 崩溃。#60003 - 通过 Stream Load 导入时目标表表名包含中文时导入失败的问题。#59722
- 导入至三副本表时,某个 Secondary 副本导入失败而导致导入整体失败的问题。#59762
- SHOW CREATE VIEW 丢失参数的问题。#59714
行为变更
- 部分 FE 指标新增
is_leader标签。#59883
3.5.0
发布日期:2025 年 6 月 13 日
存算分离
- 存算分离集群支持生成列。#53526
- 存算分离集群中的云原生主键表支持重建指定索引,并优化了索引性能。#53971 #54178
- 优化了大规模数据导入的执行逻辑,避免因内存限制在 Rowset 中生成过多小文件。导入执行过程中,系统会将临时数据块进行合并,减少小文件的生成,从而提升导入后的查询性能,也减少了后续的 Compaction 操作,提升系统资源利用率。#53954
数据湖分析
- [Beta] 支持在集成 Hive Metastore 的 Iceberg Catalog 中创建 Iceberg 视图,并支持通过 ALTER VIEW 语句添加或修改 Iceberg 视图的 SQL 方言,以增强与外部系统的语法兼容性。#56120
- 支持 Iceberg REST Catalog 的嵌套命名空间。#58016
- 支持使用
IcebergAwsClientFactory在 Iceberg REST Catalog 创建 AWS 客户端以支持 Vended Credential。#58296 - Parquet Reader 支持使用 Bloom Filter 进行数据过滤。#56445
- 查询时,支持为 Parquet 格式的 Hive/Iceberg 表中低基数列自动创建全局字典。#55167
性能提升与查询优化
- 统计信息优化:
- 支持 Table Sample,通过对物理文件中的数据块采样,提升统计信息的准确性和查询性能。#52787
- 支持记录查询中的谓词列,便于进行有针对性的统计信息收集。#53204
- 支持分区级基数估算。系统复用了
_statistics_.column_statistics视图记录各分区的 NDV。#51513 - 支持多列联合 NDV 收集,用于优化 CBO 在列间存在关联场景下的查询计划生成。#56481 #56715 #56766 #56836
- 支持使用直方图估算 Join 节点的基数和 in_predicate 的选择率,提高数据倾斜场景下的估算精度。#57874
- 优化 Query Feedback 功能:结构相同但参数值不同的查询会归为同一类型,共享 Tuning Guide 信息。#58306
- 在特定场景下,支持使用 Runtime Bitset Filter 替代 Bloom Filter 进行优化。#57157
- 支持将 Join Runtime Filter 下推到存储层。#55124
- 支持 Pipeline Event Scheduler。#54259
分区管理
- 支持通过 ALTER TABLE 合并基于时间函数的表达式分区,提升存储效率和查询性能。#56840
- 支持为 List 分区表和物化视图设置分区 TTL(Time-to-live),并支持
partition_retention_condition属性以设置更灵活的分区删除策略。#53117 - 支持通过 ALTER TABLE 删除通用表达式指定的分区,便于批量删除。#53118
集群管理
- FE 编译的 Java 目标版本从 Java 11 升级至 Java 17,提升系统稳定性和性能。#53617
安全认证
- 支持基于 MySQL 协议的 SSL 加密连接。#54877
- 增强外部认证集成:
- 支持使用 OAuth 2.0 和 JSON Web Token(JWT)创建 StarRocks 用户。
- 支持安全集成机制,简化与外部认证系统(如 LDAP、OAuth 2.0、JWT)的集成。#55846
- 支持 Group Provider 从外部认证服务中获取用户组信息,并可用于认证和权限控制。支持从 LDAP、操作系统或文件中获取组信息。用户可通过
current_group()查询所属的组。#56670
物化视图
- 支持创建多个分区列的物化视图,实现更灵活的数据分区策略。#52576
- 支持将
query_rewrite_consistency设置为force_mv,强制系统在改写查询时使用物化视图,以保证性能的稳定性(可能牺牲部分数据实时性)。#53819
数据导入与导出
- 支持设置
pause_on_json_parse_error为true,在 JSON 解析失败时暂停 Routine Load 作业。#56062 - [Beta] 支持包含多个 SQL 语句的事务(目前仅支持 INSERT 语句)。用户可启动、提交或撤销事务,以实现多次导入操作的 ACID 事务保障。#53978
函数支持
- 引入系统变量
lower_upper_support_utf8(Session 级和全局级),增强大小写转换函数(如upper()、lower())对 UTF-8(特别是非 ASCII 字符)的支持。#56192 - 新增函数: