全部产品
Search
文档中心

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

更新时间:Apr 24, 2026

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

重要变更

  • Paimon函数支持分区裁剪。

  • parallel replica查询支持自动模式。

  • 查询性能提升(执行器优化、JOIN优化、存储优化)。

非兼容变更

数据类型变更

  • 引入新的Geometry类型,支持WKB/WKT格式;原先该类型是String的别名。

  • 废弃的Object类型已移除。

  • Variant类型的子列文件名在Wide data parts中现在会进行转义;可通过escape_variant_subcolumn_filenames设置控制。

查询和函数变更

  • ALTER MODIFY COLUMN将nullable列转换为non-nullable时,现在需要显式指定DEFAULT值。

  • 移除了allow_not_comparable_types_in_order_byallow_not_comparable_types_in_comparison_functions设置。

  • bitShiftLeftbitShiftRight函数在位移量等于类型大小时返回0或空值。

  • Ngram tokenizer不再返回长度小于指定N的ngram。

存储和索引变更

  • LIVE VIEW功能已移除;已存在LIVE VIEW的实例无法升级。

  • 禁止在共享object storage路径上挂载多个plain-rewritable磁盘。

  • 特殊MergeTree表要求ORDER BY不能为空;可通过allow_suspicious_primary_key设置启用例外。

  • Implicit索引从schema中排除;跨版本的ReplicatedMergeTree metadata可能显示错误。

设置和配置变更

  • http_write_exception_in_output_format默认改为禁用。

  • Kafka storage的SASL配置优先级修复;表级设置现在会覆盖配置文件中的设置。

  • ACME配置参数重命名:refresh_certificates_task_intervalrefresh_certificates_task_interval_seconds

  • Projection中的位置参数默认禁用;可通过enable_positional_arguments_for_projections启用以安全升级。

客户端变更

  • clickhouse-client在查询因receive_timeout超时时返回退出码159(TIMEOUT_EXCEEDED)。

统计信息格式变更

  • String到Nullable(String)的转换会影响uniq聚合函数的统计信息;需重新执行ALTER TABLE [db.]table MATERIALIZE STATISTICS ALL

其他不兼容变更

  • 修复了T64 codec压缩非对齐数据时的fatal error。

新特性

函数

  • EXECUTE AS语句支持用户模拟(user impersonation)。

  • flipCoordinates函数展开数组维度并交换Tuple列中的指针。

  • IS NOT DISTINCT FROM<=>)操作符增加了逆向支持和数值类型兼容性。

  • 新增cume_dist window函数。

  • 实现了Geometry面积和周长计算函数。

  • dictGetKeys函数根据指定属性值返回字典的key。

  • arrayRemove(arr, elem)从数组中移除所有匹配元素。

  • midpoint函数计算平均值。

  • argAndMinargAndMax函数获取最小/最大值时对应的参数。

  • 新增HMAC(algorithm, message, key) SQL函数。

  • has()函数支持对常量数组使用primary key和data skipping index。

系统表

  • system.unicode表列出Unicode字符及其属性。

  • system.shared_merge_tree_condemned_parts跟踪等待删除的parts。

表引擎和存储

  • 通过/api/v1/query_range/api/v1/query handler支持Prometheus HTTP Query API。

  • S3/Azure Queue表支持对已处理文件进行移动或打标签。

  • MergeTree新增merge_max_dynamic_subcolumns_in_wide_part设置,限制merge后的dynamic subcolumn数量。

  • 实现了Microsoft OneLake catalog集成。

  • 支持CREATE OR REPLACE语法用于临时表。

  • 通过join_algorithm = 'direct'为MergeTree表启用direct(nested loop)join。

  • 支持在ALTER TABLE ... ADD PROJECTIONWITH SETTINGS子句中设置projection级别参数。

Iceberg和数据湖

  • Iceberg的CREATE操作支持ORDER BY,启用插入时排序。

