全部产品
Search
文档中心

云数据库 ClickHouse:26.2企业版发布详情

更新时间:Apr 24, 2026

本文介绍云数据库ClickHouse26.2企业版的主要变更内容,包括新特性、非兼容变更、改进、性能优化和Bug修复。

重要变更

  • Full Text Search正式GA。

  • Paimon支持REST catalog。

非兼容变更

查询和函数变更

  • 别名替换导致的查询格式化不一致问题已修复;部分在禁用analyzer时使用IN加别名引用的CREATE VIEW查询可能报错(analyzer自v24.3起默认启用)。

  • JOIN USING ()中的空列列表现在触发语法错误而非运行时错误。

  • ORDER BY及其他表key表达式中禁止使用子查询。

数据类型变更

  • 通过allow_experimental_nullable_tuple_type = 1支持Nullable(Tuple)

  • JSON类型的高级shared data默认启用;升级后将无法降级到25.8之前的版本。

  • JSON中的SKIP REGEXP默认改为部分匹配。

  • PostgreSQL DATE列现在推断为Date32而非Date

存储和索引变更

  • Inverted text index存储布局改进;25.12之前版本的旧索引必须删除重建。

  • 统计信息存储格式改为单文件方式。

  • 索引文件名现在会进行转义;旧版本中包含非ASCII字符的名称将无法加载。

移除的功能

  • DEFLATE_QPLZSTD_QAT codec已完全移除。

  • 不再支持向ALIAS列执行INSERT

  • Lazy数据库引擎已移除。

  • transposed_with_wide_view metric_log模式已移除。

设置和配置变更

  • 数据湖catalog在无法访问object storage时报错。

  • CPU调度通过cpu_slot_preemption默认改为抢占式。

  • 部分设置从format级别改为普通设置。

  • do_not_merge_across_partitions_select_final语义简化。

  • apply_row_policy_after_final默认启用。

安全和权限变更

  • joinGet/joinGetOrNull现在对Join表强制检查SELECT权限。

  • CREATE TABLE ... AS ...需要SHOW COLUMNS权限而非SHOW TABLES

插入和去重变更

  • 所有插入操作默认启用去重。

系统表变更

  • S3Queue和AzureQueue的metadata表从system.s3queue重命名为system.s3queue_metadata_cache

新特性

认证

  • 新增TOTP(基于时间的一次性密码)认证支持。

函数

  • reverseBySeparator函数用于反转分隔符间的子串。

  • colorOKLABToSRGBcolorSRGBToOKLAB色彩空间转换函数。

  • cosineDistanceTransposed函数用于近似计算余弦距离。

  • xxh3_128哈希函数。

  • mergeTreeAnalyzeIndex()用于分析索引使用情况。

  • 函数通过FunctionVariantAdaptor支持Variant类型。

  • SQL中的函数可以不加括号调用。

系统表

  • system.user_defined_functions用于监控UDF加载状态。

  • 新增system.zookeeper_info表。

  • 新增system.primes表及素数函数。

  • system.parts新增files列。

  • 新增system.fail_points表用于failpoint检查。

表引擎和存储

  • Text index支持Array列。

  • 支持Paimon REST catalog。

  • 新增icebergLocalCluster表函数。

  • 数据库新增lazy_load_tables设置,支持延迟表初始化。

  • DatabaseReplicated支持辅助ZooKeeper。

  • 数据文件和系统文件支持cache segment splitting。

  • Parquet metadata的SLRU缓存。

  • Parquet reader v3支持数据湖PREWHERE和多阶段优化。

  • 支持跨replica的分布式索引分析。

插入和去重

  • 支持异步插入去重与依赖物化视图的联动。

  • 异步插入支持parallel quorum。

  • 新增insert_deduplication_version设置用于hash迁移。

SQL和查询特性

  • 新增SYSTEM CLEAR [...] CACHE语法。

  • OPTIMIZE <table> DRY RUN PARTS支持merge模拟。

  • DatabaseReplicated支持带ON CLUSTER的DDL。

  • 简化的projection index框架。

