news 2026/9/17 22:57:53

StarRocks 3.0 版本发布说明深度解读:存算分离架构、存储与查询引擎的演进(v3.0.0–v3.0.9)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
StarRocks 3.0 版本发布说明深度解读:存算分离架构、存储与查询引擎的演进(v3.0.0–v3.0.9)

StarRocks 3.0 版本发布说明深度解读:存算分离架构、存储与查询引擎的演进(v3.0.0–v3.0.9)

【免费下载链接】starrocksThe world's fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.项目地址: https://gitcode.com/GitHub_Trending/st/starrocks

本文基于 StarRocks 仓库中的官方发布说明文档 docs/en/release_notes/release-3.0.md,系统梳理 3.0 系列从 3.0.0 到 3.0.9 的完整功能演进:以 3.0.0 GA 引入的存算分离(shared-data)架构为主线,覆盖存储引擎、数据湖分析、RBAC 权限体系、物化视图与查询引擎的重要改进,并结合当前仓库源码(FE 配置、BE 配置、会话变量与聚合函数实现)逐项验证各参数的定义与默认值,帮助你在升级、回退和日常运维中做出有依据的技术决策。

1. 3.0.0 GA:奠定存算分离架构的基座版本

发布日期:2023 年 4 月 28 日。3.0.0 是 StarRocks 3.0 系列的首个 GA 版本,也是整个系列的技术分水岭:它首次引入存算分离架构,同时完成了权限体系(RBAC)、物化视图改写能力、Presto/Trino 方言兼容等多条产品线的重大升级。

1.1 系统架构:存储与计算解耦(shared-data)

3.0 版本支持将数据持久化到 S3 兼容的对象存储,从而获得三个核心收益:

  • 资源隔离:计算节点(BE/CN)与存储介质解耦,可独立扩缩容;
  • 降低成本:存储成本从本地盘转向对象存储;
  • 弹性伸缩:计算资源可按负载快速伸缩。

本地磁盘被用作热数据缓存(Cache Data),从源码结构和官方描述看,当本地磁盘缓存命中时,新存算分离架构的查询性能与经典存算一体(shared-nothing)架构相当。上图即为两种集群形态的架构对比:左侧 Classic Cluster(Shared-nothing)中每个 BE 同时承担执行引擎与存储引擎、持有 Local Data;右侧 Elastic Cluster(Shared-data)中 BE 仅持有 Cache Data,数据统一落到 S3/HDFS。

1.2 存储引擎与数据接入(3.0.0)

  • 支持AUTO_INCREMENT属性,提供全局唯一 ID,简化数据管理;
  • 支持自动分区(Automatic Partitioning)分区表达式(Partitioning Expressions),让分区创建更易用、更灵活;
  • 主键表(Primary Key Table)支持更完整的UPDATEDELETE语法,包括 CTE 和多表引用;
  • 为 Broker Load 和 INSERT INTO 作业新增Load Profile,可通过 load profile 查看加载作业详情,用法与分析查询 Profile 相同。

1.3 数据湖分析(3.0.0)

  • 【Preview】支持 Presto/Trino 兼容方言:Presto/Trino 的 SQL 可被自动改写为 StarRocks 的 SQL 模式,通过系统变量sql_dialect控制(3.0.4 起进一步支持trino方言下表别名的不区分大小写);
  • 【Preview】支持 JDBC Catalog,可对 MySQL 等外部库建外部表;
  • 支持使用SET CATALOG在当前会话中手动切换 Catalog。

1.4 权限与安全:全新 RBAC 权限体系

  • 提供具备完整 RBAC 能力的新权限系统,支持角色继承默认角色
  • 提供更丰富的权限管理对象和更细粒度的权限;
  • 新增权限相关 SQL 语句:SET DEFAULT ROLESET ROLESHOW ROLESSHOW USERS

1.5 查询引擎(3.0.0)

  • 更多涉及 Join 的查询可以享受查询缓存(Query Cache),例如新增支持 Broadcast Join 与 Bucket Shuffle Join 场景;
  • 支持全局 UDF(Global UDFs)
  • 动态自适应并行度:系统可自动调整pipeline_dop参数以匹配查询并行度。

1.6 SQL 参考新增能力(3.0.0)

除权限语句外,3.0.0 还新增了一批函数能力:

  • 半结构化数据分析函数:map_applymap_from_arrays
  • array_agg支持ORDER BY
  • 窗口函数LEAD/LAG支持IGNORE NULLS
  • 字符串函数:replacehex_decode_binaryhex_decode_string
  • 加密函数:base64_decode_binarybase64_decode_string
  • 数学函数:sinhcoshtanh
  • 实用函数:current_role

1.7 改进汇总(3.0.0)

部署

  • 更新了 Docker 镜像及相关 Docker 部署文档至 3.0 版本。

存储引擎与数据接入

  • 数据接入支持更多 CSV 参数:SKIP_HEADERTRIM_SPACEENCLOSEESCAPE(适用于 Stream Load、Broker Load、Routine Load);
  • 主键表中主键与排序键解耦,建表时可在ORDER BY中单独指定排序键;
  • 优化了主键表在大批量写入、部分列更新、持久化主键索引等场景下的内存占用;
  • 支持创建异步 INSERT 任务SUBMIT TASK)。

物化视图

  • 改写能力优化:支持 View Delta Join、Outer Join、Cross Join 的改写,优化了带分区的 Union 改写;
  • 构建能力增强:支持 CTE、select *、Union;
  • 优化SHOW MATERIALIZED VIEWS返回信息;
  • 支持批量添加 MV 分区,提升 MV 构建时加分区效率。

查询引擎

  • 所有算子均已支持Pipeline 引擎,非 Pipeline 代码将在后续版本移除;
  • 改进大查询定位(Big Query Positioning)并新增大查询日志,SHOW PROCESSLIST支持查看 CPU 与内存信息;
  • 优化 Outer Join Reorder;
  • 优化 SQL 解析阶段的错误提示,提供更准确的错误定位。

数据湖分析

  • 优化元数据统计收集;
  • 支持使用SHOW CREATE TABLE查看外部 Catalog(Hive、Iceberg、Hudi、Delta Lake)托管表的建表语句。

1.8 Bug Fixes(3.0.0)

  • 部分源码文件 license header 中的 URL 无法访问;
  • SELECT 查询期间可能返回未知错误;
  • 支持SHOW/SET CHARACTER
  • 加载数据超过字段长度时返回的错误信息不正确;
  • 支持show full fields from 'table'
  • 分区裁剪导致 MV 改写失败;
  • CREATE MATERIALIZED VIEW中含count(distinct)且作用于 DISTRIBUTED BY 列时 MV 改写失败;
  • 物化视图使用 VARCHAR 列作为分区列时 FE 无法启动;
  • 窗口函数LEAD/LAGIGNORE NULLS处理不正确;
  • 添加临时分区与自动分区创建冲突。

1.9 行为变更(3.0.0)

  • 新 RBAC 系统兼容旧权限与角色,但GRANTREVOKE等语句语法发生变更;
  • SHOW MATERIALIZED VIEW更名为SHOW MATERIALIZED VIEWS
  • 新增保留关键字:AUTO_INCREMENTCURRENT_ROLEDEFERREDENCLOSEESCAPEIMMEDIATEPRIVILEGESSKIP_HEADERTRIM_SPACEVARBINARY

1.10 升级与回退注意事项(v2.5 ↔ v3.0)

支持从 v2.5 升级到 v3.0,或从 v3.0 回退到 v2.5。理论上也支持更早版本直接升级,但官方建议先升级到 v2.5 再升级到 v3.0,以确保系统可用性。

BDBJE

v3.0 升级了 BDB 库,且 BDBJE 不可回退。回退后仍须使用 v3.0 的 BDB 库,操作步骤:

  1. 将 FE 包替换为 v2.5 包后,把 v3.0 的fe/lib/starrocks-bdb-je-18.3.13.jar复制到 v2.5 的fe/lib目录;
  2. 删除fe/lib/je-7.*.jar

权限系统

升级到 v3.0 后默认使用新 RBAC 权限系统,此时只能回退到 v2.5。回退后需执行ALTER SYSTEM CREATE IMAGE创建新镜像并等待其同步到所有 Follower FE,否则部分回退操作可能失败(该命令自 2.5.3 起支持)。

2. 3.0.9:3.0 系列的最终版本

发布日期:2024 年 1 月 2 日。3.0.9 是 3.0 系列功能与稳定性打磨的收官版本,新增了近似分位数函数、rowset 数量指标,并对主键表、Bitmap、Compaction 等做了大量优化。

2.1 New Features

  • 新增聚合函数 percentile_disc;
  • 新增指标max_tablet_rowset_num,用于设置允许的最大 rowset 数量,帮助发现潜在的 Compaction 问题、降低 “too many versions” 错误的出现频率。在源码中该指标定义于 storage_metrics.h,并在 tablet_manager.cpp 中参与检查逻辑。

2.2 Improvements

  • 会话变量sql_mode新增取值GROUP_CONCAT_LEGACY,用于兼容 v2.5 之前group_concat的实现逻辑。从源码结构看,该模式位定义在 SqlModeHelper.java(MODE_GROUP_CONCAT_LEGACY = 1L << 36,并在SQL_MODE_SET中注册);
  • 使用 JDK 时默认 GC 算法为 G1;
  • information_schemabe_tablets视图新增INDEX_DISK字段,记录持久化索引的磁盘占用(字节);
  • MySQL 外部表及 JDBC Catalog 外部表的查询支持在 WHERE 子句中使用关键字;
  • 支持对自动分区表的指定分区执行更新,指定分区不存在时返回错误;
  • SHOW DATA返回的主键表大小现在包含.cols文件(部分列更新与生成列相关)和持久化索引文件的大小;
  • 优化主键表在所有 rowset 上执行 Compaction 时的持久化索引更新性能,减少磁盘读 I/O;
  • WHERE 子句中 LIKE 右侧字符串不含%_时,LIKE 算子被转换为=算子;
  • 优化主键表 Compaction Score 计算逻辑,使其取值范围与其他三类表更一致;
  • SHOW ROUTINE LOAD结果新增各分区消费消息的时间戳;
  • 优化若干 Bitmap 相关操作性能:嵌套循环 Join 优化、bitmap_xor函数优化、Bitmap 支持 Copy on Write 以降低内存消耗。

2.3 Behavior Change

  • 新增会话变量enable_materialized_view_for_insert,控制物化视图是否改写INSERT INTO SELECT中的查询,默认false
  • FE 配置项enable_new_publish_mechanism从动态参数改为静态参数,修改后需重启 FE 生效。从源码结构看,当前仓库 Config.java 中该项为静态字段(第 4023 行附近),与 3.0.9 的行为变更记录一致;
  • 垃圾文件(trash files)默认保留期从 3 天改为 1 天。

2.4 Parameter Change

以下三个参数组在 3.0.9 中新增,本文同时给出当前仓库源码中的定义位置,便于查证:

会话变量(Session Variables)

参数默认值说明源码位置
cbo_decimal_cast_string_stricttrue控制 CBO 中 DECIMAL 转 STRING 的方式:true为 v2.5 起的严格转换(按 scale 截断并补 0),false为 v2.5 前逻辑(处理所有有效数字)SessionVariable.java
transaction_read_only/tx_read_only指定事务访问模式,兼容 MySQL 5.7.20+SessionVariable.java

FE 参数

参数默认值说明源码位置
routine_load_unstable_threshold_second3600(当前仓库)Routine Load 稳定性判定阈值,与 3.0.9 新增的分区消费时间戳配合使用Config.java
http_worker_threads_num0FE HTTP 服务器处理请求的线程数;设为 0 或负数时,实际线程数为 CPU 核心数的 2 倍Config.java
default_mv_refresh_immediatetrue物化视图创建后是否立即刷新Config.java

BE 参数

参数默认值说明源码位置
enable_stream_load_verbose_logfalsetrue时记录 Stream Load 作业的 HTTP 请求与响应,便于排查问题config.h
pindex_major_compaction_limit_per_disk1限制单盘 Compaction 最大并发度,解决 Compaction 导致的磁盘 I/O 不均衡问题config.h
object_storage_connect_timeout_ms-1(3.0.9 发布值)与对象存储建立 socket 连接的超时时长;-1表示使用 SDK 默认超时config.h
object_storage_request_timeout_ms-1(3.0.9 发布值)与对象存储建立 HTTP 连接的超时时长;-1表示使用 SDK 默认超时config.h

需要注意:从源码结构看,当前仓库中object_storage_request_timeout_ms的默认值已调整为10000(毫秒),并作为starlet_fslib_s3client_request_timeout_ms的别名存在,说明该默认值在后续版本中发生了变化,本文按 3.0.9 发布说明记录其当时的默认值。

2.5 Bug Fixes(3.0.9)

  • 某些场景下使用 Catalog 读取 ORC 外部表可能导致 BE 崩溃;
  • 数据损坏时创建持久化索引可能导致 BE 崩溃;
  • 添加 Bitmap 索引后 BE 偶发崩溃;
  • 重放副本操作失败可能导致 FE 崩溃;
  • FE 参数recover_with_empty_tablet设为true时可能导致 FE 崩溃;
  • 哈希 Join 期间查询失败导致 BE 崩溃;
  • 存算一体集群中查询 Iceberg 或 Hive 表可能导致 BE 崩溃;
  • 修复 “get_applied_rowsets failed, tablet updates is in error state: tablet:18849 actual row size changed after compaction” 错误;
  • 执行show proc '/statistic'可能死锁;
  • enable_collect_query_detail_info设为true后 FE 性能骤降;
  • 向开启持久化索引的主键表写入大量数据可能报错;
  • 从 v2.4 或更早版本升级后 Compaction Score 可能异常升高;
  • 通过 MariaDB ODBC 驱动查询INFORMATION_SCHEMAschemata视图的CATALOG_NAME列仅返回 null;
  • FE 因加载的异常数据崩溃且无法重启;
  • Schema Change 执行期间 Stream Load 处于PREPARED状态时,作业待加载的部分源数据丢失;
  • HDFS 存储路径末尾包含两个及以上斜杠(/)时,HDFS 备份恢复失败;
  • ALTER TABLE添加的partition_live_number属性不生效;
  • array_distinct函数偶发导致 BE 崩溃;
  • 刷新物化视图时可能死锁;
  • 全局 Runtime Filter 在特定场景下可能导致 BE 崩溃;
  • bitmap_to_string可能因数据类型溢出返回错误结果。

3. 3.0.1–3.0.8:中间版本的逐版演进

3.1 版本 3.0.8(2023 年 11 月 17 日)

改进

  • INFORMATION_SCHEMACOLUMNS视图可显示 ARRAY、MAP、STRUCT 列。

Bug Fixes

  • 执行show proc '/current_queries';的同时有新查询开始执行时 BE 可能崩溃;
  • 高频向指定了排序键的主键表持续加载数据时可能出现 Compaction 失败;
  • Broker Load 作业带过滤条件时,某些情况下数据加载期间 BE 可能崩溃;
  • 执行SHOW GRANTS时报告未知错误;
  • cast()函数目标类型与原类型相同时,特定数据类型可能导致 BE 崩溃;
  • information_schema.columns视图中 BINARY/VARBINARY 的DATA_TYPECOLUMN_TYPE显示为unknown
  • 长期高频向开启持久化索引的主键表加载数据可能导致 BE 崩溃;
  • 启用 Query Cache 时查询结果不正确;
  • 集群重启后,恢复表的数据可能与备份前不一致;
  • 执行 RESTORE 的同时发生 Compaction 可能导致 BE 崩溃。

3.2 版本 3.0.7(2023 年 10 月 18 日)

改进

  • 窗口函数COVAR_SAMPCOVAR_POPCORRVARIANCEVAR_SAMPSTDSTDDEV_SAMP现在支持ORDER BY子句与 Window 子句;
  • 写入主键表的加载作业 Publish 阶段由异步改为同步,作业结束后数据立即可查;
  • DECIMAL 类型查询发生十进制溢出时返回错误而非 NULL;
  • 含无效注释的 SQL 命令执行结果与 MySQL 保持一致;
  • 单分区列 RANGE 分区或表达式分区的表,包含分区列表达式的 SQL 谓词也可用于分区裁剪。

Bug Fixes

  • 并发创建和删除库表在某些情况下导致表找不到、进而加载失败;
  • 使用 UDF 可能导致内存泄漏;
  • ORDER BY含聚合函数时返回 “java.lang.IllegalStateException: null”;
  • 使用多级 Hive Catalog 查询存储在腾讯云 COS 中的数据时结果不正确;
  • ARRAY<STRUCT>类型数据中 STRUCT 部分子字段缺失时,填充默认值导致数据长度错误并引发 BE 崩溃;
  • 升级 Berkeley DB Java Edition 版本以规避安全漏洞;
  • 对主键表并发执行 truncate 与加载时抛 “java.lang.NullPointerException”;
  • Schema Change 执行时间过长时,因指定版本的 tablet 被 GC 导致失败;
  • 使用 CloudCanal 向NOT NULL且无默认值的列加载数据时报 “Unsupported dataFormat value is : \N”;
  • 存算分离集群中information_schema.COLUMNS不记录表键信息,导致 Flink Connector 加载后无法执行 DELETE;
  • 升级过程中列类型同步升级(如 Decimal 到 Decimal v3)时,特定表的 Compaction 可能导致 BE 崩溃;
  • 使用 Flink Connector 高并发加载且 HTTP 线程与 Scan 线程均达上限时,加载作业被意外挂起;
  • 调用 libcurl 时 BE 崩溃;
  • 向主键表添加 BITMAP 类型列时出错。

3.3 版本 3.0.6(2023 年 9 月 12 日)

行为变更

  • 使用group_concat函数时必须使用SEPARATOR关键字声明分隔符。

New Features

  • 聚合函数group_concat支持DISTINCT关键字与ORDER BY子句;
  • 分区数据可随时间自动冷化(不支持 LIST 分区)。

改进

  • 支持 WHERE 子句中所有复合谓词与所有表达式的隐式类型转换,可用会话变量enable_strict_type开启或关闭,默认false
  • 统一了 FE 与 BE 之间字符串转整数的逻辑。

Bug Fixes

  • enable_orc_late_materializationtrue时,Hive Catalog 查询 ORC 文件中的 STRUCT 数据返回意外结果;
  • 通过 Hive Catalog 查询时 WHERE 子句指定分区列与 OR 运算符导致结果不正确;
  • RESTful API 动作show_data对云原生表返回的值不正确;
  • 数据存储在 Azure Blob Storage 的存算分离集群回退到 3.0 并建表后 FE 无法启动;
  • 即使已授权,用户在 Iceberg Catalog 中查询表时仍无权限;
  • SHOW FULL COLUMNS返回的 BITMAP 或 HLL 类型列Default字段值不正确;
  • 使用ADMIN SET FRONTEND CONFIG修改 FE 动态参数max_broker_load_job_concurrency不生效;
  • 物化视图刷新期间修改其刷新策略可能导致 FE 启动失败;
  • 执行select count(distinct(int+double)) from table_name返回unknown error
  • 主键表恢复后重启 BE 出现元数据错误与不一致。

3.4 版本 3.0.5(2023 年 8 月 16 日)

New Features

  • 支持聚合函数COVAR_SAMPCOVAR_POPCORR
  • 支持窗口函数COVAR_SAMPCOVAR_POPCORRVARIANCEVAR_SAMPSTDSTDDEV_SAMP

改进

  • xxx too many versions xxx错误信息增加更多提示;
  • 动态分区进一步支持以为分区单位;
  • 建表使用表达式分区及INSERT OVERWRITE覆盖指定分区时,分区字段不区分大小写。

Bug Fixes

  • FE 中表级扫描统计不准确导致查询与加载指标失真;
  • 修改分区表排序键后查询结果不稳定;
  • 数据恢复后 tablet 版本在 BE 与 FE 之间不一致;
  • 创建 Colocation 表未指定分桶数时被推断为 0,导致新增分区失败;
  • INSERT INTO SELECT结果集为空时SHOW LOAD状态误报CANCELED
  • sub_bitmap函数输入非 BITMAP 类型时 BE 可能崩溃;
  • 更新AUTO_INCREMENT列时 BE 可能崩溃;
  • 物化视图 Outer Join 与 Anti Join 改写错误;
  • 平均行大小估算不准导致主键部分更新占用过多内存;
  • 激活非活动物化视图可能导致 FE 崩溃;
  • 查询无法改写到 Hudi Catalog 外部表创建的物化视图;
  • Hive 表删除并手动更新元数据缓存后数据仍可查询;
  • 同步调用手动刷新异步物化视图导致information_schema.task_runs出现多条 INSERT OVERWRITE 记录;
  • LabelCleaner 线程阻塞导致 FE 内存泄漏。

3.5 版本 3.0.4(2023 年 7 月 18 日)

New Feature

  • 即使查询与物化视图使用不同类型的 Join,查询也可被改写。

改进

  • 优化异步物化视图手动刷新:支持REFRESH MATERIALIZED VIEW WITH SYNC MODE语法同步调用刷新任务;
  • 查询字段不在 MV 输出列中但在 MV 谓词中时,查询仍可被改写命中 MV;
  • sql_dialect设为trino时,表别名不区分大小写;
  • information_schema.tables_config表新增table_id字段,可关联be_tablets查询 tablet 所属库表名。

Bug Fixes

  • sum聚合的查询改写为单表 MV 时,类型推断问题可能导致sum()值不正确;
  • 存算分离集群中SHOW PROC查看 tablet 信息时出错;
  • STRUCT 中 CHAR 数据长度超过上限时 INSERT 挂起;
  • INSERT INTO SELECT带 FULL JOIN 时部分数据行未返回;
  • ALTER TABLE修改default.storage_medium表属性时报 “Unknown table property”;
  • Broker Load 加载空文件时报错;
  • 下线 BE(Decommissioning)偶尔挂起。

3.6 版本 3.0.3(2023 年 6 月 28 日)

改进

  • StarRocks 外部表的元数据同步改为在数据加载时进行;
  • 分区自动创建的表执行INSERT OVERWRITE时可指定分区(详见自动分区能力);
  • 优化向非分区表添加分区时的错误信息。

Bug Fixes

  • Parquet 文件含复杂数据类型时 min/max filter 取错字段;
  • 库或表已删除时加载任务仍在排队;
  • FE 重启有小概率导致 BE 崩溃;
  • enable_profiletrue时加载与查询作业偶发冻结;
  • 存活 BE 少于 3 个的集群执行INSERT OVERWRITE时错误信息不准确。

3.7 版本 3.0.2(2023 年 6 月 13 日)

改进

  • 查询经异步物化视图改写后,UNION 查询中的谓词可下推;
  • 优化表的自动 tablet 分布策略;
  • 移除 NetworkTime 对系统时钟的依赖,修复各服务器系统时钟不一致导致的 NetworkTime 错误。

Bug Fixes

  • 数据加载与 Schema Change 并发时 Schema Change 可能挂起;
  • 会话变量pipeline_profile_level设为0时查询报错;
  • cloud_native_storage_type设为S3时 CREATE TABLE 报错;
  • 未使用密码时 LDAP 认证也能成功;
  • 加载作业涉及的表不存在时CANCEL LOAD失败。

升级说明

若系统中存在名为starrocks的数据库,升级前请使用ALTER DATABASE RENAME改名,因为starrocks是存放权限信息的新增默认系统库名。

3.8 版本 3.0.1(2023 年 6 月 1 日)

New Features

  • 【Preview】支持将大算子的中间计算结果溢写(Spill)到磁盘,降低大算子的内存消耗(详见仓库文档 docs/en/administration/spill_to_disk.md 对应的 Spill to disk 主题);
  • Routine Load 支持加载 Avro 数据;
  • 支持 Microsoft Azure Storage(含 Azure Blob Storage 与 Azure Data Lake Storage)。

改进

  • 存算分离集群支持使用 StarRocks 外部表与另一个 StarRocks 集群同步数据;
  • Information Schema 新增load_tracking_logs,记录最近的加载错误;
  • CREATE TABLE语句忽略特殊字符。

Bug Fixes

  • 主键表的SHOW CREATE TABLE返回信息不正确;
  • Routine Load 作业期间 BE 可能崩溃;
  • 创建分区表时指定不支持的属性触发空指针异常(NPE);
  • SHOW TABLE STATUS返回信息不完整。

升级说明

与 3.0.2 相同:若系统已有名为starrocks的数据库,升级前请先ALTER DATABASE RENAME

4. 源码定位指南:在仓库中查证 3.0 新参数与新特性

以下内容帮助你在当前仓库中定位 3.0 系列发布说明提到的关键改动,验证参数定义与实际默认值。

4.1 FE 配置项(fe/fe-core/src/main/java/com/starrocks/common/Config.java)

  • http_worker_threads_num:HTTP 服务线程数,默认 0(0 或负数时取 CPU 核数 2 倍);
  • enable_new_publish_mechanism:新版 Publish 机制开关,3.0.9 起为静态参数,修改需重启 FE,其执行载体为 PublishVersionDaemon.java 等事务发布组件;
  • default_mv_refresh_immediate:建 MV 后立即刷新,默认true
  • routine_load_unstable_threshold_second:Routine Load 不稳定阈值,当前仓库默认 3600 秒。

4.2 BE 配置项(be/src/common/config.h)

  • enable_stream_load_verbose_log(默认false):记录 Stream Load 的 HTTP 请求/响应;
  • pindex_major_compaction_limit_per_disk(默认1):限制每盘持久化索引 Major Compaction 并发,缓解盘间 I/O 不均;
  • object_storage_connect_timeout_ms/object_storage_request_timeout_ms:对象存储连接与请求超时配置,后者同时作为starlet_fslib_s3client_request_timeout_ms的别名。

对应的参数说明文档可参考 FE 参数文档 与 BE 参数文档。

4.3 会话变量与 sql_mode

  • cbo_decimal_cast_string_strictenable_materialized_view_for_insertenable_strict_type等会话变量统一定义在 SessionVariable.java 中;
  • sql_mode新增取值GROUP_CONCAT_LEGACY的实现位于 SqlModeHelper.java,以独立模式位(bit 36)表示,可与 MySQL 兼容模式叠加使用。

4.4 percentile_disc 的实现

3.0.9 新增的percentile_disc函数在 BE 侧实现于 percentile_cont.h、aggregator.cpp 与 aggregate_resolver_others.cpp 等文件中,函数注册在 FE 侧 FunctionSet.java 中声明,并有对应测试覆盖 aggregate_test.cpp 与 AnalyzeAggregateTest.java。其用法文档见 percentile_disc 函数文档。

4.5 max_tablet_rowset_num 指标

该指标在 BE 侧由 storage_metrics.h 定义、storage_metrics.cpp 更新,配合 tablet_manager.cpp 中的 rowset 数量检查,用于在写入侧提前发现 Compaction 滞后问题;监控告警的用法可参考 告警文档。

5. 运维升级要点小结

  • 升级路径:推荐 v2.5 → v3.0;升级到 v3.0 后 RBAC 默认启用,回退只能回 v2.5,且必须先处理 BDBJE jar(保留starrocks-bdb-je-18.3.13.jar、删除je-7.*.jar);
  • 命名冲突:自 3.0.1 起,用户库不应再占用starrocks这一默认系统库名;
  • 行为差异需评估group_concat强制SEPARATORenable_new_publish_mechanism静态化、trash 文件保留期缩短为 1 天、新增 10 个保留关键字(3.0.0)、enable_materialized_view_for_insert默认关闭 MV 对 INSERT 的改写等;
  • 对象存储用户:3.0.9 起可通过object_storage_connect_timeout_ms/object_storage_request_timeout_ms显式控制对象存储超时,注意当前仓库默认值已演进为10000ms,实际取值以所部署版本的配置为准;
  • 存算分离落地:3.0.0 的 shared-data 架构使数据可持久化到 S3 兼容对象存储并以本地盘做热数据缓存,这是后续 3.1+ 版本云原生能力的基础,规划架构时应重点评估缓存命中率与对象存储带宽。

【免费下载链接】starrocksThe world's fastest open query engine for sub-second analytics both on and off the data lakehouse. With the flexibility to support nearly any scenario, StarRocks provides best-in-class performance for multi-dimensional analytics, real-time analytics, and ad-hoc queries. A Linux Foundation project.项目地址: https://gitcode.com/GitHub_Trending/st/starrocks

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 22:52:48

虚拟电厂与共享储能:售电业务收益测算与市场组合策略

简介&#xff1a;这份PPT源自东南大学电气工程学院专家的专题报告&#xff0c;以虚拟电厂为核心&#xff0c;系统讲解其商业模式、售电业务及共享储能等新型业态。内容从新能源并网挑战切入&#xff0c;逐步展开VPP定义、资源组成、功能类型&#xff0c;以及参与主体、市场定位…

作者头像 李华
网站建设 2026/9/17 22:50:52

iloader+StikDebug工作流:配对文件投放与调试App联动的完整教程

iloaderStikDebug工作流&#xff1a;配对文件投放与调试App联动的完整教程 【免费下载链接】iloader User friendly sideloader 项目地址: https://gitcode.com/GitHub_Trending/iloa/iloader iloader 是一款开箱即用的 iOS 侧载&#xff08;sideloading&#xff09;工具…

作者头像 李华
网站建设 2026/9/17 22:49:36

论文查重工具评测与降重技巧全攻略

1. 论文查重工具的必要性与选择困境第一次接触论文查重时&#xff0c;我和大多数研究生一样手足无措。记得三年前提交硕士论文前夜&#xff0c;我连续尝试了三个不同平台&#xff0c;结果重复率从18%到42%不等——这种巨大的差异让我深刻意识到&#xff1a;查重工具的选择本身就…

作者头像 李华
网站建设 2026/9/17 22:48:45

STM32数据采集系统实战:ADC+DMA双缓冲与传感器驱动落地

简介&#xff1a;本资源是一份面向嵌入式开发初学者与STM32实践者的英文技术文献&#xff0c;聚焦旋转机械振动监测场景下的实时数据采集系统设计&#xff0c;解决工业设备状态预测与故障诊断中的核心信号采集难题。文档完整阐述基于ARM Cortex-M3内核STM32微控制器的数据采集系…

作者头像 李华
网站建设 2026/9/17 22:47:11

blender笔记2

一、物体贴地 物体->变换->对齐物体 ->对齐弹窗(对齐模式&#xff1a;反方&#xff0c;相对于&#xff1a;场景原点&#xff0c;对齐&#xff1a;z)。 之后可以设置原点->原点--3d游标 二、面上有阴影 在编辑模式下操作过后&#xff0c;物体面有阴影。 数据-&g…

作者头像 李华