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

skip_unavailable_shards

启用或禁用对不可用分片的静默跳过。 此设置的行为由 skip_unavailable_shards_mode 参数控制。 可选值:
  • 1 — 启用跳过。 如果某个分片不可用,ClickHouse 会基于部分数据返回结果,且不会报告节点可用性问题。
  • 0 — 禁用跳过。 如果某个分片不可用,ClickHouse 会抛出异常。

skip_unavailable_shards_mode

用于控制在启用 skip_unavailable_shards 时,会静默忽略来自远程分片的哪些异常。当 skip_unavailable_shards = 0 时,此设置不生效。 Possible values:
  • unavailable — 仅忽略与连接相关的错误。当 ClickHouse 无法连接到某个分片的任何副本,或无法通过 DNS 解析某个副本的主机名时,该分片会被视为不可用。
  • unavailable_or_table_missing — 除 unavailable 外,还会忽略由分片上缺少表或数据库导致的错误。这在集群内创建或删除表期间非常有用。这是默认值,并且与 skip_unavailable_shards 的历史行为一致:如果分片上的表不存在,也会将该分片视为不可用。
  • unavailable_or_exception_before_processing — 除 unavailable 外,还会忽略在分片向发起端返回任何数据块之前,从该分片收到的任何异常。如果异常是在分片已经返回部分数据之后到达的,则始终会再次抛出。请注意,“在返回任何数据之前”这一条件是在发起端检查的:如果某个分片执行阻塞式计算 (例如聚合、排序或 LIMIT BY) ,它可能会在输出任何块之前先处理若干行并失败;在这种情况下,其部分工作会被静默丢弃,而查询会基于其余分片返回结果。因此,这是最宽松的模式,应谨慎使用。
最后修改于 2026年7月23日