ClickHouse v22.6 版本技术解读SYSTEM UNFREEZE、JSON 列式格式、FPC 压缩与数十项性能改进【免费下载链接】ClickHouseClickHouse® is a real-time analytics database management system项目地址: https://gitcode.com/GitHub_Trending/cli/ClickHousev22.6.1.1985-stable 是 ClickHouse 在 2022 年年中发布的一个稳定版本涵盖向后不兼容变更、21 项新特性、24 项性能优化、约 49 项常规改进以及两大批次 Bug 修复。本文以仓库内的官方 changelog 文档 docs/changelogs/archive/v22.6.1.1985-stable.md 为主体骨架结合仓库源码如 InterpreterSystemQuery.cpp、grouping.cpp、CompressionCodecFPC.cpp 等逐条深入展开帮助读者理解每个变更背后的实现动机、使用方式与运维影响。版本概览与对比基线本版本号为v22.6.1.1985-stable对应 commit7000c4e0033其对比基线是上一个稳定版v22.5.1.2079-stablecommitdf0cb062098。changelog 中的条目按以下分类组织这也是本文的叙述主线Backward Incompatible Change升级前必须关注的破坏性变更共 3 项New Feature新增能力共 21 项Performance Improvement性能优化共 24 项Improvement功能与可用性改进约 49 项Build/Testing/Packaging Improvement工程化改进Bug Fix对官方稳定版中可见问题的修复两批次NO CL ENTRY / NOT FOR CHANGELOG内部回滚与杂项整理。一、向后不兼容变更升级前必读v22.6 引入了三项可能影响存量 SQL 或二进制兼容性的变更升级前需要重点评估。1. 以秒为单位的设置项支持浮点值解析从本版本起所有以seconds作为类型的设置例如max_execution_time在解析时开始支持浮点数值比如max_execution_time0.5表示 0.5 秒。同时Infinity或NaN这类非有限数值将被直接抛出异常而不是被静默接受对应 PR#37187。这意味着此前可以写入非法超时值的场景在升级后会报错属预期的行为收紧。2. 实验类型Object的二进制序列化格式变更实验性列类型Object的二进制序列化格式被重写PR#37482新格式更便于第三方客户端实现。由于Object类型仍处于实验阶段该变更不会影响生产中的常规列类型但任何已经使用Object类型并依赖其二进制格式如 Native 格式的客户端都需要同步升级。3.output_format_json_named_tuples_as_objects默认开启设置output_format_json_named_tuples_as_objects现在默认开启PR#37756它允许在 JSON 格式输出中把**命名元组named tuples**序列化为 JSON 对象而不是数组。行为变化如下-- 假设列类型为 Tuple(a UInt32, b String) -- 旧行为数组: [1, x] -- 新行为对象默认: {a:1,b:x}如果下游消费方依赖旧数组格式升级后需要显式关闭该设置或改造消费端逻辑。二、新特性New Featurev22.6 共带来 21 项新特性覆盖备份管理、地理空间计算、窗口视图、JSON 格式、访问控制、压缩算法等多个方向下面按主题分组讲解。1. 备份与冻结管理SYSTEM UNFREEZE新增SYSTEM UNFREEZE查询PR#36424它可以在对应的表已被删除的情况下仍然删除整个 backup备份快照。此前删除备份依赖表级操作一旦源表被删除备份便成为孤儿难以清理现在系统级 UNFREEZE 补上了这个管理缺口。从源码实现看该语句在 InterpreterSystemQuery.cpp 中通过Type::UNFREEZE分支处理执行前会校验AccessType::SYSTEM_UNFREEZE权限并且结果以表的形式返回被删除 part 的信息用于与ALTER TABLE UNFREEZE查询保持兼容源码注释原文。也就是说SYSTEM UNFREEZE与已有的ALTER TABLE UNFREEZE走同一套返回结构只是作用域从单表提升到了整个备份级别。2. 地理空间H3 单向边函数新增一组 H3 单向边unidirectional edge相关函数PR#36843可用于蜂窝网格的边方向分析例如构建相邻蜂窝之间的有向关系。与已有的 H3 索引函数配套使用能够支撑更复杂的地理空间聚合与路径分析。3. 运维可观测性system.part_log增加merge_reason列system.part_log表新增merge_reason列PR#36912用于记录每次 merge 发生的原因例如 TTL、轮询合并、分区移动等触发因素。DBA 借此可以分析为什么这些 part 被合并为 merge 调度调优提供依据。4. WindowView 系列能力补齐窗口视图WindowView用于流式窗口聚合在本版本获得多项增强POPULATE支持PR#36945创建 WindowView 时可以通过POPULATE回填历史数据行为类似物化视图的POPULATEALTER TABLE ... MODIFY QUERY支持PR#37188允许动态修改 WindowView 的查询定义ENGINE语法对齐物化视图PR#37214WindowView 的ENGINE语法语义调整为与 MaterializedView 一致降低两种视图之间的心智负担。5. 新增列式 JSON 格式JSONColumns 系列新增三种面向列式读取的 JSON 格式PR#36975同时解决 issue#36338与#34509JSONColumnsJSONCompactColumnsJSONColumnsWithMetadata与传统的 JSONEachRow按行组织不同JSONColumns 以列优先方式组织数据{col1:[...],col2:[...]}适合与列式存储互相转换、减少列裁剪开销。这三种格式在 src/Formats/registerFormats.cpp 中注册格式的 JSON 解析工具集中在 src/Formats/JSONUtils.h。6. 哈希 ID 计算HashID 函数支持无符号整数支持从无符号整数计算 hashidsPR#37013例如把自增 ID 编码为不可猜测的短字符串 ID常用于对外暴露 ID 的场景。7. 聚合语义新增GROUPING函数新增标准 SQL 的GROUPING函数PR#37163解决 issue#19426用于在ROLLUP、CUBE、GROUPING SETS场景中判断某列是否参与当前分组。实现位于 src/Functions/grouping.cpp 与 src/Functions/grouping.h。典型用法SELECT a, b, GROUPING(a) AS is_total_a, GROUPING(b) AS is_total_b, sum(x) FROM t GROUP BY GROUPING SETS ((a), (b), ());当某行是a维度的小计时GROUPING(b)返回 1从而在结果中区分真实值与小计行。该版本同时配套修复了GROUPING与GROUPING SETS/ROLLUP/CUBE组合时的若干边界问题见 Bug Fix 部分。8. 访问控制sha256_hash支持 SALTCREATE USER user IDENTIFIED WITH sha256_hash现在允许显式指定盐值SALTPR#37377使同一密码在不同盐值下产生不同哈希增强口令存储的安全性CREATE USER alice IDENTIFIED WITH sha256_hash BY hash_value SALT random_salt;9. 复制表元数据ReplicatedMergeTree 支持修改注释实现了对 ReplicatedMergeTree 表COMMENT的在线修改PR#37416即ALTER TABLE ... MODIFY COMMENT可在复制表上生效该提交曾在开发期被回滚见 NO CL ENTRY 中的#37627最终随本版本发布。10. Avro 格式Maps/Records 支持与input_format_avro_null_as_defaultAvro 格式新增对 Map 和 Record 类型的支持PR#37525并引入设置input_format_avro_null_as_default允许将 Avro 中的 null 按列默认值插入而不是直接报错解决 issue#18925、#37378、#32899。11. CSV/TSV跳过文件头若干行新增两个设置PR#37537input_format_csv_skip_first_linesinput_format_tsv_skip_first_lines用于在读取 CSV/TSV 文件时跳过开头指定行数的非数据内容如版权头、注释行解决此前必须手动处理文件头的问题。12. 安全运维showCertificate()函数新增showCertificate()函数PR#37540直接以 SQL 方式展示当前服务器的 SSL 证书信息便于不落地命令行地快速核验证书有效期、颁发者等元数据。13. 压缩算法FPC 浮点压缩编解码器实现了 FPCFloating Point Compression算法PR#37553算法论文来自 DCC07专用于浮点数据的压缩。实现位于 src/Compression/CompressionCodecFPC.cpp并在 src/Compression/CompressionFactory.cpp 与 registerCompressionCodecs.h 中完成注册。使用方式CREATE TABLE sensor ( ts DateTime, value Float64 CODEC(FPC) ) ENGINE MergeTree ORDER BY ts;对于变化平滑、可预测性强的浮点序列如传感器读数、监控指标FPC 通常能取得优于通用 LZ4 的压缩比。需要注意该 codec 在开发期经过多次修复见 NOT FOR CHANGELOG 中的#38089、#38117生产使用前建议在目标数据上做压缩率基准验证。14. 字典数据源Named Collections 支持 HTTP 源数据字典Data Dictionary的 HTTP 数据源现已支持通过 Named Collections 配置PR#37581将 URL、认证信息等敏感/可复用参数集中管理避免在 DDL 中反复暴露连接细节。15. 运维实验特性允许向system.zookeeper写入为解决 issue#22130本版本允许向system.zookeeper表插入数据PR#37596方便在运维场景下直接写入 ZooKeeper 节点数据设计上按 PR 描述做了相应简化。这属于强运维导向能力使用时需谨慎避免破坏协调服务中的数据一致性。16. 窗口函数新增nonNegativeDerivative新增窗口函数nonNegativeDerivative(metric_column, timestamp_column[, INTERVAL x SECOND])PR#37628用于计算指标序列的非负导数当前值与上一个时间点值之差小于 0 时按 0 处理典型场景是计数器类指标如单调递增的流量计数的变化速率计算SELECT ts, nonNegativeDerivative(bytes_total, ts) AS bytes_per_interval FROM metrics WINDOW w AS (ORDER BY ts);该函数在仓库中的实现可追溯至 src/Functions/financial.cpp 所在的功能目录该文件同时承载了求解器相关的模板实现。17. 可执行 UDF支持带参数调用可执行用户自定义函数Executable UDF开始支持参数调用语法为SELECT test_function(parameters)(arguments)PR#37720解决 issue#37578。例如-- 定义时可声明参数与参数类型 -- 调用时先传参数、再传普通参数 SELECT my_exec_udf(param1)(col1, col2) FROM t;配套修复了可执行 UDF 对Nullable参数的格式化问题见 Bug Fix 部分#37711。18. 可观测性基于 d3js 的 OpenTelemetry 追踪可视化工具新增基于 d3js 的 OpenTelemetry traces 可视化工具PR#37810可以将查询执行链路以甘特图形式呈现方便定位分布式查询中各阶段的耗时分布该 PR 曾经历回滚再恢复最终随版本保留见 NO CL ENTRY#38043与#38129。三、性能改进Performance Improvementv22.6 的性能优化涉及 MergeTree 写入、FINAL查询、排序、聚合、字典、地理函数、压缩缓存等多个热点路径共 24 项。按主题归类如下。1. MergeTree 写入与合并多列 ORDER BY 下的插入性能当 MergeTree 表ORDER BY含多列时插入路径得到专门优化PR#35762FINAL查询数据并行化将数据 part 拆分为更细的层layers并分发给多个线程而不是以整个 part 为粒度使带FINAL的查询具备更好的数据并行度PR#36396该优化曾在#38094被回滚属于开发期反复验证的过程宽 part 按需加载 marks读取宽格式widepart 时只为必要的列加载 mark索引标记文件PR#36879减少不必要的磁盘 IO。2. 排序相关单列排序性能提升PR#37195以及后续基于排序队列特化sorting queue specializations的进一步优化PR#37990ORDER BY ... LIMIT性能提升PR#37481在排序同时提前截断避免全量排序。3. 聚合相关稀疏列参与聚合的性能改进当MergeTree表启用实验性稀疏序列化设置ratio_of_defaults_for_sparse_serialization时稀疏列作为聚合函数参数的场景得到优化PR#37617聚合状态销毁卸载到线程池对于带LIMIT且状态很大的查询把聚合状态销毁动作投递到线程池执行显著提速——changelog 给出的示例select uniq(number) from numbers_mt(1e7) group by number limit 100提速约 2.5 倍PR#37855COALESCE两参数优化PR#37666与multiIf单条件退化为ifPR#37695后者因为if函数实现更高效。4. 函数执行性能动态分派本版本大规模引入动态分派dynamic dispatch基础设施来优化标量函数数值比较函数PR#37399hasAllPR#37484greatCircleAngle、greatCircleDistance、geoDistance地理距离函数PR#37524not函数PR#38058数组XXNorm/XXDistance系列函数提速 2~4 倍PR#37394相关重命名见 NOT FOR CHANGELOG#37502过滤器位掩码生成函数以 AVX-512 指令整体加速PR#37588re2 正则模式内部缓存优化LIKE/MATCH等函数使用的 re2 模式缓存得到优化PR#37544。5. 外部存储Hive/S3与文件格式读取StorageHive 使用 threadpool 读方法PR#36328Hive 分区键列免读文件当所需列全是分区键时直接按文件行号构造列无需实际读取 Hive 文件PR#37103Hive 文件缓存支持多磁盘PR#37279列子集读取优化对于 Native、Protobuf、CapnProto、JSONEachRow、TSKV 以及所有带WithNames/WithNamesAndTypes后缀的格式读取列子集时不再全量读入内存只读取所需列PR#37192。该优化同时把input_format_skip_unknown_fields设为默认开启否则列子集读取会因未知字段抛异常S3 文件列表剪枝允许通过_file、_path等虚拟列剪枝 S3 上的文件列表PR#37356减少列举对象的开销。6. 字典与后台任务层级字典函数性能修复与增强dictGetDescendants、dictGetChildren不再每次函数调用都创建临时父子层级索引而是按查询创建一次并支持为HIERARCHICAL属性指定BIDIRECTIONAL让字典在内存中维护父→子索引PR#37148解决 issue#32481空闲 CPU 占用修复存在大量表时后台空转导致的 CPU 占用过高问题得到修复PR#38028。7. 架构加速NEON 加速为多个主要库补充了 ARM NEON 加速路径PR#38093在 ARM 平台上获得收益。四、功能改进Improvement本版本约 49 项改进覆盖权限、HTTP 接口、磁盘管理、内存控制、格式输出、Keeper、UI 等。以下按主题精选并完整归并 changelog 中的条目。1. 权限与访问控制独立的CLUSTER授权新增单独的CLUSTER权限并引入向后兼容配置指令access_control_improvements.on_cluster_queries_require_cluster_grant默认false。开启后ON CLUSTER查询需要显式CLUSTER授权PR#35767角色授权可被检查允许用户查看从已授予角色中继承的权限PR#36941隐式授权连带 GRANT OPTION例如GRANT CREATE TABLE ON test.* TO A WITH GRANT OPTION现在允许A再执行GRANT CREATE VIEW ON test.* TO BPR#38017。2. HTTP 接口行为改进针对 HTTP 端点send_progress_in_http_headers相关做了三项修正PR#36884当send_progress_in_http_headers0时X-ClickHouse-Summary头返回完整统计此前返回全零当send_progress_in_http_headers1时返回X-ClickHouse-Exception-Code头TIMEOUT_EXCEEDED错误改为返回HTTP_REQUEST_TIMEOUT408而不是HTTP_INTERNAL_SERVER_ERROR500更符合 HTTP 语义。3. 磁盘与存储管理clickhouse-disks工具扩展新增ls、list-disks、disk、copy、link、list、move、read、remove、write、C设置配置文件、help等命令PR#36060支持在磁盘之间复制、硬链接、移动、读写文件对应程序目录见 programs/disksleast_used磁盘负载均衡多磁盘 volume 内新增least_used负载均衡算法写入时选择剩余空间/负载最低的磁盘PR#36686DiskS3支持support_batch_delete用于关闭批量多对象删除调用兼容 Google Cloud StoragePR#37659失败移动的 part 立即删除MergeTree 表引擎族中移动失败的 part 不再滞留立即清理PR#37994远端缓存写策略讨论改进了远程文件缓存——此前所有远程文件都被下载到本地缓存即使只读一次会引发本地磁盘 IO 负优化本版本引入按需/受限缓存策略PR#37516并在#37859中限制单查询最大缓存用量防止缓存池污染always_fetch_merged_part优化ReplicatedMergeTree 开启该设置时merge 会降低向其他副本查找已合并 part 的频率减少对 ZooKeeper 的负载PR#37995服务启动时清理delete_tmp目录PR#37906、超时清理损坏的 detached partsPR#37975。4. 内存与 Overcommit将global_memory_usage_overcommit_max_wait_microseconds默认值调整为 5 秒在 OOM 异常信息中补充OvercommitTracker信息新增MemoryOvercommitWaitTimeMicrosecondsProfileEventPR#37460。5. 格式与类型系统Arrow/Parquet/ORC 中 String 代替 Binary新增output_format_arrow_string_as_string、output_format_parquet_string_as_string、output_format_orc_string_as_string三个设置默认falsePR#37327schema 推断行数上限改为全局input_format_max_rows_to_read_for_schema_inference现在对 glob 所有文件合计生效此前按每个文件分别生效避免 null 过多时推断不到有效类型默认值提升到 25000PR#37332列声明支持NULL/NOT NULL允许在类型后直接写NULL/NOT NULLPR#37337禁止创建未知数据格式的存储PR#37450ROLLUP/CUBE/GROUPING SETS支持非标准默认类型PR#37667Nothing类型默认实现大部分函数在参数为Nothing时返回Nothing列arrayMap(x - 2*x, [])现在返回Array(Nothing)而非报错arrayFilter/arrayFill支持 Nullable 元素数组PR#37048LIKE 尾部转义符禁用以\结尾的LIKE模式按 SQL 标准禁止PR#37764dumpColumnStructure在 LowCardinality/Sparse 列上更精确PR#37633CAST设置cast_ipv4_ipv6_default_on_conversion_error修复Bug Fix#37761system.build_options暴露 BoringSSL 版本信息PR#37850。6. MergeTree/TTLTTL 过期列在后续 merge 中不再写出此前只有首次 merge/optimize 不会写出 TTL 过期列后续 merge 仍会写出现在所有后续 merge 均跳过PR#37570。7. 查询执行与优化器分片本地副本协同读取当分片存在本地副本时同时创建本地执行计划与读取所有远端副本的计划二者共享协调 initiatorPR#37204更多 join 条件下推过滤PR#37472非平凡 SQL 函数的 LIKE/MATCH 支持支持非常量的(NOT) (I)LIKE与MATCHPR#37251短路函数处理改进PR#37384CompressedWriteBuffer::nextImpl()去除写拷贝插入数据时不再把压缩结果先写进中间缓冲再拷贝到输出而是直接压缩到目标输出PR#37242客户端按 DNS 返回的每个 IP 依次尝试连接直到成功PR#37273mark_cache_size未显式配置不再中断启动PR#37326。8. clickhouse-keeper损坏日志移入时间戳目录broken logs 被移动到带时间戳的文件夹便于保留现场PR#37565watch 只存储唯一 session IDPR#37641减少内存占用修复单节点集群强制恢复PR#37440、dead_session_check_period_ms单位错误导致的会话清理延迟PR#37824、Keeper Docker 镜像协调目录属主问题PR#37915。9. 统计与可观测性写盘 part 类型可观测新增 ProfileEventsInserted{Wide/Compact/InMemory}Parts、MergedInto{Wide/Compact/InMemory}Parts并在system.part_log增加part_type列PR#37536Play UI 改进横向滚动时保持控件位置PR#37470查询输入框可扩展超过 20% 高度PR#37488、#37504后者曾回滚再恢复客户端不再显示-0.0CPU 时间PR#38064ARM 栈回溯修复PR#37797层级字典函数支持 Nullable 的 HIERARCHICAL 属性PR#37805。10. 其他杂项改进自解压可执行文件支持PR#35775配套修复见#38011hdfsClusterschema 推断支持PR#35812数值 CDF 函数替代积分计算以提升精度与速度PR#36953修复零拷贝复制下 part fetch 的罕见死锁PR#37424ODBC bridge 增加禁用连接池选项PR#37705ON CLUSTER等安全查询通过客户端/本地工具传入 QueryKind 便于调试见 NOT FOR CHANGELOG#37290。五、构建 / 测试 / 打包改进工具链升级到 clang-14 / LLVM 14PR#34754启动时允许降权简化 Docker 镜像的权限处理PR#36341移除递归子模块并增加风格检查防止其回归PR#37616CI 增加文档拼写检查PR#37790修复过度 stripping 导致可执行文件内置哈希被移除的问题PR#37993修复 macOS 构建 compressor 失败PR#38007。六、Bug 修复v22.6 包含两批次 Bug 修复覆盖查询执行、格式解析、分布式、WindowView、字典、Keeper 等关键路径。1. 第一批 Bug Fix修复GROUP BY聚合函数类型列AggregateFunction类型列作为分组键的问题#37093修复读取system.projection_parts/system.projection_parts_columns时的堆释放后使用use-after-free#37185修复 WindowViewaddDependency在表被 drop 时误加依赖的问题#37224、#37243修复列式格式缺失列默认值填充错误——此前按类型默认值而非列默认值填充#37253修复Object类型嵌套数组插入的部分场景#37305修复聚合函数/prewhere/join 中常量字符串冲突导致的意外错误#37336修复 projection 在optimize_aggregation_in_order下GROUP/ORDER BY结果错误#37342修复 S3 key 名中的符号错误#37344GROUPING SETS与ROLLUP/CUBE混用现在直接抛异常#37367修复非标准background_pool_size/background_merges_mutations_concurrency_ratio新式config.xml配置下的LOGICAL_ERROR#37413RowBinary 格式不再移除 UTF-8 BOM#37428修复 normalizeUTF8 系列函数的逻辑错误#37443修复 JoinSwitcher 中 LowCardinality(Nullable) 的 cast 问题#37453修复 ORC/Arrow/Parquet 中命名元组输出#37458修复GROUPING SETS下 ORDER BY 单调函数优化#37493修复特定条件下与字典 join 的错误#37530禁止optimize_aggregation_in_order与GROUPING SETS组合#37542修复 ActionsDAG dump 信息错误#37587、UNION 类型转换错误#37593修复WITH FILL负区间STEP#37600修复join_use_nulls1时非法 joinGet 数组用法#37650、cross join 列数不匹配#37653修复 MySQL 数据库表show create table在 named collections 下的段错误#37690、RabbitMQ 无 SETTINGS 建表后重启无法启动#37691修复 Unix 纪元前的 DateTime64 小数秒行为#37697readonly 模式禁止 SQL UDF 的 CREATE/DROP#37699修复可执行 UDF 的 Nullable 参数格式化#37711修复分布式查询下optimize_monotonous_functions_in_order_by优化问题#37724修复INTERSECT/EXCEPT常量字符串类型问题#37738修复 FunctionHashID 崩溃#37742、values 表函数的类型转换逻辑错误#37754、schema 推断构造器异常时的段错误#37760八进制字面量不再被支持#37765修复toString在 Date32 上的错误#37775修复async_socket_for_remote/use_hedged_requests关闭时的分布式查询No more packets are available#37826WindowView 执行MODIFY QUERY不再删除内部目标表#37879修复字典自定义查询 更新字段 {condition}组合问题#37947修复外层 ORDER BY 与WITH FILL组合时的错误结果#37959WindowView 推送目标表时补充缺失默认列#37965、修复编译栈溢出#37996enable_filesystem_query_cache_limit开启时对保留缓存超限抛错#38004修复多WITH FILL列产生多余行的问题#38074。2. 第二批 Bug Fix行为修正复核UNION 类型转换LOGICAL_ERROR修复#34775TTL merge 调度丢失问题BackgroundExecutor繁忙时 TTL merge 可能不再被重新调度——merges_with_ttl_counter在selectPartsToMerge()中递增若任务因后台线程繁忙被忽略则计数不会减少现修复#36387修复normalize_function_names设置值被覆盖#36937修复指数时间衰减窗口函数边界问题#36944修复 DateTime64 解析1969-12-31 23:59:59.123的错误#37039。3. NO CL ENTRY 与内部整理开发期经历回滚/重提的条目包括Object类型 mutation 修复回滚#37355、Play UI 高度限制移除回滚#37501、ZooKeeper 预处理回滚#37534、零拷贝复制死锁修复回滚#37545、#37598、UNION 类型转换回滚#37582、ReplicatedMergeTree 注释修改回滚#37627、递归子模块移除回滚#37774、schema 推断段错误修复回滚#37785、#37787、CheckTriviallyCopyableMove修复回滚#37902、容器清理回滚#38001、d3js 追踪可视化回滚#38043、#38129等。这些条目对用户透明说明相关功能在发布前经过了多轮验证。另外本版本还在 docs 中补充了更多 Rust 客户端库的文档#37880并包含大量非用户可见的工程整理S3 操作日志冲突修复、cmake 清理、jemalloc 兼容性修复、clang-tidy 修复、测试稳定性修复等详见 changelog 的 NOT FOR CHANGELOG / INSIGNIFICANT 部分。七、升级与使用建议综合以上变更从 v22.5 升级到 v22.6 时建议重点关注兼容性排查检查是否使用Object类型列且依赖旧二进制格式确认下游 JSON 消费端是否依赖命名元组的数组输出现默认对象化为max_execution_time等秒级设置清理可能存在的Infinity/NaN值。备份链路可立即采用SYSTEM UNFREEZE清理表已删、备份未删的孤儿备份该语句需SYSTEM_UNFREEZE权限。格式与导入新引入的JSONColumns系列、CSV/TSV 跳行设置、Avro Map/Record 支持可用于改善数据导入链路input_format_skip_unknown_fields默认开启后列子集读取的语义需注意。性能验证FINAL并行化、ORDER BY LIMIT、聚合状态销毁异步化、动态分派优化等改动收益较大建议在关键查询上做回归基准FPC 编解码器建议先在目标数据分布上验证压缩率与 CPU 开销。权限模型若启用on_cluster_queries_require_cluster_grant需提前为相关用户授予CLUSTER权限避免ON CLUSTER查询在升级后失败。结语v22.6.1.1985-stable 是 ClickHouse 在 2022 年的一个重要稳定版本它一方面通过动态分派、列裁剪、并行化等手段系统性提升了查询性能另一方面在 WindowView、JSON 列式格式、FPC 压缩、系统级备份管理SYSTEM UNFREEZE等方向补齐了能力并修复了大量影响正确性的边界问题。本文所有条目均来源于 docs/changelogs/archive/v22.6.1.1985-stable.md读者可结合仓库源码如 src/Interpreters/InterpreterSystemQuery.cpp、src/Functions/grouping.cpp、src/Compression/CompressionCodecFPC.cpp、src/Formats/registerFormats.cpp继续深入每个功能的具体实现。【免费下载链接】ClickHouseClickHouse® is a real-time analytics database management system项目地址: https://gitcode.com/GitHub_Trending/cli/ClickHouse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考