资讯动态

ClickHouse 2026 年度版本全解读:26.1 到 26.9 的关键演进、不兼容变更与升级实战

发布时间:2026/9/20 13:29:42 来源:尧图企业网站定制
ClickHouse 2026 年度版本全解读26.1 到 26.9 的关键演进、不兼容变更与升级实战【免费下载链接】ClickHouseClickHouse® is a real-time analytics database management system项目地址: https://gitcode.com/GitHub_Trending/cli/ClickHouse2026 年 ClickHouse 从 26.1 一路迭代到 26.9其中 26.3 与 26.8 被标记为 LTS长期支持版本。本文以仓库内的 2026 年官方 Changelogdocs/_includes/content/changelog.md为主体逐版本梳理向后不兼容变更、新功能、实验性功能、性能改进与稳定性修复的主线并结合仓库源码说明其落地位置。读完本文你将能回答三个问题升级前必须处理哪些红线变更每个版本带来了哪些值得立即使用的 SQL、引擎与系统表如何利用compatibility设置平滑过渡并规避已知坑位。一、2026 年发布节奏总览ClickHouse 2026 年保持每月一版的节奏两个版本被标记为 LTS官方推荐的长期生产版本为 26.3 与 26.8版本发布日期定位本期最值得关注的变更26.9进行中in progress常规版本分析器不可再关闭、默认压缩切换为ZSTD(3)、CREATE TOKEN、DISTINCT落盘26.82026-08-27LTSPipe 操作符、run_query_in_background、system.user_query_log、Keeper 落盘存储26.72026-07-22常规版本EXPLAIN ANALYZE、-Tuple聚合组合器、QBit向量存储、GeoJSON格式26.62026-06-25常规版本流式查询雏形、假设索引 WHATIF、PNG输出、system.documentation26.52026-05-21常规版本日期解析默认改best_effort、LIMIT BY支持负数、filesystem表函数26.42026-04-30常规版本Arrow Flight SQL、NATURAL JOIN、VALUES表表达式、文本索引 GA26.32026-03-26LTSMap桶化序列化、物化 CTE、table_readonly设置、异步插入默认开启26.22026-02-26常规版本插入去重默认开启、QBitGA、TOTP 认证、ClickStack 集成26.12026-01-29常规版本use_variant_as_common_type默认开启、Keeper HTTP API、mergeTreeAnalyzeIndexes二、向后不兼容变更升级前必须处理的红线Changelog 每版都以 Backward Incompatible Change 开头这是运维升级前最需要逐条核对的部分。按主题归类如下。1. 查询引擎与分析器分析器彻底不可关闭26.9enable_analyzer及其旧名allow_experimental_analyzer成为历史设置为0会被直接拒绝compatibility也不再回退它。分析器自 24.3 起就是默认旧的分析路径已不受支持。若要与旧分析行为对比只能使用 26.9 之前的版本。NOT运算符优先级对齐 SQL 标准26.3NOT现在比IS NULL、BETWEEN、LIKE绑定更松NOT (x) IS NULL由(NOT x) IS NULL变为NOT (x IS NULL)依赖旧语义的查询结果会变化。EXPLAIN SYNTAX输出改为单条记录26.8默认以单条含换行的String记录返回single_record 1SELECT count() FROM (EXPLAIN SYNTAX ...)直接返回 1single_record 0恢复逐行输出。UNION裸写报错更友好26.9提示应写UNION ALL/UNION DISTINCT或设置union_default_mode。LIMIT n WITH TIES需配合ORDER BY26.x 多轮修复多个版本修复了WITH TIES在分布式、负LIMIT、collation 下的边界行为。2. 压缩与存储格式默认压缩从LZ4切换为ZSTD(3)26.9这是 2026 年影响面最大的存储变更之一。客户端/服务端、服务端/服务端网络通信统一改用ZSTD(3)MergeTree列数据按写时已知的 part 大小自适应——低于 100 MB 用LZ4达到或超过用ZSTD(3)StripeLog、Set/Join引擎持久文件、checksums.txt等一律ZSTD(3)HTTPcompress1也走network_compression_method。恢复旧行为的方式网络压缩用compatibility或network_compression_methodLZ4列数据用CODEC(LZ4)其余流无运行时回退每帧自带描述读取始终正确。序列化版本向嵌套类型传播26.3LTS 版本最重要警告propagate_types_serialization_versions_to_nested_types默认开启后String的with_size_stream序列化会作用于Array/Map/Variant/JSON等嵌套类型内部的所有String。升级安全但降级不安全——26.3 写出的含嵌套类型列在旧版本上不可读回滚前必须确认没有 26.3 写入的数据。x86 默认构建目标从 x86-64-v2 提升到 x86-64-v3AVX226.6要求 Intel Haswell 及以后、AMD Excavator 及以后的 CPU老 CPU 需改用amd64compat构建。ALP(STD)编解码器改用Float64做缩放运算26.8压缩比提升但旧版本写出的Float32值可能差 1 ULP。硬件编解码器移除26.1DEFLATE_QPL与ZSTD_QAT被移除升级前需将数据转码。insert_deduplication_version演进26.6 → 26.726.6 默认从compatible_double_hashes改为new_unified_hash整块按插入去重26.7 起不再支持旧值升级前需先经过compatible_double_hashes过渡窗口。3. 移除的功能与引擎26.9 是一次大规模清理版本CatBoost 集成移除catboostEvaluate、system.models、SYSTEM RELOAD MODEL(S)全部下线。升级前需 revokeSYSTEM RELOAD MODEL权限、清空分布式 DDL 队列、删除引用该函数的表定义否则启动失败。WINDOW VIEW实验功能移除WATCH语句与windowID函数随之删除相关设置保留为 no-op存量 window view 必须提前 drop否则元数据解析失败导致启动失败。时间窗函数tumble/hop等保留。WasmEdge引擎移除WebAssembly UDF 只支持wasmtime。分片GROUP BYenable_sharding_aggregator移除由自适应聚合enable_adaptive_aggregator取代旧设置保留为无效 no-op。CREATE TABLE ... AS mergeTreeIndex(...)等代理表形式禁止26.9timeSeriesSamples系列同样禁止。s3_disable_checksum移除26.9、read_resource/write_resource磁盘选项移除26.9。更早版本Lazy数据库引擎26.1、hypothesis跳数索引类型26.3、kql表函数26.5改用SET dialectkusto、library字典源26.8、Apache Arrow 库读写器26.8原生实现成唯一选项、废弃的snowflakeToDateTime等函数26.7。4. 权限与安全2026 年权限模型明显收紧多条涉及特权提升/信息泄露的修复BACKUP/RESTORE与BACKUP数据库引擎要求SOURCES授权26.9Disk(...)目标需要WRITE ON DISK/READ ON DISK此前 26.8 已对S3/Azure/FILE来源实施同样的SOURCES检查。CREATE TOKEN新语句26.9为应用生成绑定用户、限定时间与权限的令牌如CREATE TOKEN VALID FOR INTERVAL 30 DAY GRANTS (SELECT ON db.table)默认有效期由create_token_default_ttl_seconds默认 30 分钟控制ALTER USER ... ADD IDENTIFIED ... GRANTS (...)也可把某认证方法限定为交集权限。hasColumnInTable移除远程三参形式26.7并要求SHOW COLUMNS权限26.6 起。joinGet强制SELECT授权26.1对底层Join表的主键列与属性列都要有授权。大量 SQL 注入与 SSRF 修复PostgreSQL wire 协议预编译参数改为数据绑定、MySQLSHOW TABLE STATUS LIKE重解析、S3 301 重定向校验remote_url_allow_hosts、http_forbid_headers在 schema 推断前生效26.7、PostgreSQL/Cassandra/XDBC 字典源转义修复26.5。凭据掩码扩展system.query_log、system.processes、SHOW CREATE、EXPLAIN等对 URL、S3、HMAC、format_avro_schema_registry_url中的密钥统一[HIDDEN]处理26.6/26.7 多轮。CREATE USER OR REPLACE需要DROP权限26.7、TRUNCATE DATABASE ... ON CLUSTER需要DROP DATABASE26.7。TOTP 每次验证只接受一次26.8 修复RFC 6238。5. 数据语义与格式IN对Bool采用精确值语义26.4CAST(1,Bool) IN (256)从1变0复合类型内的Decimal有损转换也一并拒绝。CAST到DateTime/DateTime64保留源时区26.5。Date32范围扩展到[0000-01-01, 9999-12-31]26.8DateTime64同样扩展到该范围26.7toDate32(N)的数值解释规则相应调整。PostgreSQL/MySQL 日期映射升级PostgreSQLDATE→Date3226.2MySQLDATE→Date32、DECIMAL→Decimal26.3。date_time_input_format与cast_string_to_date_time_mode默认改best_effort26.52024 April 4这类字符串默认可解析旧严格行为用compatibility或显式basic。RANK/DENSE_RANK不再接受参数26.5allow_rank_dense_rank_arguments1可恢复宽松行为。HTTPX-ClickHouse-Format头优先级提升26.8现在等同output_format覆盖查询的FORMAT子句。arrayIntersect等重复值语义修正26.8同一参数内重复出现的值不再视为多次出现。AggregatingMergeTree建表校验26.7既非排序键也非聚合状态列会被拒绝可用allow_dimensions_outside_sorting_key1恢复旧行为。三、新功能亮点按版本展开26.9DISTINCT支持落盘max_bytes_before_external_distinct与max_bytes_ratio_before_external_distinct控制阈值。新的LIMIT边界语义LIMIT n AFTER cond、LIMIT UNTIL cond、LIMIT AFTER c1 UNTIL c2、LIMIT n AFTER cond ALL按流顺序与条件选取行如LIMIT 3 AFTER number 5返回5,6,7。CREATE TOKEN见上文权限部分。SQL 标准线性回归聚合函数regr_slope、regr_intercept、regr_r2、regr_count、regr_avgx、regr_avgy、regr_sxx、regr_syy、regr_sxy。MergeTree表大小上限max_table_size_rows、max_table_size_bytes_compressed、max_table_size_bytes_uncompressed数据库级max_tables限制表/视图/字典数量。system.statements系统表暴露 SQL 语句文档名称、语法、说明、示例。JSON子列方括号语法json[key1][key2]被解析为嵌套arrayElement调用。system.session_query_ids记录当前会话最近执行的 query_id便于在system.query_log定位我刚跑的查询。可刷新物化视图增量刷新REFRESH ... APPEND INCREMENTAL只追加上次刷新以来的提交行。26.8LTSPipe 操作符FROM t | WHERE x 1 | AGGREGATE count() AS c GROUP BY y | ORDER BY c DESC | LIMIT 10等价于嵌套子查询以FROM开头时SELECT子句可省略。run_query_in_background服务端接受查询、立即返回空结果、断开连接也继续执行配合 query_id 在system.processes/system.query_log跟踪。system.user_query_log每个用户只能看到自己的查询日志记录无需对 query_log 的全局授权。Framing 输出格式framing_output_format支持EventStreamSSE、JSONEachPacketBase64、JSONEachPacketString把数据、totals/extremes、进度、profile 事件、日志、异常复用到单一 HTTP 响应流。GROUPS窗口帧SQL:2011如any(price) OVER (PARTITION BY symbol ORDER BY ts GROUPS BETWEEN CURRENT ROW AND 1 FOLLOWING)。Keeper 落盘存储use_lsmt_storagetruestorage_memory_onlyfalsedata_storage_path/data_storage_disk支持s3_plain磁盘。bigquery表函数与BigQuery表引擎Snowflake HorizonIceberg REST 目录支持Puffin文件格式支持。HTTP URL 路径访问表/database/table.format.gz?filtera0配合http_allow_database_as_path、http_allow_table_as_file、http_allow_filters_as_path等设置。default_session_user空用户名连接的默认用户不再硬编码为default。26.7EXPLAIN ANALYZE真实执行并输出各步骤实际指标。-Tuple聚合组合器sumTuple(t)对Tuple各元素独立聚合并保留元素名。AT TIME ZONE/AT LOCAL后缀toTimeZone的语法糖。Remote/RemoteSecure表引擎remote/remoteSecure表函数的持久化对应物。URL引擎按 scheme 分发file://、s3://、az://、hdfs://、http(s)://自动路由到对应后端。QueryRunner表引擎插入即执行查询可用于异步执行、基准、模糊测试与影子流量。GeoJSON输出格式26.6 为输入每行一个 feature几何列写为geometry。QBit向量数据类型的 stride 参数与Int8元素QBit(T, dimension, stride)支持 Matryoshka 式部分维度读取randomHadamardTransform用于嵌入向量旋转/投影。system.stemmers、dictGetRoot、SYSTEM UNLOAD DICTIONARY、xxHash64Spark、digits、sqr等函数。26.6MergeTree连续查询streaming 雏形通过快照序列读取实现是流式查询的第一步。假设索引 WHATIFCREATE HYPOTHETICAL INDEX ... ON t (expr) TYPE ...EXPLAIN WHATIF SELECT ...无物化评估跳索引收益system.hypothetical_indexes可见。/schemaWeb UI表、物化视图、字典、分布式表之间的依赖关系可视化。PNG输出格式查询结果直接渲染为图片。AI 编码代理检测识别 Claude Code、Cursor、Codex 等写入system.query_log.client_agent。system.documentation把函数、表引擎、数据类型、设置等内嵌文档统一成可查询的 Markdown 表随后 26.8 的/docs搜索页与clickhouse-client的help命令都基于它。MVT 系列函数MVTEncodeGeom、MVTEncode、MVTBoundingBox含ST_AsMVTGeom别名与system.iceberg_files。26.5filesystem表函数把目录结构当表查SQL 查询文件元数据与内容。高阶函数支持裸函数名arrayMap(negate, [1,2,3])等价于arrayMap(x - negate(x), [1,2,3])。LIMIT BY支持负数LIMIT -2 BY id取每组最后两行。tokenizeQuery/highlightQuerySQL 词法与语法高亮。url_baseurl表函数与URL引擎的相对 URL 解析RFC 3986。Paimon表引擎增量读取 Keeper 快照进度跟踪paimon_target_snapshot_id定向增量。isPrime/isProbablePrimeUInt64 精确、UInt128/256 概率。26.4Arrow Flight SQLArrow Flight 表引擎与表函数、预编译语句。NATURAL JOIN按同名列自动匹配并去重。VALUES表表达式SELECT * FROM (VALUES (1,a),(2,b)) AS t(id,val)。按规范化查询哈希的配额CREATE QUOTA q KEYED BY normalized_query_hash与MAX queries_per_normalized_hash。EXTRACT扩展 PostgreSQL 单位EPOCH、DOW、DOY、ISOYEAR、CENTURY等。文本索引 GA26.4 起不受compatibility关闭26.2 已宣布 GA。其余arrayAutocorrelation、obfuscateQuery、JSONAllValues、commit_order投影索引、highlight函数。26.3LTSMap桶化序列化map_serialization_versionwith_buckets把键按哈希分桶m[key]只读一个桶单键查询加速 2–49 倍。物化 CTEMATERIALIZEDCTE 只求值一次并存入临时表多分支共享。table_readonlyMergeTree设置标记表只读禁止插入与修改26.7 起同时抑制全部后台任务并拒绝分区变更命令。ALTER TABLE ... EXECUTE expire_snapshots(timestamp)Iceberg。mergeTreeTextIndex表函数直接读文本索引做内省或聚合。异步插入默认开启compatibility 26.2时恢复旧默认false。26.2插入去重默认开启同步/异步/物化视图统一默认deduplicate_insert新增insert_deduplication_version服务端设置做迁移。ClickStack 集成内置可观测 UI。TOTP 认证时间基一次性口令。lazy_load_tables数据库设置表在首次访问时才真实加载。system.tokenizers、system.user_defined_functions、system.jemalloc_stats、system.fail_points。xxh3_128、OPTIMIZE ... DRY RUN PARTS、add_minmax_index_for_temporal_columns。26.1Keeper HTTP API 与内置 Web UI。use_variant_as_common_type默认开启不兼容类型可进入Array、UNION与if/multiIf分支。mergeTreeAnalyzeIndexes、cosineDistanceTransposed、reverseBySeparator、ClickHouse_InfoPrometheus 指标。use_primary_key设置可关闭主键粒度剪枝。四、实验性功能技术方向观察Changelog 的 Experimental Feature 一栏最能反映研发方向TimeSeries PromQL 体系26.6 引入 TimeSeries 表引擎与 PromQL HTTP API26.7/26.8/26.9 密集迭代——prometheusQuery/prometheusQueryRange表函数、absent/count_values、sum_over_time系列范围函数、max_over_time/min_over_time、histogram_quantile、deriv、increase、/api/v1/series与/api/v1/labels端点26.9 将 TimeSeries 从 experimental 提升到 private previewallow_experimental_time_series_table更名为enable_time_series_table并新增基于 LSM 的 Keeper 磁盘存储、增量recent_samples表等。分布式查询计划make_distributed_plan26.6 引入多阶段执行scatter/broadcast/gather/shuffle 交换26.7–26.9 不断扩展INTERSECT/EXCEPT、窗口函数、IN子查询、Cascades 代价优化器enable_cascades_optimizer、聚合下推与 JOIN 分发。向量搜索QBit位打包存储26.2 GA、转置距离函数L2DistanceTransposed等、量化编解码Quantized、quantizeBFloat16ToInt8、hierarchicalKMeans/assignCentroid搭建 IVF 检索。WASM UDF26.3 起引入支持BUFFERED_V1ABI、AssemblyScript ABI、燃料限制与输入分块26.9 移除 WasmEdge 后仅剩 wasmtime。AI 函数aiGenerate/aiClassify/aiExtract/aiTranslate/aiRedact/aiFilter/aiEmbed/aiSimilarity26.9 升至 beta 并默认ai_function_max_retries1。KQL/Trino 方言26.9 重写 KQL 为独立词法/语法分析器新增实验trino方言。silk 纤程运行时26.9enable_silk_runtime让子系统在等待 I/O 时占用纤程而非 OS 线程。五、性能改进主线2026 年的性能工作可以归纳为四条主线changelog 每版都有对应的设置与实现1. 聚合与哈希表自适应并行聚合enable_adaptive_aggregator26.8 引入26.9 移除分片聚合后成为唯一路径每线程哈希表冻结 桶内回填。字符串键聚合的 packed keysenable_packed_string_keys_in_aggregation、enable_parallel_single_level_merge、bucket top-Kquery_plan_aggregation_bucket_top_k。uniq/uniqExact/groupUniqArray的 CRC32 哈希、位图实现与并行合并优化。2. JOINjoin_algorithm家族扩展26.8 新增parallel_full_sorting_mergeie_join默认启用26.8按条件选择性选键26.9JOIN runtime filter 默认开启26.2并在 26.9 生产化。哈希表索引化行引用、enable_hash_join_row_store、键专用哈希表enable_join_key_only_hash_tables。dpsub/dpsize/dphyp连接顺序枚举与 CD-C/CD-A 冲突检测26.9。3. 存储、压缩与 IOZSTD 解压向量化SSSE3/NEON、T64 转置向量化、DoubleDelta解压加速、Delta编解码器向量化。对象存储读取优化load_marks_asynchronously默认开启26.9、parquet 字典过滤下推、懒物化lazy materialization扩展到对象存储/本地文件26.8。用户态页缓存、filesystem cache 的 SLRU 优化与锁竞争削减、jemalloc独立 arenajemalloc_merge_tree_arenas。4. 索引与读取路径文本索引持续优化懒 posting list、packed 位置、tokenizersplitByRegexp提取模式、keyValuePairs、26.8 的japanese/chinese/icu。SELECT count()由_minmax_count_projection与稀疏列统计直接作答optimize_trivial_count_with_sparsity_filter。只读数据库table_readonly、只读副本SYSTEM RESTART DISK26.6。六、稳定性与安全Bug Fix 主题归纳每个版本的 Bug Fix 一栏都在解决官方稳定版中的用户可见错误按主题归纳内存安全与恶意输入大量针对 Parquet/ORC/Avro/Arrow/Native/Protobuf/BSON 等格式读取器、聚合状态反序列化groupConcat、quantileTiming、windowFunnel、uniqTheta等的越界、OOM 与崩溃修复26.7 批量收紧了二进制输入的类型复杂度上限input_format_binary_max_type_complexity。索引剪枝正确性多轮修复主键/分区/跳数索引在NaN、±inf、Enumvs 字符串常量、FixedString填充、时区边界toWeek、toUnixTimestamp、DateTime64越界下的错误剪枝防止静默少行。可取消性KILL QUERY/max_execution_time从arrayFold、replaceRegexpAll、geohashesInBox、h3PolygonToCells、isProbablePrime、base58Decode、dictGet、外部数据库读取等长路径中生效。权限与泄露Alias引擎 RBAC 绕过、loop表函数行策略绕过、EXPLAIN泄露列名、getServerSetting绕过授权、CREATE TOKEN相关配额等均被修复。WITH FILL/INTERPOLATE/LIMIT BY边界多轮修复填充行重复、排序前缀、常量与 collation 组合下的错误。七、升级与工程实践建议1. 用compatibility做灰度Changelog 中几乎所有默认值变更都预留了回退路径典型写法SET compatibility 26.8; -- 恢复 26.8 及更早版本的默认行为 SET network_compression_method LZ4; -- 或针对单项覆盖注意 26.9 的两处例外enable_analyzer不再接受0compatibility也不会再关闭分析器。而 26.3 的序列化版本传播属于不可降级型变更升级前务必评估回滚窗口。2. 升级检查清单依据 changelog删除/改写引用已移除功能的定义catboostEvaluate、windowID、WINDOW VIEW、hypothesis索引、library字典、kql表函数、snowflakeToDateTime等。revoke 已删除权限SYSTEM RELOAD MODEL26.9会让含该授权的访问实体无法解析。核对权限收紧BACKUP/RESTORE目标授权、joinGet的SELECT、hasColumnInTable的SHOW COLUMNS。CPU 指令集26.6 起默认 x86-64-v3老 CPU 用amd64compat。压缩策略26.9 起按需给列指定CODEC(LZ4)或接受ZSTD(3)以换取存储/带宽。3. 关注 LTS 与测试资产长期运行优先选择 26.3 与 26.8 两个 LTS26.9 属于进行中新特性CREATE TOKEN、LIMIT边界语义等可在非生产验证。仓库内 tests/benchmarks 自 26.3/26.4 起补齐了 TPC-H 与全部 99 条 TPC-DS 正确性测试可作为升级后回归的基线。4. 结合源码深入验证文本索引text index的实现与条件分析位于 src/Storages/MergeTree/MergeTreeIndexText.h、src/Storages/MergeTree/MergeTreeIndexConditionText.cpp配合 src/Storages/MergeTree/MergeTreeIndexTextPreprocessor.cpp 可追踪 26.8 新增的preprocessor/postprocessor与多语言 tokenizer 逻辑。向量搜索的QBit类型定义在 src/DataTypes/DataTypeQBit.h 与 src/Columns/ColumnQBit.h26.7–26.9 的转置距离、量化与 stride 读取都在其上实现。服务端配置默认值如 26.6 提到的keep_alive_timeout30可直接查阅 programs/server/config.xml。结语2026 年是 ClickHouse 从极致单机列存走向分布式查询计划、时序/向量/AI 一体的关键一年26.9 以大规模清理分析器固化、压缩默认切换、旧功能移除为年度收尾26.3 与 26.8 两个 LTS 则分别锚定了存储格式升级与分布式/流式能力的地基。对于使用者而言逐版核对Backward Incompatible Change清单、善用compatibility设置、并关注system.documentation与各系统表的新增观测能力是平滑升级并快速消化新功能的最短路径。【免费下载链接】ClickHouseClickHouse® is a real-time analytics database management system项目地址: https://gitcode.com/GitHub_Trending/cli/ClickHouse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价