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 列时峰值内存占用越低,但代价是块数量增多。