配置和参数

  • max_insert_block_size_bytes控制插入block大小。

  • use_primary_key设置可禁用granule裁剪。

  • default_dictionary_database简化字典解析。

  • check_named_collection_dependencies防止删除正在使用的named collection。

  • concurrent_threads_scheduler引入max-min公平调度器。

  • 新增logger.startup_console_levellogger.shutdown_console_level选项。

监控

  • 新增ClickHouse_Info Prometheus指标,包含版本信息。

实验性功能

  • 向量搜索支持跨集群replica分布。

  • 服务端AST fuzzer,通过ast_fuzzer_runsast_fuzzer_any_query控制。

改进

查询和SQL改进

  • 关联子查询支持更多表引擎。

  • 标量的非常量IN已启用。

  • 扩展JOIN的表别名支持。

  • EXPLAIN indices = 1作为EXPLAIN indexes = 1的别名。

  • numbersprimes表函数的过滤条件下推改进。

  • 多个INNER JOIN间的等价集合优化。

  • 单子查询自动使用集群表函数。

  • startsWithUTF8用于ASCII前缀时使用primary key index。

  • assumeNotNullcoalesceifNull支持范围谓词裁剪。

  • MergeTree读取时移除未使用列。

  • use_join_disjunctions_push_down默认启用。

  • enable_join_runtime_filters默认启用。

  • 降低JOIN runtime filter开销。

  • use_hash_table_stats_for_join_reordering默认启用。

  • 索引分析无论执行上下文只执行一次。

  • FINAL查询支持skip index交集优化。

  • DROP DATABASE按反向依赖顺序删除表。

  • Mutation遵守查询取消和时间限制。

  • ADD COLUMN防止已删除数据复活。

  • 冲突的ALTER表达式抛出正确异常。

  • 聚合key收集行数和NDV统计信息。

  • Parallel replicas读取中的并行range stealing。

  • 自动parallel replicas估算改进。

  • joinGet支持临时表。

  • 外部操作遵守temporary_files_codec

  • 向量搜索优化仅在存在索引时应用。

表引擎和存储改进

  • StorageEmbeddedRocksDB支持多个primary key列。

  • 新增ALTER TABLE ... ATTACH PART ... FROM语法用于子目录附加。

  • min_free_disk_bytes_to_perform_insert支持JBOD卷。

  • TTL merge遵守max_parts_to_merge_at_once

  • 后台操作可通过background profile配置。

  • 改进subcolumn读取的正确大小计算。

  • 限制pipeline stream数量防止内存过高。

  • Text index升级为GA状态。

  • QBit升级为GA状态,支持等值比较。

  • Projection表达式替换改为代入方式而非位置参数。

  • Replicated database中虚拟查询的集群缓存更新减少。

  • 新增SYSTEM RESET DDL WORKER命令。

数据湖改进

  • DeltaLake支持deletion vector。

  • deltaLakeCluster支持deletion vector。

  • DeltaLake支持macOS。

  • DeltaLake metadata统计信息显示在system.tables

  • DeltaLake system查询跳过object storage读取。

  • 新增SYSTEM RELOAD DELTA KERNEL TRACING命令。

  • Iceberg metadata位置自动推断。

  • 改进Iceberg position delete解析。

  • Iceberg支持PREWHERE优化。

  • Iceberg reader间共享线程和内存限制。

  • Iceberg支持ALTER TABLE RENAME COLUMN

  • 数据湖支持Google Cloud Storage。

  • Unity Catalog下S3 token动态刷新。

  • Glue catalog支持基于角色的访问控制。

S3Queue改进

  • Ordered模式下支持Hive partitioning跟踪。

  • 重构基于bucket的处理逻辑。

  • 支持通用分区。

  • 支持基于partition key的bucket划分。

  • 通过keeper_path支持辅助ZooKeeper。

  • 基于限制跟踪的失败节点清理。

