max_avg_part_size_for_too_many_parts
根据 ‘parts_to_delay_insert’ 和 ‘parts_to_throw_insert’ 的 ‘parts 过多’ 检查, 只有当相关分区中的平均 part 大小不超过指定阈值时,该检查才会生效。如果平均 part 大小 大于指定阈值,则 INSERT 操作既不会被延迟,也不会被 拒绝。这样一来,如果 parts 能成功 merge 为更大的 parts,就可以在单个 server 上的单个表中存储数百 TB 的数据。这 不会影响非活跃 parts 或总 parts 数的阈值。max_buckets_in_map
Map 序列化的最大桶数。与 with_buckets Map 序列化一起使用。
实际桶数由 map_buckets_strategy 决定。
允许的最大值为 256。
max_cleanup_delay_period
用于清理旧队列日志、块哈希和 parts 的最大周期。max_compress_block_size
写入表并进行压缩前,未压缩数据块的最大大小。你也可以在全局设置中指定此设置 (参见 max_compress_block_size 设置) 。创建表时指定的值会覆盖此设置的全局 值。max_concurrent_queries
与 MergeTree 表相关的可并发执行的查询最大数量。 查询仍会受到其他max_concurrent_queries 设置的限制。
可能的值:
- 正整数。
0— 不限制。
0 (不限制) 。
示例
max_digestion_size_per_segment
已废弃设置,无任何作用。max_file_name_length
在不对文件名进行哈希处理的情况下,保留原文件名时允许的最大长度。 仅在启用设置replace_long_file_name_to_hash 时生效。
此设置的值不包括文件扩展名的长度。因此,
建议将其设置得低于文件名最大长度 (通常为 255
字节) ,并预留一定余量,以避免文件系统错误。
max_partitions_to_read
限制单次查询可访问的最大分区数。 创建表时指定的设置值可以通过 查询级别的设置覆盖。 可能的值:- 任意正整数。
max_projections
MergeTree 投影的数量上限。max_table_size_bytes_compressed
如果表中所有活跃和非活跃数据分区片段的压缩字节总量 (即磁盘上的占用大小) 超过该值,INSERT 将被中断,并抛出 Table size limit exceeded 异常。非活跃 parts 同样会被计入,
因为该设置的目的就是限制磁盘使用量。请注意,非活跃 parts 会在后台被清理 (参见
old_parts_lifetime 设置) ,因此观察到的大小可能会随时间下降。
该限制会在 INSERT 开始时以及新数据分区片段提交到工作集时进行检查,
其中包括后台 merges 和 变更 产生的结果。由 materialized views 执行的插入同样会被检查。
该限制不会在 复制拉取 时检查,因此并行写入多个副本时可能出现竞态条件,
导致超出限制。提交空数据分区片段始终是允许的,因此仍可从已超出限制的表中删除数据,
例如通过 TRUNCATE 或 ALTER TABLE ... DROP PARTITION。
可能的取值:
- 任意正整数。
- 0 — 不限制。
max_table_size_bytes_uncompressed
与max_table_size_bytes_compressed 相同,但该限制作用于表中所有活跃与非活跃数据分区片段的未压缩字节总数。
可能的值:
- 任意正整数。
- 0 — 不限制。
max_table_size_rows
如果表的活跃数据分区片段中的总行数超过该值,INSERT 会被中断并抛出
Table size limit exceeded 异常。该限制会在 INSERT 开始时以及新的数据分区片段
提交到工作集时进行检查,其中包括后台 merge 和变更产生的结果 (因此,会使表大小超出
限制的变更将不断重试而无法完成) 。由 materialized view 触发的插入同样会被检查。复制
拉取时不会检查该限制,因此存在竞态条件:并行向多个副本写入时可能突破该限制。
提交空数据分区片段始终是允许的,因此仍可从超出限制的表中删除数据,例如使用
TRUNCATE 或 ALTER TABLE ... DROP PARTITION。
可能的值:
- 任意正整数。
- 0 — 不限制。