这些设置可在 system.settings 中查看,由 源代码 自动生成。
启用或禁用对不可用分片的静默跳过。
此设置的行为由 skip_unavailable_shards_mode 参数控制。
可选值:
-
1 — 启用跳过。
如果某个分片不可用,ClickHouse 会基于部分数据返回结果,且不会报告节点可用性问题。
-
0 — 禁用跳过。
如果某个分片不可用,ClickHouse 会抛出异常。
版本历史
| 版本 | 默认值 | 注释 |
|---|---|---|
| 26.7 | unavailable_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) ,它可能会在输出任何块之前先处理若干行并失败;在这种情况下,其部分工作会被静默丢弃,而查询会基于其余分片返回结果。因此,这是最宽松的模式,应谨慎使用。