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.

Возможные значения:

  • unavailable — Игнорируются только ошибки, связанные с соединением. Сегмент считается недоступным, если ClickHouse не может подключиться ни к одной из его реплик или если имя хоста реплики не удается разрешить через DNS.

  • unavailable_or_table_missing — Помимо unavailable, игнорируются ошибки, вызванные отсутствием таблицы или базы данных на сегменте. Это полезно, когда таблица создается или удаляется по всему кластеру. Это значение используется по умолчанию и соответствует историческому поведению skip_unavailable_shards, при котором сегмент, в котором таблица не существует, также считался недоступным.

  • unavailable_or_exception_before_processing — Помимо unavailable, игнорируется любое исключение, полученное от сегмента до того, как он вернет узлу-инициатору какой-либо блок данных. Исключение, поступившее после того, как сегмент уже вернул часть данных, всегда генерируется повторно. Обратите внимание: условие "до того, как он вернул какие-либо данные" проверяется на стороне инициатора: сегмент, выполняющий блокирующее вычисление (например, агрегацию, сортировку или LIMIT BY), может обработать строки и завершиться ошибкой, не выдав ни одного блока; в этом случае результаты его частичной работы молча отбрасываются, а запрос возвращает результат, построенный по оставшимся сегментам. Поэтому это наиболее permissive режим, и использовать его следует с осторожностью.

Navigation