StarRocks version 3.1
3.1.15
发布日期:2024 年 9 月 4 日
问题修复
修复了如下问题:
- 在通过异步物化视图改写查询时,部分表
count(*)
返回的结果为 NULL。#49288 partition_linve_nubmer
不生效。#49213- FE 汇报 Tablet 异常:BE 磁盘下线,Tablet 无法迁移。#47833
3.1.14
发布日期:2024 年 7 月 29 日
功能优化
- Stream Load 支持将
\t
和\n
分别作为行列分割符,无需转成对应的十六进制 ASCII 码。#47302
问题修复
修复了如下问题:
- 主键表频繁 INSERT UPDATE,可能会导致数据库写入和查询卡顿。 #47838
- 主键表写盘失败时,持久化索引可能会因为无法捕捉错误导致数据丢失,并报错 “Insert found duplicate key”。#48045
- 物化视图在刷新时,可能会报告权限不够。 #47561
- 物化视图刷新时报错 “For input string”。 #46131
- 物化视图刷新时持锁时间太长,导致死锁检测脚本重启了 Leader FE。#48256
- 视图带有 IN 的查询可能结果不准确。 #47484
- Global Runtime Filter 导致查询结果跳变。#48496
- MySQL 协议
COM_CHANGE_USER
不支持conn_attr
。#47796
行为变更
- 非分区表为自动设置分桶数量时,系统自动设置的分桶数最小值修改为
16
(原来的规则是2 * BE 数量
,也即最小会创建 2 个 Tablet)。如果是小数据且想要更小的分桶数,需要手动设置。#47005
3.1.13
发布日期:2024 年 6 月 26 日
功能优化
- Broker 进程支持访问腾讯云 COS 融合桶,从而可以通过 Broker Load 从 COS 融合桶导入数据,以及通过 SELECT INTO OUTFILE 导出数据到 COS 融合桶。#46597
- 通过 SHOW CREATE TABLE 能够查看 Hive Catalog 中 Hive 外表的 Comment。#37686
- 优化 WHERE 子句中的 Conjunct 的评估时间,包括同一个 Column 有多个 LIKE 语句或 CASE WHEN 表达式。#46914
问题修复
修复了如下问题:
- 存算分离集群中使用 DELETE 语句时因为要删除的分区比较多而导致失败。#46229
3.1.12
发布日期:2024 年 5 月 30 日
新增特性
功能优化
- 在 BE 通过 RPC 与 FE 通信失败时,FE 只会统一返回报错信息
call frontend service failed reason=xxx
,导致具体出错原因不明。优化后报错信息中会提示具体的出错原因,例如超时或服务器繁忙。 #44153 - 优化导入中报错信息,例如错误数据行超限、列数不对应、无效列名、所有分区中没有数据。
安全
- 升级 Kafka client 依赖包为 v3.4.0,以修复 CVE-2023-25194 安全问题。#45382
问题修复
修复了如下问题:
- 如果一个物化视图定义中包含多个相同的表的 self join,且根据该表进行分区增量刷新,会因分区选择错误而导致结果错误。#45936
- 存算分离模式下在物化视图中创建 Bitmap 索引,会导致 FE crash。#45665
- 通过 ODBC 连接 FE follower 并执行 CREATE TABLE 时因空指针问题导致 BE crash。#45043
- 如果有较多异步任务,查询 information_schema.task_runs 会频繁失败。#45520
- SQL 语句中包含多个 COUNT DISTINCT 且包含 LIMIT,则 LIMIT 处理出现问题,导致每次执行语句返回数据不一致。#44749
- 查询明细表和聚合表的语句中包含 ORDER BY LIMIT 子句时,查询结果错误。#45037
3.1.11
发布日期:2024 年 4 月 28 日
行为变更
功能优化
- 支持读取 Iceberg 中 Equality Delete 的 Parquet 文件。#42489
问题修复
修复了如下问题:
- 查询 Hive/Iceberg catalog 等外表时报错无权限,权限丢失,但用
SHOW GRANTS
查询时对应的权限是存在的。#44061 str_to_map
函数使用时可能会导致 BE crash。#43930- 使用 Routine Load 导入数据时,执行
show proc '/routine_loads'
会卡住,是因为内部有死锁问题。#44249 - 主键表的 Persistent Index 在使用中可能会因为内部并发控制问题而导致 BE crash。#43720
- 通过
leaderFE_IP:8030
界面查到的pending_task_run_count
数据错误,当前统计的是 Pending+Running 的总数,而不是 Pending 的任务数。同时,从followerFE_IP:8030
查不到refresh_pending
监控指标的信息。#43052 - 查询
information_schema.task_runs
会频繁失败。#43052 - 一些含有 CTE 的 SQL 查询时会报
Invalid plan: PhysicalTopNOperator
错误。#44185
3.1.10(已下线)
发布日期:2024 年 3 月 29 日
提示
此版本因存在 Hive/Iceberg catalog 等外表权限相关问题已经下线。
- 问题:查询 Hive/Iceberg catalog 等外表时报错无权限,权限丢失,但用
SHOW GRANTS
查询时对应的权限是存在的。 - 影响范围:对于不涉及 Hive/Iceberg catalog 等外表权限的查询,不受影响。
- 临时解决方法:在对 Hive/Iceberg catalog 等外表进行重新授权后,查询可以恢复正常。但是
SHOW GRANTS
会出现重复的权限条目。后续在升级 3.1.11 后,通过REVOKE
操作删除其中一条即可。
新增特性
行为变更
- JSON 中的 null 值通过
IS NULL
等方式判断时,修改为按照 SQL 的 NULL 值计算。即,SELECT parse_json('{"a": null}') -> 'a' IS NULL
会返回true
(原来是返回false
)。#42815
功能优化
- 通过 Broker Load 导入 ORC 格式的数据,在 TIMESTAMP 类型的数据转化为 StarRocks 中的 DATETIME 类型的数据时,新增支持保留微秒信息。#42348
问题修复
修复了如下问题:
- 对于存算分离中的主键表,本地持久化索引的垃圾回收 (Garbage Collection) 和淘汰线程对 CN 节点没有生效,导致无用数据没有被删除。#42241
- 通过 Hive Catalog 查询 ORC 格式文件的数据时,可能出现结果错误。原因在于之前采用的是按位置映射的方式从 Hive 读取 ORC 格式文件的数据。用户可以通过修改会话变量
set orc_use_column_names = true;
,指定按列名映射的方式正确读取 Hive 中的 ORC 格式文件的数据。#42905 - 采用 AD 系统的 LDAP 认证方式时,不用密码也能登陆 。#42476
- 当磁盘设备名称以数字结尾时,监控指标的值始终为零。原因是通过删除设备名称尾部的数字而得到的设备名可能是无效的。#42741
3.1.9
发布日期:2024 年 3 月 8 日
新增特性
- 存算分离集群中的云原生主键表支持 Size-tiered 模式 Compaction,以减轻导入较多小文件时 Compaction 的写放大问题。#41610
- 新增
information_schema.partitions_meta
视图,提供丰富的 PARTITION 元信息。#41101 - 新增
sys.fe_memory_usage
视图,提供 StarRocks 的内存使用信息。#41083
行为变更
- 动态分区语法修改为“如果分区列是日期(DATE)类型,则不支持小时(hour)时间粒度”。注意,时间日期(DATETIME)类型的分区列还是支持小时时间粒度的。#40328
- 修改发起物化视图刷新任务的用户,从原本的
root
用户变成创建物化视图的用户,已有的物化视图不受影响。#40698 - 常量和字符串类型的列进行比较时,默认按字符串进行比较,用户可以通过设置变量
cbo_eq_base_type
来调整默认行为。将cbo_eq_base_type
设置为decimal
可以改为按数值进行比较。#41712
功能优化
- 支持通过
s3_compatible_fs_list
参数设置可以使用 AWS SDK 接入的 S3 兼容对象存储。同时支持通过fallback_to_hadoop_fs_list
参数配置需要通过 HDFS 的 Schema 接入的非 S3 兼容对象存储(该方法需要使用厂商提供的 JAR 包)。#41612 - 优化 Trino 语法兼容性,支持 Trino 的
current_catalog
、current_schema
、to_char
、from_hex
、to_date
、to_timestamp
以及index
函数的语法转换。#41505 #41270 #40838 - 为缓解由于候选物化视图太多而导致查询在 Plan 阶段耗时过高的问题,引入了一个新的会话变量
cbo_materialized_view_rewrite_related_mvs_limit
,用于控制查询在 Plan 阶段最多拥有的候选物化视图个数,默认是 64 个。#39829 - 聚合表中 BITMAP 类型的列支持指定聚合类型为
replace_if_not_null
,从而支持部分列更新。#42102 - 通过修改会话变量
cbo_eq_base_type
,控制字符串与数值比较时隐式转换规则,默认按字符串进行比较。#40619 - 内部支持更多日期类型识别(如 "%Y-%m-%e %H:%i"),从而更好地支持 Iceberg 分区表达。#40474
- JDBC Connector 支持 TIME 数据类型。#31940
- File External Table 的
path
参数支持使用通配符(*
),但是和 Broker Load 中DATA INFILE
参数一样最多只能匹配一层目录或文件。#40844 - 新增内部 SQL 日志,其中包含统计信息和物化视图等相关的日志信息。#40682
问题修复
修复了如下问题:
- 当创建 Hive 视图的查询语句中存在同一个表或视图的名称(或别名)大小写不一致的情况时,会出现“Analyze Error”的问题。#40921
- 主键表使用持久化索引会导致磁盘 I/O 打满。#39959
- 存算分离集群中,主键索引目录每 5 小时会被错误删除。#40745
- List 分区表在 Truncate Table 或 Truncate Partition 之后根据分区键查询不到数据。#40495
- 手动执行 ALTER TABLE COMPACT 后,Compaction 内存统计有异常。#41150
- 跨集群数据迁移中,如果执行列模式的部分列更新,目标集群可能会 Crash。#40692
- 当某些 SQL 语句中包含多个空格、换行符时,SQL 黑名单会不生效。#40457
3.1.8
发布日期:2024 年 2 月 5 日
新增特性
- 社区提供 StarRocks 数据迁移工具,支持将数据从存算一体集群迁移数据到存算一体集群或者存算分离集群。
- 支持创建带有 WHERE 子句的同步物化视图。
- MemTracker 中新增了 Data Cache 内存使用的相关指标。#39600
参数变更
- 增加 BE 配置项
lake_pk_compaction_max_input_rowsets
,用于控制存算分离集群下主键表 Compaction 任务中允许的最大输入 Rowset 数量,优化 Compaction 时资源的使用。#39611
功能优化
- 通过 CTAS 建表时支持配置 ORDER BY 和 INDEX。#38886
- 新增支持 ORC 格式 Iceberg v2 表的 Equality Delete 查询。#37419
- 云原生表开启 List 分区表后可以设置
datacache.partition_duration
属性且支持动态修改,用于控制 Data Cache 的有效时间。#35681 #38509 - 优化主键模型表索引的 Major Compaction 的策略,可通过 BE 配置项
update_compaction_per_tablet_min_interval_seconds
控制主键模型表索引的 Major Compaction的频率(该参数同时也控制主键模型表 Compaction 的频率)。#39640 - Parquet Reader 支持将 Parquet 文件中 INT32 类型的数据转换成 DATETIME 类型的数据并保存到 StarRocks中。#39808
问题修复
修复了如下问题:
- 使用非数列(NaN 列)进行排序可能导致 BE Crash。#30759
- 更新主键索引失败可能导致 "get_applied_rowsets failed"。#27488
- Compaction 失败后,compaction_state_cache 没有回收仍然占用资源。#38499
- 如果外表的分区列有取值是 null,查询时会导致 BE Crash。#38888
- 当基表删除重建后,异步物化视图刷新失败。#38008
- 如果 Iceberg 表是空表,异步物化视图刷新失败。#24068
3.1.7
发布日期:2024 年 1 月 12日
新增特性
- 新增表函数
unnest_bitmap
。#38136 - Broker Load 支持条件更新。#37400