SQL和查询特性

  • windowFunnel聚合函数新增allow_reentry选项,处理包含刷新的用户路径。

  • Text index预处理参数支持在tokenization前对文档进行转换。

  • LIMITOFFSET支持小数,可选取表的一部分数据。

  • into_outfile_create_parent_directories设置自动创建输出路径。

  • type_json_skip_invalid_typed_paths禁止对无效JSON类型转换抛出异常。

客户端和CLI

  • --no-server-client-version-message标志可屏蔽版本不匹配警告。

  • 通过--login选项支持访问云端凭证。

  • Web UI下载按钮可下载完整结果集。

服务端配置和监控

  • X-ClickHouse-ProgressX-ClickHouse-Summary header中新增memory_usage字段。

  • send_profile_events设置可在不需要profile event时减少网络流量。

Keeper

  • 支持ZooKeeper persistent watches兼容性。

  • 实现了带统计信息的创建兼容性。

输入/输出格式

  • 新增Buffers格式,类似Native但无列metadata开销。

  • arrow_flight_request_descriptor_type设置支持Dremio和Arrow Flight服务器。

  • kafka_schema_registry_skip_bytes在解析前跳过envelope header字节。

其他新特性

  • max_streams_for_files_processing_in_cluster_functions控制集群函数并行读取文件的stream数量。

  • 支持按查询禁用后台数据下载。

  • 实验性支持e2k(Elbrus-2000)平台。

实验性功能

  • 支持从ACME provider获取TLS证书(RFC 8555)。

  • 通过automatic_parallel_replicas_mode设置实现自动parallel replicas执行。

  • Full-text search从实验性升级为private preview。

  • Alias表引擎移至实验性阶段;通过allow_experimental_alias_table_engine=1启用。

性能优化

查询执行和优化

  • 查询达到行数限制时快速失败。

  • 查询计划中移除未使用列的优化。

  • 大值的ConstantNode优化。

  • hash table迭代时key预取,减少cache miss。

  • 通过算法简化提升LZ4解压速度。

  • JOIN/ARRAY JOIN中延迟列复制,避免不必要的类型转换。

  • 通过动态分发实现高级SIMD逻辑函数操作。

  • 消除不必要的零初始化,提升JIT函数性能。

  • 通过动态分发加速T64解压。

  • 针对WHERE子句优化列到bool的转换。

  • 单数值块排序加速。

JOIN优化

  • RIGHT/FULL JOIN使用ConcurrentHashJoin提升并行度,最高提升2倍。

  • 适用场景下ANY LEFT/RIGHT JOIN重写为ALL INNER JOIN。

  • ANTI JOIN runtime filter支持,减少锁竞争。

  • LEFT/INNER JOIN保留读取顺序供后续操作使用。

MergeTree和存储优化

  • 在拥有10K+ parts的表上,重分区裁剪的SELECT速度提升8倍。

  • fixed hash map的并行聚合状态合并。

  • Parquet reader v3默认启用。

  • optimize_read_in_orderquery_plan_optimize_lazy_materialization可同时生效。

  • DISTINCT查询可利用aggregate projection。

  • Streaming LIMIT BY transform在匹配输入排序顺序时优化执行。

  • Nullable类型列支持sparse serialization。

  • MergeTree reader inplace filtering优化。

  • 引入merge候选范围收窄启发式策略。

索引和全文检索优化

  • Skip index通过use_skip_indexes_for_disjunctions分析混合AND/OR条件的WHERE子句。

  • 通过query_plan_text_index_add_hint的预过滤提升text index过滤性能。

  • 通过字典block缓存和hashtable token查找提升text index性能。

  • posting list缓存提升连续查询性能。

  • 通过预计算key set优化重复反向字典查找。

  • 使用skip index和动态阈值过滤优化ORDER BY...LIMIT N查询。

  • 减少大型minmax index分析延迟。

聚合优化

  • AggregateFunctionHistogram通过尾部排序优化,提升约10%。

  • 减少HashSetTable::merge开销,countDistinct略微提速。

  • topK性能和行为改进。

  • Decimal比较操作加速。

S3和备份优化

  • S3备份数据文件使用内容hash命名,通过data_file_name_generator=checksum启用。

  • 通过_path过滤下推优化glob pattern的S3表查询性能。

数据湖优化

  • 任务分割改为基于row group ID而非文件。

  • Paimon函数支持分区裁剪。

改进

查询优化和执行

  • FETCH PARTITION在replicated merge tree磁盘损坏时允许执行。

  • h3PolygonToCells函数用h3 hexagon填充geometry。

  • DDL ON CLUSTER查询使用原始用户上下文执行。

  • ALTER TABLE ... FREEZE查询支持并行化。

  • IN支持非常量第二参数;启用tuple参数支持。

  • Normal projection可作为secondary index用于高效行过滤。

  • enable_shared_storage_snapshot_in_query默认启用。

  • UNION在需要时使用Variant统一类型。

  • 内部查询(字典、refreshable view)在日志中通过is_internal列标记。

  • 支持向ALIAS列执行INSERT

  • CREATE OR REPLACE TABLE ... SELECT显示进度条和统计信息。

  • JSON和Dynamic类型支持hash函数。

  • query_plan_optimize_join_order_limit默认值改为10。

  • enable_lazy_columns_replication优化默认启用。

  • allow_statistics_optimize默认启用用于JOIN优化。

  • create_table_empty_primary_key_by_default默认启用。

  • enable_time_time64_type设置默认启用。

  • allow_special_serialization_kinds_in_output_formats默认启用。

  • Shared Catalog在执行查询时忽略ON CLUSTER。

  • Shared Catalog支持ALTER DATABASE MODIFY COMMENT

  • SharedSet/SharedJoin在Shared database中支持CREATE OR REPLACE

  • SYNC REPLICA在SharedMergeTree中避免不必要的等待。

存储和MergeTree改进

  • 虚拟列_tags(Map(String, String))显示S3 blob标签。

  • 去重消息中标明part是否被去重。

  • 升级至OpenSSL 3.5.4。

  • 新增Bcrypt认证缓存。

  • Parquet无时区timestamp读取为DateTime64(..., 'UTC')。

  • SQL定义的角色可授予users.xml中定义的用户。

  • FINAL查询跳过不必要的primary key交叉检查。

  • 在设置disable_insertion_and_mutation时允许remote/data lake表执行插入。

  • 表级统计信息缓存,支持refresh_statistics_intervaluse_statistics_cache

  • alter_column_secondary_index_mode控制索引mutation行为。

  • ColumnsDescription的按表缓存减少多part表的内存占用。

系统表和监控

  • Keeper新增请求执行阶段耗时直方图。

  • system.columns中列出列统计信息类型。

  • HTTP接口在查询结果缓存时提供Age/Expires header。

  • Web UI显示表属性,行数/字节数可点击。

  • system.error_log新增last_error_timelast_error_messagelast_error_query_idlast_error_trace字段。

  • 去重block ID存入system.part_logs

  • check_query_single_value_result默认改为false,提供按part的详细结果。

  • system.mutations新增parts_in_progress_names用于诊断。

  • system.background_schedule_pool{,_log}改进后台任务内省能力。

  • 新增FailedInitialQueryFailedInitialSelectQuery profile event。

  • system.tables新增悬空part相关指标。

  • distributed_cache_client.connection_pool_size作为指标暴露。

客户端和UI改进

  • pager运行时Ctrl-C可取消查询。

  • Web UI支持显示负值的条形图。

  • 以空白开头的查询不保存到历史记录。

  • 交互模式高亮与光标位置匹配的标识符。

  • Web UI中查询输入框的调整大小控件改为全宽。

  • 类型提示不再溢出表格标题。

  • Ctrl+/(Mac为Cmd+/)注释/取消注释选中行。

  • 支持XDG Base Directory配置路径。

S3和云存储改进

  • 未指定时自动选择opt-in AWS region。

  • s3_retry_attempts默认值设为500以提升备份成功率。

  • STS endpoint的S3凭证缓存供函数复用。

  • Pre-signed URL支持S3。

数据湖改进

  • 通过delta_lake_snapshot_start_version/end_version支持DeltaLake CDF读取。

  • INSERT表函数中的storage设置保持一致性。

  • 数据湖的truncate查询抛出"未实现"错误。

Kafka改进

  • 新增producer的kafka_compression_codeckafka_compression_level设置。

  • kafka_consumer_reschedule_ms改为可调整的设置。

Keeper改进

  • 通过max_requests_append_bytes_size限制append请求批次的字节大小。

  • 服务端握手检查拒绝last_zxid_seen > last_processed_zxid的客户端。

  • 降低S3Queue清理时RemoveRecursive的节点限制。

输入/输出格式改进

  • Parquet支持通过UUID logical type读写FixedString(16)形式的UUID。

  • hasAnyTokens/hasAllTokens函数接受字符串数组。

  • Pretty格式将具名tuple显示为Pretty JSON。

  • 通过format_capn_proto_max_message_size限制CapnProto消息大小。

Text Index改进

  • Text index支持ReplacingMergeTree。

  • Inverted index可用于PREWHERE。

  • Ngrams tokenizer支持ngram_length = 1

  • 反序列化header缓存减少I/O。

其他改进

  • Array/Map二进制反序列化使用max_binary_array_size设置。

  • 系统内存小于5GB时默认禁用executable mlock。

  • 通过merge设置减少system.metric_log内存占用。

  • S3 XML响应解析支持网络错误重试。

  • 安全限制警告消息显示当前值和触发阈值。

  • system.filesystem_cache改为流式返回chunk。

  • vector similarity index缓存条目随part删除一并清除。

  • 预认证HTTP错误中隐藏ClickHouse版本信息。

  • 新增apply_row_policy_after_finalapply_prewhere_after_final设置。

  • tupleElement支持JSON类型。

  • 支持负数tuple索引(如tuple.-1)。

  • 支持Array到QBit类型的隐式转换。

  • system.blob_storage_log新增elapsed_time_microseconds字段。

  • database_shared_drop_table_delay_seconds控制drop延迟时间。

  • Named collection的加密key延迟加载。

  • 支持按buffer禁用distributed cache client。

  • Shared distributed cache连接数限制。

Bug修复

查询执行修复

  • 修复多个远程shard时rows_before_limit_at_least计算错误。

  • 修复INSERT INTO...SELECT后显示"0 rows in set"的问题。

  • 修复multiIf带常量参数和短路求值时的错误结果。

  • 修复从带子查询约束的表中SELECT时的LogicalError。

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

  • 修复带OR条件和unique key的JOIN结果错误。

  • 修复full_sorting_merge join的重复列错误。

  • 修复JOIN中"Invalid number of rows in Chunk"错误。

  • 修复parallel replicas下RIGHT JOIN数据重复问题。

  • 修复join_use_nulls与多个join时的logical error。

数据类型和JSON修复

  • 修复从带点号名称的列中读取子列的问题。

  • 修复JSON解析中混合float/bool数组的问题。

  • 修复LowCardinality(Nullable(T))到Dynamic的类型转换。

  • 修复读取JSON paths/subcolumn时的logical error。

  • 修复数据类型二进制反序列化中的栈溢出。

  • 修复JSON shared data/dynamic paths状态不一致。

  • 修复Summing/Aggregating/Coalescing MergeTree中JSON列合并问题。

MergeTree和存储修复

  • 修复TTL列提前移除的问题。

  • 修复反向排序PK时min(PK)/max(PK)计算错误。

  • 修复降序primary key下JOIN sharding错误。

  • 修复projection index读取的竞态条件。

  • 修复TTL清空但projection非空的parts合并处理。

  • 修复compact parts上执行ALTER后出现TOO_MANY_MARKS错误。

Parquet和格式修复

  • 修复seek设置为0时Parquet reader的段错误。

  • 修复Parquet writer的created_by字符串格式。

  • Parquet单线程写入保持顺序。

  • 修复ORC reader中DICTIONARY_V2仅含NULL的字符串列问题。

  • 修复ORC读取Date/DateTime64溢出问题。

Iceberg和数据湖修复

  • icebergS3Cluster协议支持schema evolution和delete。

  • 修复Iceberg Glue catalog timestamp列的JSON异常。

  • 无manifest排序顺序时禁用Iceberg read-in-order优化。

函数修复

  • 修复reverseUTF8处理4字节UTF-8代码点的bug。

  • 修复cramersV/theilsU中phi方计算错误。

  • 修复top_k阈值参数不生效的问题。

  • 修复countIf(*)参数被截断的问题。

  • 恢复trim/ltrim/rtrim双参数函数支持。

  • 修复arrayFilter在空数组与isNull组合时的错误。

内存和崩溃修复

  • 修复带ARRAY JOIN和enable_lazy_columns_replication的远程查询崩溃。

  • 修复服务器关闭时因析构顺序导致的崩溃。

  • 修复LowCardinality(String)聚合函数状态崩溃。

  • 修复StorageDistributed解析格式错误的shard目录时崩溃。

  • 修复userspace page cache引发的误报内存限制错误。

  • 修复MEMORY_LIMIT_EXCEEDED后聚合函数崩溃。

  • 改进hash join结果生成的内存跟踪。

安全和权限修复

  • 修复clusterAllReplicas中不存在的角色触发ACCESS_ENTITY_NOT_FOUND。

  • 修复带remote localhost函数的ALTER UPDATE访问校验。

  • 修复通配符grant的部分revoke检查。

  • 修复全局grant带通配符revoke的处理逻辑。

Replicated Database修复

  • 修复Replicated database replica卡在打印"Failed to marked query"的问题。

  • 修复shutdown与后台INSERT之间的distributed use-after-free竞态。

  • 修复refreshable materialized view在刷新过程中源表被删除时崩溃。

Keeper修复

  • 修复启动时changelog不当轮转导致的读取错误。

其他重要修复

  • 修复skip index分析性能退化。

  • 修复Hive partitioning升级不兼容问题。

  • 修复带nan/inf的WITH FILL查询无限循环。

  • 修复Time/Time64从DateTime/DateTime64转换时的时区处理。

  • 修复lightweight update后查询条件缓存返回错误结果。

  • 恢复String聚合状态的内存序列化兼容性。

  • 修复SummingMergeTree中Nested LowCardinality列的聚合问题。

  • 修复system.view_refreshes中"No macro 'replica'"错误。

  • 修复Shared Catalog中MV列新增的复制问题。

  • 修复MV commit失败导致Shared Catalog状态应用挂起。

  • 修复Shared Catalog从副本上的ALTER设置约束检查。

  • 修复SharedCatalog迁移时数据库注释丢失。

  • 修复Shared Catalog从副本上物化视图替换问题。

  • 修复system.distributed_cache_usage计数器错误。

  • 修复Shared Catalog中带ILLEGAL_COLUMN异常的DROP卡住问题。

  • 修复Replicated database中SharedSet/SharedJoin的CREATE OR REPLACE。

  • 修复RMV Shared database刷新中的UNFINISHED异常。

  • 修复Shared database中TABLE_ALREADY_EXISTS崩溃。

  • 修复Shared Catalog中损坏的建表语句迁移。

  • getStatus中使用virtual parts。

  • 启动时Shared Catalog状态应用支持重试。

  • 修复表创建异常后DROP DATABASE卡住的问题。

  • 修复distributed cache logical error。

  • 修复distributed cache错误处理。

  • 修复Shared Catalog中~TemporaryLockForUUIDDirectory的LOGICAL_ERROR。

  • 修复database重命名后metadata cache依赖关系错误。

  • 修复Shared Catalog从副本上大表DROP的问题。

  • 修复distributed cache processWriteRequest的logical error。

  • 移除MV在从副本上的ALTER检查。