StarRocks-2.4 Release Notes(最新版本:2.4.4,发布日期:2023年2月24日)

2.4.0

发布日期:2022年10月20日

新增特性

  • 支持构建多表物化视图,实现多表 JOIN 查询加速。

  • 支持通过 INSERT OVERWRITE 语句批量写入并覆盖数据。

  • [公测中] 提供无状态的计算节点(Compute Node,简称 CN 节点)。计算节点支持无状态扩缩容,您可通过 StarRocks Operator 部署,并基于 Kubernetes 管理容器化的计算节点,以此实现自动感知系统负载并水平扩展计算节点。

  • Outer Join 支持通过 <<=>>=<> 等比较操作符对多表进行非等值关联。

  • 支持创建 Iceberg catalog 和 Hudi catalog,创建后即可查询 Apache Iceberg 和 Apache Hudi 数据。

  • 支持查询 CSV 格式 Apache Hive™ 表中的 ARRAY 列。

  • 支持通过 DESC 语句查看外部数据的表结构。

  • 支持通过 GRANT 或 REVOKE 语句授予或撤销用户特定角色或 IMPERSONATE 权限,并支持通过 EXECUTE AS 语句使用 IMPERSONATE 权限执行当前会话。

  • 支持 FQDN 访问:您可以用域名或结合主机名与端口的方式作为 FE 或 BE 节点的唯一标识,有效避免因 IP 变更导致无法访问的问题。

  • flink-connector-starrocks 支持主键模型 Partial Update。

  • 函数相关:

    • 新增 array_contains_all 函数,用于判断特定数组是否为另一数组的子集。

    • 新增 percentile_cont 函数,用于通过线性插值法计算百分位数。

功能优化

  • 主键模型支持持久化 VARCHAR 类型主键索引。自 2.4.0 版本起,主键模型的主键索引磁盘持久化模式和常驻内存模式支持相同的数据类型。

  • 优化外表查询性能。

    • 支持查询 Parquet 格式文件时延迟物化,提升小范围过滤场景下的数据湖查询性能。

    • 查询数据湖时,支持通过合并小型 I/O 以降低存储系统的访问延迟,进而提升外表查询性能。

  • 优化窗口函数性能。

  • Cross Join 支持谓词下推,性能提升。

  • 统计信息支持直方图,并进一步完善全量统计信息采集。

  • 支持 Tablet 自适应多线程 Scan,降低 Scan 性能对同磁盘 Tablet 数量的依赖,从而可以简化对分桶数量的设定。

  • 支持查询 Apache Hive 中的压缩文本(.txt)文件。

  • 调整了计算默认 PageCache Size 和一致性校验内存的方法,避免多实例部署时的 OOM 问题。

  • 去除数据导入主键模型时的 final_merge 操作,主键模型大数据量单批次导入性能提升至两倍。

  • 支持 Stream Load 事务接口:支持和 Apache Flink®、Apache Kafka® 等其他系统之间实现跨系统的两阶段提交,并提升高并发 Stream Load 导入场景下的性能。

  • 函数相关:

    • COUNT DISTINCT 支持多个字段,可计算多字段组合去重后的结果数目。

    • 窗口函数 max 和 min 支持滑动窗口。

    • 优化函数 window_funnel 性能。

问题修复

修复了如下 Bug:

  • 使用 DESC 查看表结构信息显示的字段类型与创建表指定的字段类型不同。#7309

  • 影响 FE 稳定性的元数据问题。#6685 #9445 #7974 #7455

  • 导入相关问题:

    • Broker Load 导入时设定 ARRAY 列失败。 #9158

    • 通过 Broker Load 向非明细模型表导入数据后,副本数据不一致。#8714

    • 执行 ALTER ROUTINE LOAD 过程中出现 NPE 错误。 #7804

  • 数据湖分析相关问题:

    • 查询 Hive 外表中 Parquet 格式数据失败。 #7413 #7482 #7624

    • Elasticsearch 外表 Limit 查询结果不正确。#9226

    • 查询存有复杂数据类型的 Apache Iceberg 表返回未知错误。#11298

  • Leader FE 节点和 Follower FE 节点间元数据不同步。#11215

  • 当 BITMAP 类型数据大于 2GB 时,BE 停止服务。#11178

行为变更

  • 默认开启 Page Cache,Cache Size 为系统内存大小的 20%。

其他

  • 现已正式支持资源隔离功能。

  • 现已正式支持 JSON 数据类型及相关函数。

2赞

2.4.1

新增特性

  • 新增非等值 LEFT SEMI/ANTI JOIN 支持,完善 JOIN 功能。#13019

功能优化

  • HeartbeatResponse 添加 aliveStatus 属性,用以判断节点在线状态,优化节点在线判断逻辑。#12713
  • 优化 Routine Load 的报错信息显示。#12155

问题修复

  • 因自 2.4.0 RC 升级至 2.4.0 导致 BE 崩溃。#13128
  • 查询数据湖时,延迟物化会导致查询结果错误。#13133
  • 函数 get_json_int 函数报错。#12997
  • 索引落盘的主键表删除数据时,可能导致数据不一致。#12719
  • 主键表 Compaction 可能会导致 BE 崩溃。#12914
  • 函数 json_object 输入含有空字符串时,返回错误结果。#13030
  • RuntimeFilter 会导致 BE 崩溃。#12807
  • CBO 内过多递归计算导致 FE 挂起。#12788
  • 优雅退出时 BE 可能会崩溃或报错。#12852
  • 添加新列后,删除会造成 Compaction 崩溃的问题。#12907
  • OLAP 外表元数据同步会导致数据不一致。#12368
  • 其中一个 BE 崩溃后,相关查询小概率在其他 BE 一直运行直到超时。#12954

行为变更

  • Hive 外表解析出错时,StarRocks 会报错,不会将相关列设置为 NULL。 #12382
1赞

2.4.2

行为变更

  • Session 变量 query_timeout 添加最大值 259200 和最小值 1 的限制。

功能优化

  • 优化了 Bucket Hint 在存在大量 Bucket 时候的性能。#13142

问题修复

修复了如下 Bug:

  • 主键索引落盘可能导致 BE 崩溃。#14857 #14819
  • 物化视图表类型不能被SHOW FULL TABLES 正确识别。#13954
  • StarRocks 从 v2.2 升级到 v2.4 可能导致 BE 崩溃。#13795
  • Broker Load 可能导致 BE 崩溃。#13973
  • statistic_collect_parallel 不生效。#14352
  • INSERT INTO 可能导致 BE 崩溃。#14818
  • JAVA UDF 可能导致 BE 崩溃。#13947
  • Partial Update 时副本 Clone 可能导致 BE 崩溃且无法重启。#13683
  • Colocated Join 可能不生效。#13561
2赞

2.4.3

行为变更

  • 修改 Thrift Listen 的 Backlog 的默认值为 1024#13911
  • 添加 FORBID_INVALID_DATES 的 SQL 模式,默认关闭。打开后会校验日期类型的输入,当日期为非法时间时会报错。#14143

问题修复

修复了如下问题:

  • 未设置 Timeout 导致 Stream Load 失败。#16241
  • BRPC Send 在内存使用多的时候会崩溃。#16046
  • 无法通过低版本 StarRocks 外表的方式导入数据。#16130
  • 物化视图刷新失败会导致内存泄漏。#16041
  • Schema Change 在 Publish 阶段卡住。#14148
  • 物化视图 QeProcessorImpl 问题可能导致内存泄漏。#15699
  • Limit 查询结果不一致。#13574
  • INSERT 导入导致内存泄漏。#14718
  • Primary Key 表执行 Tablet Migration。#13720
  • 当 Broker Load 作业持续运行时 Broker Kerberos Ticket 会超时。#16149
  • 基于表生成视图过程中,列的 nullable 信息转化错误。#15744

功能优化

  • 在 Analyze 时,StarRocks 提前检查 Database 和 Table 是否存在以避免 NPE。#14467
  • 在查询外表时,如果列的数据类型不支持,将不物化该列。#13305
  • 为 FE 启动脚本 start_fe.sh 添加 Java 版本检查。#14333

2.4.4

功能优化

  • 支持快速取消导入。 #15514 #15398 #15969
  • 优化了 Compaction 框架的 CPU 使用率。 #11747
  • 支持对缺失数据版本的 Tablet 进行 Cumulative Compaction。 #17030

问题修复

修复了如下问题:

  • 创建动态分区时,指定非法 DATE 值时会导致系统创建大量动态分区。 #17966
  • 无法使用默认的 HTTPS Port 连接到 Elasticsearch 外部表。 #13726
  • Stream Load 事务超时后,BE 无法取消事务。 #15738
  • 单个 BE 上的 Local Shuffle 聚合返回错误查询结果。 #17845
  • 查询可能会失败,并返回错误消息 “wait_for_version version:failed:apply stopped”。 #17848
  • OLAP Scan Bucket 表达式未被正确清除,导致返回错误的查询结果。 #17666
  • Colocate 组内的动态分区表无法修改分桶数,并返回报错信息。 #17418
  • 连接非 Leader FE 节点,发送请求 USE <catalog_name>.<database_name>,非 Leader 节点中将请求转发给 Leader FE 时,没有转发 catalog_name,导致 Leader FE 使用 default_catalog,因此无法找到对应的 database。 #17302
  • 执行重写前 dictmapping 检查的逻辑错误。 #17405
  • 如果 FE 向 BE 发送单次偶发的心跳,心跳连接超时,FE 会认为该 BE 不可用,最终导致该 BE 上的事务运行失败。 #16386
  • 在 FE follower 上查询新克隆的 Tablet,get_applied_rowsets 失败。 #17192
  • 在 FE follower 上执行 SET variable = default 导致空指针(NPE)。 #17549
  • Projection 中的表达式不会被字典改写。 #17558
  • 以周为粒度创建动态分区的逻辑错误。 #17163
  • Local Shuffle 返回错误查询结果。 #17130
  • 增量克隆可能会失败。 #16930
  • 在一些情况下,CBO 比较算子是否相等的逻辑发生错误。 #17199 #17227
  • 未检查和正确解析JuiceFS Schema 导致访问 JuiceFS 失败。 #16940
2赞

@trueeyu 您好,请问下 2.4版本是不更新了吗?我看2个月没有新版本发布了。

2.2 貌似是已经停止支持了,2.3,2.4,这俩版本目前是在什么阶段呢?

常见 Crash / BUG / 优化 查询 和这个链接里描述的版本差异有些大,比如2.2已经不发版了。我们也遇到了一些问题,因此有此问,希望可以解答。

以后 release note 我们就不在论坛更新了,大家到我们文档站或是 GitHub 上会有最新的。2.4的最新版本已经到了2.4.5:https://docs.starrocks.io/zh-cn/main/release_notes/release-2.4

2.4是个过渡版本,后期应该不会再发小版本了。最好是升到2.5

2.2遇到了什么问题?

还好 已绕过,只是同期的2.2、2.3、2.4 都有那问题,我司恰好这3个大版本都用了,才关注了下。

开始的时候,还在看 “常见 Crash / BUG / 优化 查询” 去等较新的小版本呢。我们尽量升级2.5吧~

论坛不发版本通告了么? 有点可惜~ :slightly_smiling_face:

:pleading_face: