Skip to main content
这些设置可在 system.merge_tree_settings 中查看,且由 ClickHouse 源代码自动生成。

object_shared_data_buckets_for_compact_part

用于 compact parts 中 JSON 共享数据序列化的桶数量。与 map_with_buckets、advanced 和 advanced_chunked 共享数据序列化配合使用。 允许的最大值为 256。

object_shared_data_buckets_for_wide_part

用于 wide parts 中 JSON 共享数据序列化的桶数量。与 map_with_buckets、advanced 和 advanced_chunked 共享数据序列化配合使用。 允许的最大值为 256。

object_shared_data_serialization_version

JSON 数据类型内共享数据的序列化版本。 可能的值:
  • map - 将共享数据存储为 Map(String, String)
  • map_with_buckets - 将共享数据存储为多个独立的 Map(String, String) 列。使用桶可以提升从共享数据中读取单个路径的性能。
  • advanced - 一种专为共享数据设计的特殊序列化方式,可显著提升从共享数据中读取单个路径的性能。 请注意,这种序列化会增加磁盘上共享数据的存储大小,因为会存储大量额外信息。
  • advanced_chunked - 与 advanced 相同,但支持在序列化期间将行拆分为更小的块,以降低合并包含大量唯一路径的 JSON 列时的峰值内存占用。块大小由 object_shared_data_target_chunk_rows 设置控制。
map_with_buckets、advanced 和 advanced_chunked 序列化的桶数量由以下设置决定: object_shared_data_buckets_for_compact_part/object_shared_data_buckets_for_wide_part。

object_shared_data_serialization_version_for_zero_level_parts

此设置允许为插入期间创建的零级 parts 中,JSON 类型内部的共享数据指定不同的序列化版本。 建议不要对零级 parts 使用 advanced 或 advanced_chunked 共享数据序列化,因为它可能会显著增加 插入时间。

object_shared_data_target_chunk_rows

advanced_chunked JSON shared data 序列化过程中每个块的目标行数。 这并非硬性限制:如果最后一个块小于目标值的一半,则会与前一个块合并, 因此实际的块大小介于 target/2 与 1.5 * target 之间。 该值越小,在合并包含大量唯一路径的 JSON 列时峰值内存占用越低,但代价是块数量增多。
最后修改于 2026年9月26日