Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Настройки сеанса distributed_*

Эти настройки доступны в system.settings и автоматически генерируются на основе исходного кода.

distributed_aggregation_memory_efficient

Тип
Bool
По умолчанию
1

Включен ли режим экономии памяти для распределенной агрегации.

distributed_connections_pool_size

Тип
UInt64
По умолчанию
1024

Максимальное количество одновременных соединений с удалёнными серверами для распределённой обработки всех запросов к одной distributed таблице. Рекомендуется задавать значение не меньше числа серверов в кластере.

distributed_foreground_insert

Псевдонимы: insert_distributed_sync

Тип
Bool
По умолчанию
0

Включает или отключает синхронную вставку данных в distributed таблицу.

По умолчанию при вставке данных в distributed таблицу сервер ClickHouse отправляет данные на узлы кластера в фоновом режиме. Если distributed_foreground_insert=1, данные обрабатываются синхронно, и операция INSERT завершается успешно только после того, как все данные будут сохранены на всех сегментах (как минимум на одной реплике для каждого сегмента, если internal_replication имеет значение true).

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

  • 0 — Данные вставляются в фоновом режиме.
  • 1 — Данные вставляются в синхронном режиме.

Значение по умолчанию в Cloud: 1.

См. также

distributed_group_by_no_merge

Тип
UInt64
По умолчанию
0

Не объединять состояния агрегации с разных серверов при распределённой обработке запросов; можно использовать, если точно известно, что на разных сегментах находятся разные ключи.

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

  • 0 — Отключено (окончательная обработка запроса выполняется на узле-инициаторе).
  • 1 - Не объединять состояния агрегации с разных серверов при распределённой обработке запросов (запрос полностью обрабатывается на сегменте, инициатор только проксирует данные); можно использовать, если точно известно, что на разных сегментах находятся разные ключи.
  • 2 - То же, что и 1, но ORDER BY и LIMIT применяются на инициаторе (это невозможно, когда запрос полностью обрабатывается на удалённом узле, как при distributed_group_by_no_merge=1); можно использовать для запросов с ORDER BY и/или LIMIT.

Пример

SELECT *
FROM remote('127.0.0.{2,3}', system.one)
GROUP BY dummy
LIMIT 1
SETTINGS distributed_group_by_no_merge = 1
FORMAT PrettyCompactMonoBlock

SELECT *
FROM remote('127.0.0.{2,3}', system.one)
GROUP BY dummy
LIMIT 1
SETTINGS distributed_group_by_no_merge = 2
FORMAT PrettyCompactMonoBlock

distributed_insert_skip_read_only_replicas

Тип
Bool
По умолчанию
0
История версий
ВерсияЗначение по умолчаниюКомментарий
24.30Если true, при INSERT в Distributed реплики только для чтения будут пропускаться

Включает пропуск реплик только для чтения для запросов INSERT в Distributed.

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

  • 0 — INSERT выполняется как обычно; если запрос попадёт на реплику только для чтения, произойдёт ошибка
  • 1 — Инициатор будет пропускать реплики только для чтения перед отправкой данных в сегменты.

distributed_product_mode

Тип
DistributedProductMode
По умолчанию
deny

Изменяет поведение распределённых подзапросов.

ClickHouse применяет эту настройку, когда запрос содержит произведение distributed таблиц, то есть когда запрос к distributed таблице содержит подзапрос без GLOBAL для distributed таблицы.

Ограничения:

  • Применяется только к подзапросам IN и JOIN.
  • Только если в секции FROM используется distributed таблица, содержащая более одного сегмента.
  • Только если подзапрос относится к distributed таблице, содержащей более одного сегмента.
  • Не используется для табличной функции remote.

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

  • deny — Значение по умолчанию. Запрещает использовать такие типы подзапросов (возвращает исключение "Double-distributed in/JOIN subqueries is denied").
  • local — Заменяет базу данных и таблицу в подзапросе на локальные для сервера пункта назначения (сегмента), оставляя обычные IN/JOIN.
  • global — Заменяет запрос IN/JOIN на GLOBAL IN/GLOBAL JOIN.
  • allow — Разрешает использование таких типов подзапросов.

distributed_push_down_limit

Тип
UInt64
По умолчанию
1

Включает или отключает применение LIMIT отдельно к каждому сегменту.

Это позволяет избежать:

  • Передачи лишних строк по сети;
  • Обработки строк сверх лимита на узле-инициаторе.

Начиная с версии 21.9 этот параметр больше не может приводить к неточным результатам, поскольку distributed_push_down_limit изменяет выполнение запроса, только если выполняется хотя бы одно из следующих условий:

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

  • 0 — Отключено.
  • 1 — Включено.

См. также:

Navigation