StarRocks version 2.5
2.5.22
发布日期:2024 年 6 月 20 日
功能优化
- 优化一个查询在建执行计划时的分区检查逻辑,对于涉及很多表的复杂查询,能减少较多时间。#46781
问题修复
修复了如下问题:
- 函数调用中没有处理内部子逻辑的错误。#42590
- 如果内部数据统计没有定期清理,将导致预估信息不准确,进而导致构建了不合理的查询计划,使得查询变慢、内存使用增加。#45839
- 使用非最新的直方图统计信息,可能会导致除零错误。(用户可以通过使用 Min/Max 的估计统计来避免)。#45614
2.5.21
发布日期:2024 年 5 月 15 日
功能优化
问题修复
修复了如下问题:
- 表进行 Schema Change 时,可能会导致前缀索引排序有问题,从而导致基于前缀索引的查询结果不对。#44941
- Routine Load 任务因 Kafka 集群异常而暂停后,后台还是会不停尝试连接该异常 Kafka,从而导致 StarRocks 集群上的其他消费正常 Kafka 消息的 Routine Load 任务无法消费。#45029
- 查询
information_schema
中的视图时,持有 db 锁的时间太长,导致查询时间整体变长。#45392 - 开启 Query Cache 后,SQL 有 Having 子句时可能会导致 BE 节点 crash。(可以先通过
set enable_query_cache=false
关闭 Query Cache 。)#43823 - Query Cache 开启时,一些查询可能会返回
All slotIds should be remapped
的错误信息。#42861
2.5.20
发布日期:2024 年 3 月 22 日
功能优化
参数变更
- BE 参数
update_compaction_size_threshold
默认值从 256 MB 调整为 64 MB,可以更快执行compaction。#42776
问题修复
修复了如下问题:
- 通过 StarRocks 外表同步数据时,第一次同步报错 "commit and publish txn failed",重试后成功,但相同的数据会导入两份。原因是 commit 超时按照失败处理了,导致做了两次。#25165
- RPC 传输资源会因为 GC 问题导致临时不可用。#41636
- 2.5 版本上的 array_agg() 对于 NULL 在序列化时的处理和 2.3 版本不一致,导致升级过程中查询结果不正确。#42639
- Query 中的异步任务算子 Sink Operator 退出处理有问题,导致 BE crash。#38662
- 对聚合表新增 DELETE SQL 任务后,因访问 tablet 元数据有竞争冲突,导致 BE crash。#42174
- 调用 UDF 时内存统计(MemTracker)使用有 Use-After-Free 问题,导致 BE crash。#41710
- 2.5 版本 unnest() 函数查询时不能使用别名,之前版本是可以的。#42138
2.5.19
发布日期:2024 年 2 月 8 日
新增特性
- 新增 Bitmap 取值的处理函数:serialize、deserialize、serializeToString。 #40162
功能优化
- 在刷新物化视图时,尝试自动激活失效的物化视图。 #38521
- 优化 BE 的日志打印,避免日志过多。 #22820 #36187
- 可以使用 Hive UDF 导入/导出/处理 StarRocks 中的 Bitmap 数据。 #40165 #40168
- 对于分区字段为 TIMESTAMP 类型的 Iceberg 表,新增
yyyy-MM-ddTHH:mm
和yyyy-MM-dd HH:mm
两种数据格式的支持。 #39986
问题修复
修复了如下问题:
- Spark Load 创建导入任务时,不指定 PROPERTIES 会导致空指针异常 (NPE)。 #38765
- INSERT INTO SELECT 偶尔会超时报错 "timeout by txn manager"。 #36688
- PageCache 内存占用在有些情况下会超过 BE 动态参数
storage_page_cache_limit
设定的阈值。 #37740 - 当基表删除重建后,异步物化视图刷新失败。 #38008 #38982
- SELECT INTO S3 偶尔会报错 "The tablet write operation update metadata take a long time"。 #38443
- 导入过程中某些操作会出现报错 "reached timeout"。 #36746
- DECIMAL 类型数据在 SHOW CREATE TABLE 中展示的和创建时不一致。 #39297
- 如果外表的分区列有取值是 null,查询时会导致 BE Crash。 #38888
- 从明细表删除数据时,如果 DELETE 语句的 WHERE 条件中有空格,数据删除后还能查到。 #39797
- 导入 ORC 文件中
array<string>
到 StarRocks 时转为array<json>
,可能引起 BE crash。 #39233 - 查询 Hive Catalog 某些情况下会出现卡住直到超时。 #39863
- 动态分区日期类型为小时的时候会创建失败。 #40256
- Flink 导入报错 "failed to call frontend service"。 #40710
2.5.18
发布日期:2024 年 1 月 10 日
新增特性
功能优化
- 使用 JDK 时 GC 算法默认采用 G1。#37498
- SHOW ROUTINE LOAD 返回结果中增加时间戳进度信息,展示各个分区当前消费消息的时间戳。#36222
行为变更
- 新增 Session 变量
enable_materialized_view_for_insert
,默认值为FALSE
,即物化视图默认不改写 INSERT INTO SELECT 语句中的查询。#37505 - 新增 Session 变量
enable_strict_order_by
。当取值为默认值TRUE
时,如果查询中的输出列存在不同的表达式使用重复别名的情况,且按照该别名进行排序,查询会报错,例如select distinct t1.* from tbl1 t1 order by t1.k1;
。该行为和 2.3 及之前版本的逻辑一致。如果取值为FALSE
,采用宽松的去重机制,把这类查询作为有效 SQL 处理。#37910
参数变更
- 新增 Session 变量
transaction_read_only
和tx_read_only
,设置事务的访问模式并且兼容 MySQL 5.7.20 以上的版本。#37249 - 新增 FE 配置项
routine_load_unstable_threshold_second
。#36222 - 新增 FE 配置项
http_worker_threads_num
,HTTP Server 用于处理 HTTP 请求的线程数。默认取值为 0。如果配置为负数或 0 ,线程数将设置为 CPU 核数的 2 倍。#37530 - 新增 BE 配置项
pindex_major_compaction_limit_per_disk
,配置每块盘 Compaction 的最大并发数,用于解决 Compaction 在磁盘之间不均衡导致个别磁盘 I/O 过高的问题,默认取值为 1。#37695
问题修复
修复了如下问题:
- 使用非数列 (NaN 列) 进行排序可能导致 BE crash。#30759
- 更新主键索引失败可能导致 "get_applied_rowsets failed"。#27488
- Hive Catalog 的元数据在 Hive 表新增字段后不会自动刷新。#37668
SELECT ... FROM ... INTO OUTFILE
导出至 CSV 时,如果 FROM 子句中包含多个常量,执行时会报错:"Unmatched number of columns"。#38045- 某些情 况下
bitmap_to_string
会因为转换时数据类型溢出导致查询结果错误。#37405
2.5.17
发布日期:2023 年 12 月 19 日
新增特性
- 新增了监控指标
max_tablet_rowset_num
(用于设置 Rowset 的最大数量),可以协助提前发现 Compaction 是否会出问题并及时干预,减少报错信息 “too many versions”的出现。#36539 - 新增如下 Bitmap 函数:subdivide_bitmap。 #35817
功能优化
- SHOW ROUTINE LOAD 返回结果中增加
OtherMsg
,展示最后一个失败的任务的相关信息。#35806 - 调整 Trash 文件的默认过期时间为 1 天(原来是 3 天)。#37113
- 优化主键表全部 Rowset 进行 Compaction 时的持久化索引更新性能,降低 I/O 负载。 #36819
- 优化主键表 Compaction Score 的取值逻辑,使其和其他类型的表的取值范围看起来更一致。 #36534
- 支持 MySQL 外部表和 JDBC Catalog 外部表的 WHERE 子句中包含关键字。#35917
- Spark Load 增加了 bitmap_from_binary 函数,支持导入 Binary Bitmap。 #36050
- bRPC 的超时时间从 1 小时改为等于 Session 变量
query_timeout
所设置的时间,避免 RPC 超时过久引起查询失败。 #36778
参数变更
- 新增 BE 配置项
enable_stream_load_verbose_log
,默认取值是false
,打开后日志中可以记录 Stream Load 的 HTTP 请求和响应信息,方便出现问题后的定位调试。#36113 - BE 配置项
update_compaction_per_tablet_min_interval_seconds
从静态参数改为动态参数。 #36819
问题修复
修复了如下问题:
- 查询在 Hash Join 时失败了,会引起 BE Crash。#32219
- 开启 FE 配置项
enable_collect_query_detail_info
后,FE 性能下降严重。#35945 - 向打开持久化索引的主键表中导入大量数据,有时会报错。 #34352
- 执行
./agentctl.sh stop be
时偶尔会出现 starrocks_be 进程未正常退出。 #35108 - ARRAY_DISTINCT 函数偶发 BE Crash。 #36377
- 某些情况下,物化视图刷新可能会出现死锁问题。#35736
- 某些特殊场景中,动态分区出现异常会导致 FE 无法重启。 #36846
2.5.16
发布日期:2023 年 12 月 1 日
问题修复
修复了如下问题:
- 特定场景下 Global Runtime Filter 可能会引发 BE crash。 #35776
2.5.15
发布日期:2023 年 11 月 29 日
功能优化
参数变更
- 将 FE 配置项
enable_new_publish_mechanism
改 为静态参数,修改后必须重启 FE 才可以生效。 #35338
问题修复
修复了如下问题:
- 如果提交的 Broker Load 作业包含过滤条件,在数据导入过程中,某些情况下会出现 BE Crash。 #29832
- 副本操作重放失败可能会引起 FE Crash。 #32295
- 当
recover_with_empty_tablet
设置为true
时可能会引起 FE Crash。 #33071 - 查询时报错 "get_applied_rowsets failed, tablet updates is in error state: tablet:18849 actual row size changed after compaction"。 #33246
- 查询中包括窗口函数可能会导致 BE crash。 #33671
- 执行
show proc '/statistic'
有概率出现卡住的情况。 #34237 - 向打开持久化索引的主键表中导入大量数据,有时会报错。 #34566
- 2.4 及以下的版本升级到高版本,可能会出现 Compaction Score 很高的问题。 #34618
- 使用 MariaDB ODBC Driver 查询
INFORMATION_SCHEMA
中的信息时,schemata
视图中CATALOG_NAME
列中取值都显示的是null
。 #34627 - Stream Load 导入作业在 PREPARED 状态下、同时有 Schema Change 在执行,会导致数据丢失。 #34381
- 如果 HDFS 路径以两个或以上斜杠(
/
)结尾,HDFS 备份恢复会失败。 #34601 - 集群执行导入任务或者查询时,可能会出现 FE 卡住的情况。 #34569
2.5.14
发布日期:2023 年 11 月 14 日
功能优化
INFORMATION_SCHEMA.COLUMNS
表支持显示 ARRAY、MAP、STRUCT 类型的字段。 #33431
参数变更
系统变量
- 新增会话变量
cbo_decimal_cast_string_strict
用于优化器控制 DECIMAL 类型转为 STRING 类型的行为。当取值为true
时,使用 v2.5.x及之后版本的处理逻辑,执行严格转换(按 Scale 截断补0
);当取值为false
时,保留 v2.5.x 之前版本的处理逻辑(按有效数字处理)。默认值是true
。#34208 - 新增会话变量
cbo_eq_base_type
用来指定 DECIMAL 类型和 STRING 类型的数据比较时强制类型,默认VARCHAR
,可选DECIMAL
。#34208
问题修复
修复了如下问题:
- 某些场景下 ON 条件中包含子查询会报错:
java.lang.IllegalStateException: null
。 #30876 - INSERT INTO SELECT ... LIMIT 执行成功后立刻使用 COUNT(*) 查询时,不同副本返回的结果不一致。 #24435
- 使用 cast() 函数进行数据类型转换时,如果转换前后类型一致,某些类型下会导致 BE crash。 #31465
- Broker Load 导入数据时某些路径形式下会报错
msg:Fail to parse columnsFromPath, expected: [rec_dt]
。 #32721 - 升级到 3.x 版本时,如果有的列类型也升级了(比如 Decimal 升级到 Decimal v3),某些特定特征的表在 Compaction 时会导致 BE crash。 #31626
- 使用 Flink Connector 导入数据时,如果并发高且 HTTP 和 Scan 线程数受限,会发生卡死。 #32251
- 调用 libcurl 时会引起 BE Crash。 #31667
- 向主键表增加 BITMAP 类型的列时报错:
Analyze columnDef error: No aggregate function specified for 'userid'
。 #31763 - 长时间向持久化索引打开的主键表高频导入,可能会引起 BE crash。 #33220
- Query Cache 开启后查询结果有错。 #32778
- 主键表创建时如果 ORDER BY 后的字段为 NULL,则 Compaction 不执行。 #29225
- 查询时间较长的复杂 Join,偶尔会报错:“StarRocks planner use long time 10000 ms in logical phase”。 #34177
2.5.13
发布日期:2023 年 9 月 28 日
功能优化
- 窗口函数 COVAR_SAMP、COVAR_POP、CORR、VARIANCE、VAR_SAMP、STD、STDDEV_SAMP 支持 ORDER BY 子句和 Window 子句。 #30786
- DECIMAL 类型数据查询结果越界时,返回报错而不是 NULL。 #30419
- 执行带有不合法注释的 SQL 命令返回结果与 MySQL 保持一致。#30210
- 清理已经删除的 Tablet 对应的 Rowset,减少 BE 启动时加载所消耗的内存。 #30625
问题修复
修复了如下问题: