StarRocks 3.2 版本全解析:数据湖分析、主键表持久化索引与 Data Cache 演进

StarRocks 3.2 版本全解析:数据湖分析、主键表持久化索引与 Data Cache 演进 StarRocks 3.2 版本全解析数据湖分析、主键表持久化索引与 Data Cache 演进【免费下载链接】starrocksThe worlds 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/starrocksStarRocks 3.2 是一个横跨 2023 年 12 月至 2025 年 4 月的大版本从 3.2.0 一直迭代到 3.2.16核心围绕数据湖分析Unified Catalog、Hive/Iceberg 管理表、主键表持久化索引、Data Cache原 Block Cache重命名与参数重构、Pipeline 引擎全面强制启用等方向展开。本文将基于仓库 docs/en/release_notes/release-3.2.md 的完整发布说明结合 be/src/common/config.h、fe/fe-core/src/main/java/com/starrocks/common/Config.java 等源码逐项印证帮助你完整理解 3.2 版本的架构变化、参数体系与升级注意事项并掌握每个小版本的修复重点。1. 版本总览与时间线StarRocks 3.2 系列共发布了 17 个版本3.2.0 至 3.2.16其中两个版本被撤回版本发布日期版本性质3.2.02023-12-01大版本首发3.2.12023-12-21维护版本3.2.22023-12-30维护版本3.2.32024-02-08维护版本3.2.42024-03-12Yanked撤回3.2.52024-04-12Yanked撤回3.2.62024-04-18维护版本3.2.72024-05-24维护版本3.2.82024-06-07维护版本3.2.92024-07-11维护版本3.2.102024-08-23维护版本3.2.112024-09-09维护版本3.2.122024-10-23维护版本3.2.132024-12-13维护版本3.2.142025-01-08维护版本3.2.152025-02-14维护版本3.2.162025-04-30维护版本3.2.4 与 3.2.5 被撤回的原因查询外部 Catalog如 Hive、Iceberg中的外部表时存在权限问题——即使用户对该表拥有 SELECT 权限访问仍会被拒绝而SHOW GRANTS却显示用户拥有该权限。该问题仅影响外部 Catalog 中的外部表查询其他查询不受影响。临时规避方法是重新授予 SELECT 权限但SHOW GRANTS会出现重复权限条目升级到 v3.2.6 后可用REVOKE移除重复条目。2. 数据湖分析Data Lake Analytics3.2 的核心增强2.1 Unified Catalog统一访问 Hive / Iceberg / Hudi / Delta Lake3.2.0 引入了Unified Catalog允许通过一个 Catalog 访问共享同一元数据服务如 Hive metastore 或 AWS Glue的不同表格式Hive、Iceberg、Hudi 和 Delta Lake。这大幅简化了混合数据湖场景下的元数据管理用户不再需要为每种表格式单独创建 Catalog。2.2 Hive Catalog 增强管理表创建、写入与 JNI 读取3.2.0 支持在 Hive Catalog 中创建和删除数据库、管理表managed table并支持通过INSERT或INSERT OVERWRITE将数据导出到 Hive 管理表。3.2.1 支持通过 Java Native InterfaceJNI读取 Hive Catalog 表及文件外部表中的Avro、SequenceFile、RCFile格式。3.2.4 支持在 Hive Catalog 中执行CREATE TABLE LIKE。3.2.9 起 Hive 表支持skip.header.line.count属性便于跳过 CSV 类文件的表头行。2.3 外部表统计信息与元数据管理3.2.0 支持使用ANALYZE TABLE收集 Hive 和 Iceberg 表的统计信息并存储在 StarRocks 中从而优化查询计划、加速后续查询同时支持外部表的信息模式Information Schema方便 BI 工具等外部系统与 StarRocks 交互。3.2.3 支持从 Iceberg 表含 Partition Transform收集统计信息。3.2.7 的ANALYZE TABLE支持为外部表收集直方图histogram可有效应对数据倾斜问题。3.2.14 支持收集 Paimon 表的统计信息。2.4 Iceberg Catalog 能力优化3.2.0支持从 Manifest 文件收集列统计信息以加速查询支持从 Puffin 文件收集 NDV不同值数量以加速查询支持分区裁剪partition pruning降低 Iceberg 元数据内存占用提升大元数据量或高并发查询场景下的稳定性。3.2.4 起 Iceberg Catalog 参数enable_iceberg_metadata_cache默认值调整为false3.2.1 至 3.2.3 默认true若 Iceberg 集群使用 AWS Glue 作为 metastore该参数仍默认true使用 Hive metastore 等其他服务时默认false。2.5 FILES() 表函数与数据湖读写3.2.0 大幅扩展了FILES()表函数支持从Azure 或 GCP加载 Parquet 和 ORC 格式数据支持通过参数columns_from_path从文件路径中提取 key/value 对作为列值支持加载 ARRAY、JSON、MAP、STRUCT 等复杂数据类型。3.2 后续版本持续优化 FILES()3.2.10自动将 Parquet 中logical_type为JSON的BYTE_ARRAY数据转换为 StarRocks 的 JSON 类型3.2.11读取 Parquet 时支持自动推断 STRUCT 类型修复读取 TIMESTAMP 等复杂类型时时区使用错误的问题3.2.13修复 FILES() 读取了未查询列的问题3.2.15 前3.2.5优化了不同文件里同名不同类型列的合并规则按粒度更大的类型合并如 FLOAT 与 INT 合并为 DOUBLE。同时 3.2.0 支持使用INSERT INTO FILES将数据从 StarRocks 卸载为 AWS S3 或 HDFS 上的Parquet 格式文件3.2.3 新增会话变量connector_sink_compression_codec用于指定写入 Hive/Iceberg 表或 FILES() 导出时的压缩算法GZIP、BROTLI、ZSTD、LZ4。2.6 PIPE面向 S3/HDFS 的持续数据导入3.2.0 支持通过PIPE从 AWS S3 或 HDFS 持续加载数据当 PIPE 检测到远程存储目录有新文件或文件被修改时自动将新数据加载到 StarRocks 目标表加载过程中 PIPE 自动将大的加载任务拆分为多个小的串行任务提升大规模数据导入场景的稳定性并降低错误重试成本。3.2.3 支持CREATE OR REPLACE PIPE3.2.11 支持对 FILES() 与 PIPE 的认证信息进行掩码处理。2.7 Reader 性能优化3.2.0ORC ReaderORC Column Reader 对 VARCHAR/CHAR 的读取性能提升近两倍优化 Zlib 压缩格式 ORC 文件的解压性能。Parquet Reader支持自适应 I/O 合并根据过滤效果自适应合并带谓词与不带谓词的列降低 I/O优化 Dict Filter支持 STRUCT 子列与按需字典列解码优化 Dict Decode 与 late materialization支持缓存文件 footer 避免重复计算支持 lzo 压缩格式解压。CSV Reader优化读取性能支持 Snappy 和 lzo 压缩格式解压。优化 count 计算的性能。3. 主键表持久化索引与同步 Publish3.1 持久化索引与同步发布机制3.2.0 在共享数据shared-data集群中支持将主键表的索引持久化到本地磁盘此前仅支持存放到对象存储并优化了主键表持久化索引的内存使用逻辑同时降低 I/O 读写放大对应 PR #24875、#27577、#28769。主键表还支持跨本地磁盘的数据再分布。同步 Publish写入主键表的数据加载任务的 Publish 阶段由异步模式改为同步模式加载任务完成后数据可立即查询。该行为由 FE 配置项enable_sync_publish控制3.2.0 起默认值从false改为true在源码 Config.java 中可以看到当前默认值即为truepublic static boolean enable_sync_publish true;同时enable_persistent_index_by_default是否默认为主键表启用持久化索引默认值也从false改为true见 Config.java。3.2 主键表后续迭代3.2 系列对主键表持续投入3.2.3新增 BE 配置项lake_pk_compaction_max_input_rowsets共享数据集群中主键表 compaction 任务允许的最大输入 rowset 数默认500见 config.h用于优化 compaction 任务资源消耗新增pindex_major_compaction_limit_per_disk单盘 compaction 最大并发度默认1解决因 compaction 导致各磁盘 I/O 不均衡的问题新增enable_lazy_delta_column_compaction默认true避免对 delta 列频繁 compaction。3.2.5主键表支持Size-tiered Compaction降低 I/O 放大3.2.4 中共享数据集群的云原生主键表也支持该能力。3.2.7支持混合行列存储表hybrid row-column storagePreview提升主键表高并发低延迟点查与部分更新的性能该功能暂不支持 ALTER TABLE 修改、修改 Sort Key 及列模式部分更新。3.2.9修复共享数据集群中主键表 Vertical Compaction 失败的问题。3.2.10修复列模式部分更新在大数据量更新场景下失败的问题修复主键表持久化索引l0快照在磁盘写失败时可能丢数据的问题修复主键表索引持久化与 compaction 冲突导致克隆失败的问题。3.2.13修复主键表 Tablet 加载时优先级评估逻辑缺陷导致的版本识别错误与数据丢失3.2.16 修复。4. 物化视图Materialized View演进4.1 异步物化视图3.2.0Query Dump 文件可包含异步物化视图信息异步物化视图刷新任务默认启用Spill to Disk落盘降低内存消耗当视图、物化视图或其基表发生 Schema 变更时支持异步物化视图自动刷新数据一致性新增query_rewrite_consistency属性定义基于一致性检查的查询改写规则新增force_external_table_query_rewrite属性用于外部 Catalog 异步物化视图是否允许强制查询改写增加物化视图分区键一致性检查使用带 PARTITION BY 表达式的窗口函数创建异步物化视图时窗口函数的分区列必须与物化视图一致支持 Trace Query Profile 分析异步物化视图的透明改写。4.2 异步物化视图后续增强3.2.1新增sys.object_dependencies视图记录异步物化视图的血缘信息支持基于 Iceberg Catalog 的异步物化视图分区级增量刷新支持基于 Paimon Catalog 表的异步物化视图分区级刷新Preview。3.2.3支持备份和恢复异步物化视图支持基于视图创建物化视图并做查询改写。3.2.4支持对基于逻辑视图创建的物化视图进行查询改写物化视图刷新权限由root用户改为创建物化视图的用户不影响已有物化视图。4.3 同步物化视图3.2.1 支持带 WHERE 子句创建同步物化视图3.2.5 支持dict_mapping列属性可显著简化全局字典构建过程中的加载加速精确 COUNT DISTINCT 计算。4.4 相关参数3.2.3FE 配置项default_mv_refresh_immediate默认true创建物化视图后是否立即刷新FE 配置项default_mv_refresh_partition_num默认值改为1物化视图刷新涉及多分区时任务分批执行每次只刷新一个分区降低单次刷新资源消耗。5. 查询能力与 SQL 函数5.1 HTTP SQL API 与 Profile 分析3.2.0 支持HTTP SQL API用户可通过 HTTP 访问 StarRocks 数据并执行 SELECT、SHOW、EXPLAIN、KILL 操作支持 Runtime Profile 与基于文本的 Profile 分析命令SHOW PROFILELIST、ANALYZE PROFILE、EXPLAIN ANALYZE可直接通过 MySQL 客户端分析 Profile定位瓶颈。5.2 新函数与兼容性3.2.0 新增函数字符串函数substring_index、url_extract_parameter、url_encode、url_decode、translate日期函数dayofweek_iso、week_iso、quarters_add、quarters_sub、milliseconds_add、milliseconds_sub、date_diff、jodatime_format、str_to_jodatime、to_iso8601、to_tera_date、to_tera_timestamp模式匹配regexp_extract_all哈希函数xx_hash3_64聚合函数approx_top_k窗口函数cume_dist、percent_rank、session_number工具函数get_query_profile、is_role_in_session。其他函数增强3.2.1新增 Bitmap 函数subdivide_bitmap、bitmap_from_binary、bitmap_to_binary新增数组函数array_unique_agg支持预处理语句prepared statement提升高并发点查性能并有效防 SQL 注入新增日期函数milliseconds_diff3.2.4。3.2.4兼容 Trino 语法支持current_catalog、current_schema、to_char、from_hex、to_date、to_timestamp、index等函数BITMAP类型列的agg_type可设为replace_if_not_null以支持仅更新表的部分列将 STRING 转 DATETIME 的效率提升 35%~40%。3.2.9窗口函数支持max_by与min_by。3.2.15窗口函数支持max_by和min_by的补充支持对应 PR #54961。5.3 行为变更相关会话变量3.2.3 新增enable_strict_order_by默认TRUE对查询不同表达式使用重复别名且该别名同时是 ORDER BY 排序字段如select distinct t1.* from tbl1 t1 order by t1.k1;报错逻辑与 v2.3 及更早版本一致设为FALSE时使用宽松去重机制。3.2.3 新增enable_materialized_view_for_insert默认false控制物化视图是否改写 INSERT INTO SELECT 中的查询。3.2.3Pipeline 框架内单查询内存限制改由query_mem_limit约束0表示不限不再使用exec_mem_limit。3.2.0 新增large_decimal_underlying_type panic|double|decimal设置 DECIMAL 溢出处理规则立即报错 / 转 DOUBLE / 转 DECIMAL(38,s)。3.2.4 新增cbo_decimal_cast_string_strict默认true控制 CBO 将 DECIMAL 转为 STRING 的方式严格转换按 scale 截断并补 0同时可通过会话变量cbo_eq_base_type调整常量与字符串类型列的比较规则。6. 权限与安全Apache Ranger 集成3.2.0 支持通过Apache Ranger进行访问控制提供更高等级的数据安全并允许复用外部数据源的既有服务。集成后支持两种访问控制方式访问 StarRocks 内部表、外部表或其他对象时基于 Ranger 中为 StarRocks Service 配置的访问策略实施访问控制访问外部 Catalog 时可复用原始数据源对应的 Ranger 服务如 Hive Service进行控制目前尚不支持对导出到 Hive 的数据做访问控制。3.2.9 进一步支持通过 Apache Ranger 实现列级访问控制并优化了权限管理——限制user_admin角色的用户重置 root 用户密码。7. 导入、导出与存储7.1 Stream Load3.2.7Stream Load 支持传输压缩可通过参数compression与Content-Encoding指定压缩算法GZIP、BZIP2、LZ4_FRAME、ZSTD降低网络带宽开销。3.2.9Stream Load 支持将 JSON 字符串自动转换为 STRUCT/MAP/ARRAY 类型支持直接使用\t和\n作为行列分隔符无需转换为十六进制 ASCII 码。3.2.13修复使用 HTTP 1.0 提交 Stream Load 失败的问题。3.2.15修复调度到 Alive 状态为 false 的节点时 Stream Load 失败的问题修复主键表 Stream Load 部分更新报错的问题。3.2.16Stream Load 任务调度支持BE 节点黑名单黑名单中的节点将不参与任务调度PR #57919。7.2 Broker Load 与 Routine Load3.2.3Broker Load 支持加载 JSON 类型数据新增 FE 配置项routine_load_unstable_threshold_second默认3600秒见 Config.java。3.2.3 起 SHOW ROUTINE LOAD 返回新增LatestSourcePosition字段记录 Kafka topic 各分区最新消息位置便于排查加载延迟3.2.1 起新增OtherMsg字段展示最近一次失败任务的信息。3.2.5Broker Load 加载含 TIMESTAMP 数据的 ORC 文件时转换到 DATETIME 可保留微秒精度。3.2.12优化 BE 复杂查询场景的内存分配与统计以避免 OOM优化 FE 在 Schema Change 场景的内存使用支持 List 分区表的备份与恢复。3.2.13修复 SHOW ROUTINE LOAD 后loadRowsRate字段返回 0 的问题修复 Routine Load 因事务过期被错误取消的问题现在仅在数据库或表不存在时才取消任务修复 Glue/S3 集成的多个问题错误信息未显示根因、Glue 元数据服务下写 STRING 分区列 Hive 分区表报错、权限不足删除 Hive 表无错误提示。7.3 数据分布与分桶优化3.2.0 支持对已有表手动优化表结构和数据分布策略可设置新的分桶键、分桶数或排序键也可为特定分区设置不同分桶数支持为 Random Bucketing 的 Duplicate Key 表根据集群信息和数据量动态调整 tablet 数量需在建表时添加bucket_size属性。3.2.9 行为变更创建非分区表未指定分桶数时系统设置的最小分桶数为16此前为按公式2*BE 或 CN 数量计算的2创建分区表未指定分桶数且分区数超过 5 时分桶数规则改为max(2*BE 或 CN 数量, 按最大历史分区数据量计算的分桶数)。3.2.15List 分区策略的表支持 DELETE 语句的分区裁剪PR #55400。7.4 存储冷却与 Schema 变更3.2.0 支持分区表基于分区时间范围和冷却时间自动冷却便于在分区级别进行冷热数据管理。3.2.0 支持Fast Schema Evolution由表属性fast_schema_evolution控制默认false且不能用 ALTER TABLE 修改开启后加减列的效率显著提升。3.2.4 支持混合行列存储表执行 Schema Change并支持 BITMAP、HLL、JSON、ARRAY、MAP、STRUCT 等复杂类型。3.2.13 支持为特定表设置禁止 Base Compaction 的时间范围PR #50120。8. 参数体系变更Data Cache 重命名重点8.1 Block Cache → Data Cache 参数重构3.2.0 将Block Cache 重命名为 Data Cache并引入一套以datacache前缀命名的新 BE 参数替换原block_cache前缀参数。升级到 v3.2 后旧参数仍会生效但一旦启用新参数会覆盖旧参数新旧参数混用不被支持可能导致部分配置不生效。未来版本将废弃block_cache前缀参数官方建议使用新参数。新增的替换关系如下新参数v3.2旧参数≤v3.1datacache_enableblock_cache_enabledatacache_mem_sizeblock_cache_mem_sizedatacache_disk_sizeblock_cache_disk_sizedatacache_disk_pathblock_cache_disk_pathdatacache_meta_pathblock_cache_meta_pathdatacache_block_sizeblock_cache_block_sizedatacache_checksum_enableblock_cache_checksum_enabledatacache_direct_io_enableblock_cache_direct_io_enabledatacache_max_concurrent_insertsblock_cache_max_concurrent_insertsdatacache_engineblock_cache_enginedatacache_max_flying_memory_mb新增—移除block_cache_max_parcel_memory_mb—移除block_cache_report_stats—移除block_cache_lru_insertion_point在源码 be/src/common/config.h 中可以看到 Data Cache 参数的真实默认值及与旧参数的别名映射CONF_Bool(datacache_enable, true); CONF_mString(datacache_mem_size, 20%); CONF_mString(datacache_disk_size, 100%); CONF_Int64(datacache_block_size, 262144); // 256K CONF_Bool(datacache_checksum_enable, false); CONF_Bool(datacache_direct_io_enable, false); CONF_Int64(datacache_max_concurrent_inserts, 1500000); CONF_Int64(datacache_max_flying_memory_mb, 2); CONF_Alias(datacache_block_size, block_cache_block_size); CONF_Alias(datacache_max_concurrent_inserts, block_cache_max_concurrent_inserts); CONF_Alias(datacache_checksum_enable, block_cache_checksum_enable); CONF_Alias(datacache_direct_io_enable, block_cache_direct_io_enable);datacache_disk_path的解析逻辑位于 be/src/cache/datacache_utils.cpp 的DataCacheUtils::parse_conf_datacache_disk_paths解析失败时会返回Status::InvalidArgument并记录警告日志。3.2.0 还新增了两个相关能力Data Cache 在多个本地磁盘间均匀分布3.2.7 支持异步填充 Data Cache降低缓存填充对查询性能的影响。3.2.3 起 BE/CN 配置项starlet_use_star_cache默认改为true即共享数据集群默认启用 Data Cache若升级前手动设置了starlet_cache_evict_high_water X则升级后必须将starlet_star_cache_disk_size_percent设为(1.0 - X) * 100例如X 0.3时设为70确保文件数据缓存与 Data Cache 都不超过磁盘容量上限。8.2 会话变量重命名enable_scan_block_cache更名为enable_scan_datacacheenable_populate_block_cache更名为enable_populate_datacache。8.3 3.2.0 新增/移除的 BE 参数新增spill_max_dir_bytes_ratio默认0.8见 config.h落盘目录字节数比例上限streaming_agg_limited_memory_size默认134217728字节即 128MB见 config.h流式聚合受限内存大小streaming_agg_chunk_buffer_size默认1024见 config.h流式聚合 chunk 缓冲区大小。移除动态参数tc_use_memory_min、tc_free_memory_rate、tc_gc_period静态参数tc_max_total_thread_cache_byte。默认值变更disable_column_poolfalse→truethrift_port9060→0enable_load_colocate_mvfalse→trueenable_pindex_minor_compactionfalse→true。8.4 3.2.0 新增/移除/改名的 FE 参数与会话变量新增 FE 配置项catalog_metadata_cache_size默认500见 Config.javaenable_backup_materialized_view默认false见 Config.javaenable_colocate_mv_index默认true见 Config.javaenable_fast_schema_evolution当前默认true见 Config.javajson_file_size_limit默认4294967296即 4GB见 Config.javalake_enable_ingest_slowdown默认true见 Config.javalake_ingest_slowdown_threshold默认100见 Config.javalake_ingest_slowdown_ratio默认0.1见 Config.javalake_compaction_score_upper_bound默认2000仅在lake_enable_ingest_slowdowntrue时生效见 Config.javamv_auto_analyze_async默认true见 Config.javaprimary_key_disk_schedule_time默认3600秒即 1 小时见 Config.javastatistic_auto_collect_small_table_rows默认10000000即 10M 行见 Config.javastream_load_task_keep_max_num默认1000见 Config.javastream_load_task_keep_max_second默认3 * 24 * 3600即 3 天见 Config.java移除enable_pipeline_load其字段仍存在于 Config.java但已不在 3.2 的参数体系中生效。新增会话变量enable_per_bucket_optimize、enable_write_hive_external_table、hive_temp_staging_dir、spill_revocable_max_bytes、thrift_plan_protocol。移除会话变量enable_pipeline_query_statistic、enable_deliver_batch_fragments。保留字新增OPTIMIZE和PREPARE。8.5 3.2.3 新增参数与 3.2.15 StarClient 超时参数3.2.3 新增的配置项还包括FE 配置项http_worker_threads_num默认0若设为负数或0实际线程数为 CPU 核数的两倍见 Config.javaBE 配置项lake_pk_compaction_max_input_rowsets共享数据集群主键表 compaction 最大输入 rowset 数默认500。3.2.15 新增三个 StarClient 超时参数star_client_read_timeout_seconds、star_client_list_timeout_seconds、star_client_write_timeout_seconds。8.6 3.2.10 加载内存硬限制3.2.10 新增 BE 内存限制参数load_process_max_memory_hard_limit_ratio数据加载内存使用超过该限制后后续加载任务将失败同时新增 FE 启动脚本对meta目录的检查目录不存在时自动创建。9. 共享数据集群Shared-data专项3.2.0主键表索引持久化到本地磁盘Data Cache 多本地磁盘均匀分布。3.2.3starlet_use_star_cache默认开启 Data Cache详见 8.1 的配置换算说明。3.2.4支持 S3 兼容对象存储的Partitioned Prefix 特性启用后数据按统一前缀分布到 bucket 下的多个分区子路径提升 S3 兼容对象存储数据文件的读写效率新增s3_compatible_fs_list参数指定可通过 AWS SDK 访问的 S3 兼容存储fallback_to_hadoop_fs_list参数指定需通过 HDFS Schema 访问的非 S3 兼容存储需使用厂商提供的 JAR 包。3.2.7优化共享数据集群的垃圾回收GC机制支持对对象存储中的表或分区执行手动 compaction。3.2.10修复将 v3.3 共享数据集群降级到 v3.2 时主键表设置persistent_index_type CLOUD_NATIVE导致崩溃的问题修复共享数据集群中主键表持久化索引的 GC 与线程回收机制在 CN 节点不生效导致废弃数据无法删除的问题3.2.5 修复。10. 升级注意事项Upgrade Notes升级到 3.2 前必须注意两点Random Bucketing 优化默认关闭如要启用需在建表时添加bucket_size属性系统即可根据集群信息和加载数据量动态调整 tablet 数量。注意启用后如需回滚到 v3.1 或更早版本必须先删除启用了该优化的表并手动执行元数据检查点执行ALTER SYSTEM CREATE IMAGE否则回滚会失败。非 Pipeline 查询已禁用从 v3.2.0 起 StarRocks 禁用了非 Pipeline 查询。升级前需在 FE 配置文件fe.conf中全局启用 Pipeline 引擎添加enable_pipeline_enginetrue否则非 Pipeline 查询会报错。3.2.11 还包含一条降级说明从 v3.3.x 降级到 v3.2.11 时若存在不兼容元数据系统会忽略之PR #49636。其他重要行为变更3.2.1JDK8 默认 GC 算法升级为 G1sql_mode新增GROUP_CONCAT_LEGACY选项兼容 v2.5 之前版本的group_concat实现Broker Load 中 AWS S3 的aws.s3.access_key与aws.s3.access_secret认证信息在审计日志中隐藏be_tablets视图新增INDEX_DISK字段记录持久化索引磁盘占用字节。3.2.3LIKE 操作符右侧字符串不含%或_时自动转换为运算符trash 文件默认保留期从 3 天改为 1 天Routine Load 调度策略优化慢任务不再阻塞其他正常任务。3.2.4物化视图刷新权限改为创建者information_schema.partitions_meta视图记录分区详细元数据sys.fe_memory_usage视图记录内存使用情况。3.2.9JAVA_OPTS参数值继承顺序变更若使用 JDK_9/JDK_11 之外版本需直接配置JAVA_OPTS。3.2.12支持动态修改 Backup/Restore 相关参数。11. 监控与系统视图3.2 版本新增或增强了大量监控与诊断能力3.2.0information_schema.columns视图3.2.10 支持GENERATION_EXPRESSION字段Profile 分析命令套件。3.2.1新指标max_tablet_rowset_num用于设置 rowset 最大数量上限帮助提前发现 compaction 问题、减少 too many versions 错误be_tablets视图新增INDEX_DISK字段。3.2.2/3.2.3information_schema.be_tablets新增storage_medium字段Data Cache 相关指标加入监控 API新增记录统计信息与物化视图日志的内部 SQL 日志文件。3.2.12从 Follower FE 节点查询information_schema.routine_load_jobs时优化任务状态展示新增information_schema.fe_locks视图3.2.12 修复了访问该视图导致崩溃的问题。3.2.13Prometheus 解析含特殊字符名称的物化视图指标失败的问题已修复物化视图指标现支持 tags。3.2.14JSON 指标中纳入节点信息与直方图指标。3.2.3新增max_tablet_rowset_num相关 metric 说明的延续——LatestSourcePosition字段加入 SHOW ROUTINE LOAD 返回结果。12. 从 3.2.1 到 3.2.16维护版本修复要点速查版本关键新特性/改进关键修复方向3.2.1JNI 读取 Avro/SequenceFile/RCFile同步物化视图 WHERE 子句prepared statementenable_stream_load_verbose_log默认false见 config.hBE 在数据损坏时创建持久化索引崩溃array_distinct偶发崩溃S3 兼容存储返回重复文件导致崩溃3.2.2—从 v3.1.2 及更早版本升级后 FE 重启失败3.2.3混合行列存储Preview备份恢复异步物化视图Broker Load 加载 JSONCREATE OR REPLACE PIPE大批参数变更ANALYZE TABLE 偶发卡住PageCache 内存超限bitmap_to_string 结果错误半结构化数据查询崩溃3.2.4撤回云原生主键表 Size-tiered Compactionmilliseconds_diffcatalog会话变量information_schema.partitions_metaTrino 兼容S3 Partitioned Prefix主键表持久化索引导致 I/O 打满共享数据集群主键索引目录每 5 小时被删除Publish 阶段重试挂起3.2.5撤回dict_mapping列属性FILES 类型合并优化主键表 Size-tiered Compaction共享数据集群持久化索引 GC 失效异步物化视图分区范围不连续3.2.6—外部表权限不兼容问题修复 3.2.4/3.2.5 撤回的原因3.2.7Stream Load 传输压缩共享数据集群手动 compactionFlink connector 读取复杂类型异步 Data Cache 填充外部表直方图统计Lateral Join UNNEST 支持 LEFT JOIN基于 Hive 视图创建异步物化视图query_pool_spill_mem_limit_threshold默认1.0见 config.hBITMAP 并发读写崩溃主键索引崩溃str_to_map 高并发崩溃Ranger Masking 别名问题容器环境内存信息错误3.2.8BE 标签基于机架/数据中心表达式分区 str2date 的 DELETE 报错跨集群迁移工具获取 Schema 失败导致目标集群 BE 崩溃非确定性函数查询报 Multiple entries with same key3.2.9Paimon DELETE VectorsRanger 列级访问控制Stream Load JSON 自动转换复杂类型JDBC Catalog 支持 Oracle/SQL Serverskip.header.line.count共享数据集群升降级相关 BE 崩溃SUBMIT TASK 状态卡死SHOW MATERIALIZED VIEWS 空指针表属性值含空白不生效3.2.10FILES() JSON 自动转换columns 视图 GENERATION_EXPRESSION共享数据集群降级崩溃OUTFILE 导出 CSV 数据不一致Plan 阶段超时挂起page_off 数组越界ADD/DROP COLUMN 并发崩溃aarch64 负 TINYINT 查询partition_line_number不生效CTE distinct grouping sets 非法计划3.2.11FILES()/PIPE 认证信息掩码Parquet STRUCT 自动推断全局字典改写 equi-join 报错Tablet Clone 无限循环统计日志报错Parquet TIMESTAMP 时区错误3.2.12BE 内存优化防 OOMFE Schema Change 内存优化List 分区表备份恢复动态修改备份恢复参数Hive 写入失败错误信息丢失array_map 常量参数过多崩溃表达式分区特殊字符导致 FE CheckPoint 失败fe_locks 视图崩溃生成列查询报错表名含特殊字符时 OPTIMIZE 失败3.2.13指定表禁止 Base Compaction 时间范围SHOW ROUTINE LOADloadRowsRate为 0FILES() 读取未查询列Prometheus 物化视图指标解析失败array_map 崩溃元数据缓存崩溃Routine Load 误取消HTTP 1.0 Stream Load 失败Glue/S3 集成错误信息3.2.14Paimon 表统计信息收集JSON 指标含节点信息与直方图主键表索引 Commit 阶段分数未更新低基数优化下max(count(distinct))执行计划错误List 分区 NULL 值裁剪错误HDFS 备份上传重试失败3.2.15窗口函数max_by/min_byStarClient 超时参数List 分区 DELETE 裁剪Stream Load 调度到非 Alive 节点失败主键表部分更新报错BE 重启后 bRPC 错误持续3.2.16Stream Load BE 节点黑名单建 tablet 超时files() 建视图丢失认证信息优化器空集常量比较错误预聚合溢出崩溃删除基表分区后关联物化视图删除失败主键表 Tablet 加载优先级缺陷致数据丢失13. 总结与升级建议StarRocks 3.2 是连接本地数仓与数据湖能力的关键版本Unified Catalog 让一个集群统一访问 Hive/Iceberg/Hudi/Delta Lake 四种表格式主键表持久化索引落盘与同步 Publish 显著改善了实时更新场景的稳定性与可见性Data Cache 参数体系的重构为后续版本的数据缓存演进奠定了基础。对于计划升级到 3.2 的用户请务必按第 10 节的升级注意事项操作全局开启 Pipeline 引擎、理解 Random Bucketing 优化约束、完成block_cache→datacache参数迁移并注意 3.2.4/3.2.5 已被撤回应直接选用 3.2.6 及以上版本。更多细节可参考仓库中的 发布说明原文、BE 配置定义 be/src/common/config.h 与 FE 配置定义 fe/fe-core/src/main/java/com/starrocks/common/Config.java。【免费下载链接】starrocksThe worlds 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),仅供参考