Skip to main content
这些设置用于配置 ClickHouse 服务器,并由 ClickHouse 源代码自动生成。

use_minimalistic_part_header_in_zookeeper

ZooKeeper 中数据分区片段头信息的存储方式。此设置仅适用于 MergeTree 家族。可按以下方式指定: 在 config.xml 文件的 merge_tree 部分中全局设置 ClickHouse 会将此设置应用于服务器上的所有表。你可以随时更改该设置。设置变更后,现有表的行为也会随之变化。 为每个表单独设置 创建表时,指定相应的引擎设置。对于已设置此项的现有表,即使全局设置发生变化,其行为也不会改变。 可能的值
  • 0 — 功能关闭。
  • 1 — 功能开启。
如果 use_minimalistic_part_header_in_zookeeper = 1,则复制表会使用单个 znode 以紧凑方式存储数据分区片段的头信息。如果表包含很多列,这种存储方式会显著减少存储在 Zookeeper 中的数据量。
应用 use_minimalistic_part_header_in_zookeeper = 1 后,你将无法把 ClickHouse 服务器降级到不支持此设置的版本。升级集群中各服务器上的 ClickHouse 时请务必小心。不要一次性升级所有服务器。更稳妥的做法是先在测试环境中,或仅在集群中的少数几台服务器上测试新版本的 ClickHouse。已通过此设置存储的数据分区片段头信息,无法恢复为之前的 (非紧凑) 表示形式。

use_separate_cache_arena

为缓存分配启用专用的 jemalloc arena (标记缓存、未压缩缓存、页缓存) 。 将缓存数据与查询处理中的内存分配隔离开来,从而减少内存碎片。

use_shared_merge_tree_log_pipeline

仅在 ClickHouse Cloud 中可用。启用后,system.*_log 表将通过基于 S3 的管道以 SharedMergeTree 为后端存储。 对于每个日志 <log>,启动时都会自动创建以下对象:
  • system.<log>_s3 — 一个由 S3 支持的表,也是直接 flush 的目标;每次 调用 SYSTEM FLUSH LOGS 都会在此写入一个新的分区文件。
  • system.<log>_s3queue — 一个 S3Queue 表 (ordered 模式) ,用于从 <log>_s3 提取文件,并将行流式传送到下游。每个节点仅通过 基于 partition_regex 的分区处理自己的文件。
  • system.<log>_mv — 一个 MATERIALIZED VIEW,用于将来自 <log>_s3queue 的行路由到 最终的 SharedMergeTree 表。
  • system.<log> — 最终的 SharedMergeTree 表,行会在此累积并供查询。
当 schema 或 settings 发生变更时,受影响的表会被重命名为 <log>_0、<log>_1 等, 然后重新创建,这与现有的 SystemLog rotation 行为一致。 要求在 server configuration 中设置 <shared_log_pipeline><endpoint>。 另请参见:shared_log_pipeline.enable_sync_flush、shared_log_pipeline.flush_timeout_seconds。
最后修改于 2026年7月23日