S3和Object Storage改进

  • S3加密header不再传播到特定请求。

  • Named collection中可指定storage_class_name

  • 通过凭证缓存修复EC2 metadata endpoint限流。

  • 修复MinIO兼容性的错误码映射。

  • 改进S3认证错误信息。

  • Azure Blob Storage原生复制失败时的回退处理。

函数改进

  • avg()支持DateDateTimeTime类型。

  • mapContainsKeyLikemapContainsValueLike可利用text index。

  • flipCoordinates支持Geometry类型。

  • hasAnyTokenshasAllTokens移除64 token限制。

  • 新增distanceCosine作为cosineDistance的别名。

  • KQL新增iif函数。

  • use_variant_as_common_type默认启用。

配置和参数改进

  • use_skip_indexes_on_data_read默认启用。

  • add_minmax_index_for_time_columns自动为时间列创建minmax index。

  • materialize_statistics_on_merge控制统计信息在merge时的物化。

  • input_format_binary_max_type_complexity限制类型节点解码深度。

  • trace_profile_events_list限制tracing到特定event。

  • type_json_allow_duplicated_key_with_literal_and_nested_object向后兼容。

  • 新增merge_max_dynamic_subcolumns_in_compact_part等相关设置。

  • use_statistics作为allow_statistics_optimize的别名。

  • 数字到Enum的转换检查元素是否存在。

  • 无适用row policy时给出警告。

  • enable_max_bytes_limit_for_min_age_to_force_merge默认启用。

  • core_dump.size_limit支持热重载。

  • 配置重新加载时遵守命令行覆盖项。

  • 服务日志支持组合轮转策略。

  • 分布式索引分析激活阈值。

  • 统计信息缓存默认启用。

  • path配置相对工作目录解析。

系统表和监控改进

  • system.mutations新增parts_postpone_reasons字段。

  • system.data_skipping_indices新增creation列。

  • system.background_schedule_pool反映正在运行的任务。

  • 新增QueryNonInternal指标跟踪非内部查询。

  • 新增最长运行merge耗时的异步指标。

  • query_log新增connection_addressconnection_port字段。

  • system.crash_log信息增强。

  • system.aggregated_zookeeper_log新增组件名称。

  • 新增system.tokenizers表显示可用tokenizer。

  • 新增system.jemalloc_stats表和HTML endpoint。

  • 新增system.jemalloc_profile_text表用于heap profile。

  • system.part_log新增mutation_ids字段。

  • 嵌套全局设置部分可见于system.server_settings

  • view_duration_ms显示group活跃时间。

  • system.blob_storage_log支持Azure、Local、HDFS。

  • 后台任务日志记录支持可配置阈值。

  • query log中的存储URL移除密码信息。

ClickHouse Keeper改进

  • 正确处理Keeper日志条目间隙。

  • Keeper请求支持OpenTelemetry tracing。

  • 新增changelog和snapshot操作的指标。

  • CHECK_STATTRY_REMOVE扩展默认启用。

  • 损坏的snapshot抛出异常而非abort。

  • getChildren支持with_datawith_stat扩展。

  • Keeper错误配置检测。

  • 辅助ZooKeeper可通过system.zookeeper插入。

内存管理改进

  • 优化filesystem cache空间预留。

  • filesystem cache并行化读取。

  • 通过jemalloc purging减少非Linux系统内存占用。

  • 单独线程执行jemalloc purging。

  • 内存压力下动态jemalloc decay。

  • MergeTree读取前显式检查内存。

  • 认证前检查总内存限制。

  • 修复query conditions cache内存计算。

  • 改进spilling的查询内存检测。

  • CPU饥饿时优先执行MemoryWorker。

  • 表读取时遵守内存限制。

数据格式改进

  • Parquet reader支持将Tuple/Map读取为JSON。

  • Parquet reader支持空tuple。

  • Date序列化为Arrow的date32而非uint16

  • Hash输出格式与block大小无关。

  • Pretty JSON简单类型显示在单行。

  • Schema推断遵守allow_experimental_nullable_tuple_type

  • SQL formatter在AS SELECT前输出COMMENT

  • 优化postings list压缩。

