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

distributed_background_insert_batch

别名: distributed_directory_monitor_batch_inserts 启用/禁用按批次发送已插入的数据。 启用批次发送后,Distributed 表引擎会尝试在一次操作中发送多个包含已插入数据的文件,而不是分别发送。批次发送能更充分地利用服务器和网络资源,从而提升集群性能。 可能的值:
  • 1 — 已启用。
  • 0 — 已禁用。

distributed_background_insert_max_sleep_time_ms

别名distributed_directory_monitor_max_sleep_time_ms Distributed 表引擎发送数据的最大时间间隔。用于限制 distributed_background_insert_sleep_time_ms 设置中指定时间间隔的指数级增长。 可能的值:
  • 以毫秒为单位的正整数。

distributed_background_insert_sleep_time_ms

别名: distributed_directory_monitor_sleep_time_ms Distributed 表引擎发送数据时使用的基础时间间隔。发生错误时,实际时间间隔会按指数级增长。 可能的值:
  • 以毫秒为单位的正整数。

distributed_background_insert_split_batch_on_failure

别名: distributed_directory_monitor_split_batch_on_failure 启用/禁用在失败时拆分批次。 有时,向远程分片发送某个特定批次可能会失败,这是因为后续存在复杂的管道处理 (例如带有 GROUP BYMATERIALIZED VIEW) ,从而导致 Memory limit exceeded 或类似错误。在这种情况下,重试并不能解决问题 (而且还会导致该表的分布式发送卡住) ;但如果将该批次中的文件逐个发送,则可能成功执行 INSERT。 因此,将此设置设为 1 后,将对这类批次禁用批处理 (即临时对失败批次禁用 distributed_background_insert_batch) 。 可能的值:
  • 1 — 启用。
  • 0 — 禁用。
此设置也会影响损坏的批次 (这类批次可能是由于服务器 (机器) 异常终止,以及 Distributed 表引擎未使用 fsync_after_insert/fsync_directories 而产生的) 。
不应依赖自动批次拆分,因为这可能会影响性能。

distributed_background_insert_timeout

别名: insert_distributed_timeout 向 Distributed 表执行插入查询的超时时间。此设置仅在启用 insert_distributed_sync 时生效。值为 0 表示不设超时。
最后修改于 2026年7月23日