StarRocks version 4.0
warning
降级说明
-
升级至 v4.0 后,请勿直接将集群降级至 v3.5.0 和 v3.5.1,否则会导致元数据不兼容和 FE Crash。您必须降级到 v3.5.2 或更高版本以避免出现此问题。
-
在将集群从 v4.0.3 降级到 v3.5.2~v3.5.10 之前,请先执行以下语句:
SET GLOBAL enable_rewrite_simple_agg_to_meta_scan=false;
4.0.3
发布日期:2025 年 12 月 25 日
功能优化
- 支持对 STRUCT 数据类型使用
ORDER BY子句。#66035 - 支持创建带属性的 Iceberg 视图,并在
SHOW CREATE VIEW的输出中显示这些属性。#65938 - 支持通过
ALTER TABLE ADD/DROP PARTITION COLUMN修改 Iceberg 表的分区 Spec。#65922 - 支持在带窗口框架(例如
ORDER BY/PARTITION BY)的窗口函数中使用COUNT/SUM/AVG(DISTINCT)聚合,并提供优化选项。#65815 - 对 CSV 解析进行性能优化,对单字符分隔符使用
memchr。#63715 - 新增优化器规则,将 Partial TopN 下推到预聚合(Pre-Aggregation)阶段,以减少网络开销。#61497
- 增强 Data Cache 监控能力:
- 优化 Sort 和 Aggregation 算子,在 OOM 场景下支持更快速地释放内存。#66157
- 在 FE 中新增
TableSchemaService,用于存算分离集群中 CN 按需获取指定表结构。#66142 - 优化快速 Schema Evolution,在所有依赖的导入作业完成前保留历史 Schema。#65799
- 增强
filterPartitionsByTTL,正确处理 NULL 分区值,避免误过滤所有分区。#65923 - 优化
FusedMultiDistinctState,在重置时清理关联的 MemPool。#66073 - 在 Iceberg REST Catalog 中,将
ICEBERG_CATALOG_SECURITY属性检查改为大小写不敏感。#66028 - 在存算分离集群中新增 HTTP 接口
GET /service_id,用于获取 StarOS Service ID。#65816 - Kafka 消费者配置中使用
bootstrap.servers替代已废弃的metadata.broker.list。#65437 - 新增 FE 配置项
lake_enable_fullvacuum(默认值:false),用于禁用 Full Vacuum Daemon。#66685 - 将 lz4 库升级至 v1.10.0。#67080
问题修复
修复了以下问题:
latest_cached_tablet_metadata在批量 Publish 过程中可能导致版本被错误跳过。#66558- 在存算一体集群中,
CatalogRecycleBin中的ClusterSnapshot相对检查可能引发的问题。#66501 - 在 Spill 过程中向 Iceberg 表写入复杂数据类型(ARRAY / MAP / STRUCT)时导致 BE 崩溃。#66209
- 当 writer 初始化或首次写入失败时,Connector Chunk Sink 可能发生卡死。#65951
- Connector Chunk Sink 中,
PartitionChunkWriter初始化失败后,在关闭阶段触发空指针异常的问题。#66097 - 设置不存在的系统变量时未报错而是静默成功的问题。#66022
- Data Cache 损坏时,Bundle 元数据解析失败的问题。#66021
- 当结果为空时,MetaScan 在 count 列上返回 NULL 而非 0。#66010
- 对于早期版本创建的资源组,
SHOW VERBOSE RESOURCE GROUP ALL显示 NULL 而非default_mem_pool。#65982 - 禁用
flat_json表配置后,查询执行过程中抛出RuntimeException。#65921 - 在存算分离集群中,Schema Change 后将
min/max统计信息重写到 MetaScan 时导致的类型不匹配问题。#65911 - 在缺少
PARTITION BY和ORDER BY时,排名窗口优化导致 BE 崩溃的问题。#67093 - 合并运行时过滤器时,
can_use_bf判断不正确,可能导致错误结果或崩溃。#67062 - 将运行时 bitset 过滤器下推到嵌套 OR 谓词中导致结果不正确的问题。#67061
- DeltaWriter 完成后仍执行写入或 flush 操作,可能导致数据竞争和数据丢失的问题。#66966
- 将简单聚合重写为 MetaScan 时,由于 nullable 属性不匹配导致的执行错误。#67068
- MetaScan 重写规则中行数计算不正确的问题。#66967
- 由于 Tablet 元数据缓存不一致,批量 Publish 过程中版本可能被错误跳过。#66575
- HyperLogLog 操作中,内存分配失败时错误处理不当的问题。#66827
4.0.2
发布日期:2025 年 12 月 4 日
新增功能
- 新增资源组属性
mem_pool,允许多个资源组共享同一个内存池,并为该内存池设置联合内存限制。该功能向后兼容。如果未指定mem_pool,将使用default_mem_pool。#64112
功能优化
- 在启用 File Bundling 后减少 Vacuum 过程中的远程存储访问量。#65793
- File Bundling 功能会缓存最新的 Tablet 元数据。#65640
- 提升长字符串场景下的安全性与稳定性。#65433 #65148
- 优化
SplitTopNAggregateRule的逻辑,避免性能回退。#65478 - 将 Iceberg/DeltaLake 的表统计信息收集策略应用到其他外部数据源,以避免在单表场景下收集不必要的统计信息。#65430
- 在 Data Cache HTTP API
api/datacache/app_stat中新增 Page Cache 相关指标。#65341 - 支持 ORC 文件切分,从而并行扫描单个大型 ORC 文件。#65188
- 在优化器中增加 IF 谓词的选择率估算。#64962
- FE 支持对
DATE和DATETIME类型的hour、minute、second进行常量折叠。#64953 - 默认启用将简单聚合重写为 MetaScan。#64698
- 提升存算分离集群中多副本分配处理的可靠性。#64245
- 在审计日志和指标中暴露缓存命中率。#63964
- 使用 HyperLogLog 或采样方法估算直方图的分桶级别去重计数(NDV),从而为谓词和 JOIN 提供更准确的 NDV。#58516
- 支持 SQL 标准语义的 FULL OUTER JOIN USING。#65122
- 当优化 器超时时输出内存信息以辅助诊断。#65206
问题修复
以下问题已修复:
- DECIMAL56 的
mod运算相关问题。#65795 - Iceberg 扫描范围处理相关问题。#65658
- 临时分区与随机分桶下的 MetaScan 重写问题。#65617
JsonPathRewriteRule在透明物化视图改写后使用了错误的表。#65597- 当
partition_retention_condition引用了生成列时,物化视图刷新失败。#65575 - Iceberg min/max 值类型问题。#65551
- 当
enable_evaluate_schema_scan_rule设置为true时跨库查询information_schema.tables与views的问题。#65533 - JSON 数组比较时的整数溢出问题。#64981
- MySQL Reader 不支持 SSL。#65291
- 由于 SVE 构建不兼容导致的 ARM 构建问题。#65268
- 基于 Bucket-aware 执行的查询在分桶 Iceberg 表上可能卡住。#65261
- OLAP 表扫描缺少内存限制检查导致的错误传播与内存安全问题。#65131
行为变更
4.0.1
发布日期:2025 年 11 月 17 日