备份和恢复改进

  • 新增backup_data_from_refreshable_materialized_view_targets设置。

  • BACKUP/RESTORE支持SQL定义的named collection。

Named Collection和字典改进

  • MongoDB函数支持named collection参数覆盖。

  • YTsaurus字典和表支持named collection。

  • YTsaurus dynamic table source支持列描述。

  • 参数化视图支持schema展示。

其他改进

  • 改进SYSTEM INSTRUMENT的字符串字面量UX。

  • SYSTEM NOTIFY FAILPOINT支持可暂停的failpoint。

  • trace中正确显示C++函数名。

  • jemalloc profile写入时携带符号。

  • 修复MaterializedPostgreSQL attachment崩溃。

  • 修复CREATE TABLE残留文件清理。

  • 修复TLS key内存访问。

  • ALTER TABLE MODIFY SETTING锁超时时报错。

  • 改进CPU与profiler的互操作性。

  • release构建启用fast libcxx hardening。

性能优化

JOIN性能

  • 通过ColumnVector::replicate动态分发加速hash join。

  • 更多过滤条件下推进JOIN。

  • ANYSEMIANTI join支持过滤下推。

  • SEMI JOIN的等价集合过滤下推。

  • ParallelHashJoin并行化非join行的处理。

  • 右表为空时hash join跳过左侧处理。

  • RIGHT OUTER JOIN支持JOIN runtime filter。

  • runtime filter的PREWHERE优化延迟执行。

查询优化

  • 特定window函数禁用排序顺序优化。

  • 外层过滤条件下推进视图。

  • 优化小数LIMITOFFSET

  • 常量虚拟列过滤不再求值。

  • 确定性primary key表达式支持数据跳过。

  • read-in-order识别常量ORDER BY列。

  • 带primary key条件的FINAL查询优化。

  • lazy materialization应用到所有UNION ALL分支。

函数和聚合性能

  • 扩展JIT编译覆盖范围。

  • distinctJSONPaths优化为只读取路径。

  • uniqExact对连续相同元素优化。

  • isValidASCII对全ASCII输入优化。

  • uniq通过批处理加速数值类型。

存储和I/O性能

  • Parquet Reader V3 Prefetcher使用更快的随机读逻辑。

  • icebergCluster性能提升。

  • 超宽表的INSERT和merge内存占用降低。

  • Text index提升full-text search性能。

  • x86上T64 codec压缩加速。

  • 32字节block的LZ4解压加速。

  • Text index部分读取优化。

  • Minmax index计算优化。

  • system log表新增secondary index。

  • 禁用去重时避免INSERT内存回归。

内存优化

  • 减少ASTLiteral内存占用。

  • 专用Enum AST类减少内存。

  • Named tuple AST内存优化。

  • CachedOnDiskReadBufferFromFile大小缩减50倍。

  • HashTable::resize对空表跳过复制。

内部优化

  • 数据分区采用"Fastrange"方法。

  • 通过linker选项改进去虚拟化。

  • ZooKeeper批处理提升clone replica性能。

  • 更快的hash算法降低ZooKeeper接收线程CPU占用。

Bug修复

