Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

skip_unavailable_shards_* 会话设置

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

skip_unavailable_shards

类型
Bool
默认值
0

启用或禁用对不可用分片的静默跳过。

此设置的行为由 skip_unavailable_shards_mode 参数控制。

可选值:

  • 1 — 启用跳过。

    如果某个分片不可用,ClickHouse 会基于部分数据返回结果,且不会报告节点可用性问题。

  • 0 — 禁用跳过。

    如果某个分片不可用,ClickHouse 会抛出异常。

skip_unavailable_shards_mode

类型
SkipUnavailableShardsMode
默认值
unavailable_or_table_missing
版本历史
版本默认值注释
26.7unavailable_or_table_missing新增设置,用于控制在启用 `skip_unavailable_shards` 时,来自远程分片的哪些异常会被忽略。默认值与历史行为一致:缺少表的分片会被视为不可用。

用于控制在启用 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) ,它可能会在输出任何块之前先处理若干行并失败;在这种情况下,其部分工作会被静默丢弃,而查询会基于其余分片返回结果。因此,这是最宽松的模式,应谨慎使用。

Navigation