JOIN修复

  • 修复outer-to-inner优化时Join storage的INCOMPATIBLE_TYPE_OF_JOIN

  • 修复USINGjoin_use_nulls多JOIN时的logical error。

  • 修复join重排序时的logical error。

  • 修复join_on_disk_max_files_to_merge可能的崩溃。

  • 修复join转换时意外修改查询计划。

  • 修复常量条件多join的logical error。

  • 修复full_sorting_joinLowCardinality(Nullable)NULL != NULL

  • 修复稀疏右侧key的join结果错误。

  • 修复LEFT ANTI JOIN后置条件的runtime filter。

  • 修复runtime filter与totals的logical error。

  • 修复runtime filter中重复const列。

  • 修复__applyFilter返回ILLEGAL_TYPE_OF_ARGUMENT

  • 修复右表已填充时的runtime filter。

  • 修复重复列导致的NOT_FOUND_COLUMN_IN_BLOCK

  • 修复Merge表runtime filter的FilterStep

  • 修复USING下Join storage的类型转换。

  • 修复parallel replicas与非MergeTree JOIN的查询。

  • 修复Nullable join列的竞态条件。

  • 修复Join表中空字符串变为NULL

  • 修复空MergeTree的direct join NOT_SUPPORTED

  • 修复多个INNER JOIN的outer join结果错误。

  • 修复Nullable Tuple子字段的runtime filter异常。

  • 修复parallel replicas下的CROSS JOIN。

  • 修复INNER JOIN中arrayJoin重复行。

  • 修复arrayJoin引用JOIN两侧的LOGICAL_ERROR

  • 修复VALUES lambda中的matcher logical error。

  • 修复analyzer_compatibility_join_using_top_level_identifier的matcher。

  • 修复ALIAS列的logical error。

  • 修复旧analyzer中重复JOIN别名的崩溃。

查询和Analyzer修复

  • 修复带尾部空白的预定义query handler。

  • 修复metadata-only ALTER后projection的聚合错误。

  • 修复count_distinct_optimization与window函数。

  • 修复arrayElement AST格式化不一致。

  • 修复非常量数组的NOT IN

  • 修复Nothing类型的null-safe比较。

  • 修复use_top_k_dynamic_filteringNot found column

  • 修复子查询中未使用列的移除。

  • 修复分布式查询中optimize_inverse_dictionary_lookup

  • 修复lag/lead与distributed remote()查询。

  • 修复not match(...)的数据跳过。

  • 修复not materialize(...)not CAST(...)的数据跳过。

  • 修复has函数空数组的logical error。

  • 修复空tuple和Map列的logical error。

  • 修复带PK sharding和false条件的查询。

  • 修复Merge引擎hostName()抛出ILLEGAL_COLUMN

  • 修复带别名的Merge的NO_SUCH_COLUMN_IN_TABLE

  • 修复bloom filter index在ORNOT条件下的问题。

  • 修复带subcolumn过滤的projection应用。

  • 修复projection重建后_part_offset损坏。

  • 防止插值列别名折叠。

  • 修复projection重建中未使用列。

  • 修复负数LIMIT/OFFSET的logical error。

  • 修复小数LIMIT/OFFSET的logical error。

  • 修复transform_null_inIN返回错误结果。

  • 修复单列引用的IN (col)

  • 修复LowCardinality(Nullable)sumCount()重写。

  • 修复not INnot has的分区裁剪。

  • 修复lambda表达式的prewhere过滤错误。

  • 修复期望值处lambda的LOGICAL_ERROR

  • 修复lambda表达式的空指针解引用。

  • 修复CTE中表函数的SETTINGS未应用。

  • 修复query condition cache hash碰撞。

  • 修复ALIAS列lambda的BAD_ARGUMENTS

  • 修复EXCEPT ALLINTERSECT ALL忽略重数。

  • 修复大PRECEDING offset的断言失败。

  • 修复window函数与group_by_use_nulls的异常。

  • 修复GROUPING SETS的block结构问题。

  • 修复GROUP BY ROLLUP/CUBE复杂类型的logical error。

  • 修复IfTransformStringsToEnumPass中的断言。

  • 修复dictGet谓词重写的ACCESS_DENIED

  • 修复分布式查询中if函数类型不匹配。

  • 修复Bool类型的JIT编译查询。

  • 修复DateTime混合类型的JIT类型转换。

  • 修复formatDateTime中的未初始化值。

  • 修复indexOfAssumeSorted中的std::terminate

  • 修复Geometry函数接受子类型的问题。

  • 修复索引影响row policy/FINAL结果。

  • 修复row policy下的read-in-order。

  • 修复text-indexed列与QUALIFYLOGICAL_ERROR

  • 修复超过32个AND/OR表达式可能的崩溃。

  • 修复indexHint和FINAL的block结构不匹配。

  • 修复别名tuple的AST格式化roundtrip。

  • 修复NOT (1, 1, 1)的AST格式化。

MergeTree和存储修复

  • 修复大小写不敏感文件系统上文件名替换导致数据损坏。

  • 物化视图使用创建时的数据库作为执行上下文。

  • 新增对物化视图底层查询的完整权限检查。

  • 修复事务回滚后mutation操作导致的logical error。

  • 修复数据库转换后system.warnings未更新。

  • 修复ATTACH AS REPLICATED时的LOGICAL_ERROR

  • 修复sparse列mutation后的FILE_DOESNT_EXIST

  • 修复TOCTOU竞态导致的过期part使用。

  • 修复mutation过程中的序列化信息继承。

  • 修复列名与subcolumn名冲突。

  • 修复分区中subcolumn导致的NOT_FOUND_COLUMN_IN_BLOCK

  • 修复ALTER后物化视图缺少subcolumn。

  • 修复去重竞态下恢复时的LOGICAL_ERROR

  • 修复TTL更新使用sparse列。

  • 修复SET表达式中LowCardinality wrapper恢复。

  • 修复ALTER TABLE REWRITE PARTS action错误。

  • 修复CREATE USER中的查询参数替换。

  • 修复在只读磁盘上尝试删除临时目录。

  • 修复subcolumn上的skip index物化。

  • 修复带依赖索引的CLEAR COLUMN

  • 修复主机变更后Replicated database的attachment。

  • 修复Replicated database中CREATE TABLE ... AS urlCluster()

  • 修复REPLACE PARTITION与mutation之间的竞态。

  • 修复允许旧数据重新出现的剩余竞态。

  • 修复PartCheckThread导致的mutation卡住。

  • 修复lightweight update后的DROP COLUMN

  • 修复lightweight update过程中的空指针解引用。

  • 修复未知projection parts被标记为丢失。

  • 修复CREATE TABLE ... CLONE AS ...忽略完整限定符。

  • 修复metadata变更时的implicit index重新生成。

  • 修复带alias列的implicit index。

  • 修复TTL merge后min(timestamp)返回epoch。

  • 修复use_const_adaptive_granularity的错误计算。

  • 修复非自适应granularity下的"Number of rows in lazy chunk"。

  • 修复zero-copy replication删除竞态。

  • 修复SYSTEM RESTART REPLICA导致表丢失。

  • 修复类型修改后列统计信息的assert_cast

  • 修复不必要的统计信息加载。

  • 修复并发database drop的分布式DDL错误。

  • 修复nullable primary key的KeyCondition logical error。

数据类型和序列化修复

  • 修复从Dynamic/JSON读取size subcolumn错误。

  • 修复JSON数组上tupleElement崩溃。

  • 修复嵌套路径的tupleElement JSON问题。

  • 修复带类型提示JSON path的tupleElement异常。

  • 修复JSON SKIP path跳过前缀匹配而非精确key。

  • 修复type_json_allow_duplicated_key_with_literal_and_nested_object应用。

  • 修复typed path兼容性检查。

  • 修复'skip' path的类型提示创建。

  • 修复别名中dynamic subcolumn的解析。

  • 修复Variant过滤不一致错误。

  • 修复GROUP BY中Variant的ifNull崩溃。

  • 修复FunctionVariantAdaptor带const要求的logical error。

  • 修复函数返回Nothing时的LOGICAL_ERROR

  • 修复比较含LowCardinality的Variant与NULL时的异常。

  • 修复含LowCardinality的Variant在concat中的LOGICAL_ERROR

  • 修复LowCardinalityNullable转换结果错误。

  • 修复cast_keep_nullableLowCardinality NullableCAST

  • 修复复杂类型转换中的ColumnNullable is not compatible异常。

  • 修复Nullable(Tuple) subcolumn上isNull/isNotNullLOGICAL_ERROR

  • 修复Array-to-QBit转换中的LOGICAL_ERROR

  • 修复读取带subcolumn的sparse列的LOGICAL_ERROR

  • 修复读取sparse列的NOT_FOUND_COLUMN_IN_BLOCK