Эти настройки доступны в system.settings и автоматически генерируются на основе исходного кода.
distributed_aggregation_memory_efficient
Включен ли режим экономии памяти для распределенной агрегации.
distributed_connections_pool_size
Максимальное количество одновременных соединений с удалёнными серверами для распределённой обработки всех запросов к одной distributed таблице. Рекомендуется задавать значение не меньше числа серверов в кластере.
distributed_foreground_insert
Псевдонимы: insert_distributed_sync
Включает или отключает синхронную вставку данных в distributed таблицу.
По умолчанию при вставке данных в distributed таблицу сервер ClickHouse отправляет данные на узлы кластера в фоновом режиме. Если distributed_foreground_insert=1, данные обрабатываются синхронно, и операция INSERT завершается успешно только после того, как все данные будут сохранены на всех сегментах (как минимум на одной реплике для каждого сегмента, если internal_replication имеет значение true).
Возможные значения:
0— Данные вставляются в фоновом режиме.1— Данные вставляются в синхронном режиме.
Значение по умолчанию в Cloud: 1.
См. также
distributed_group_by_no_merge
Не объединять состояния агрегации с разных серверов при распределённой обработке запросов; можно использовать, если точно известно, что на разных сегментах находятся разные ключи.
Возможные значения:
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
История версий
| Версия | Значение по умолчанию | Комментарий |
|---|---|---|
| 24.3 | 0 | Если true, при INSERT в Distributed реплики только для чтения будут пропускаться |
Включает пропуск реплик только для чтения для запросов INSERT в Distributed.
Возможные значения:
- 0 — INSERT выполняется как обычно; если запрос попадёт на реплику только для чтения, произойдёт ошибка
- 1 — Инициатор будет пропускать реплики только для чтения перед отправкой данных в сегменты.
distributed_product_mode
Изменяет поведение распределённых подзапросов.
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
Включает или отключает применение LIMIT отдельно к каждому сегменту.
Это позволяет избежать:
- Передачи лишних строк по сети;
- Обработки строк сверх лимита на узле-инициаторе.
Начиная с версии 21.9 этот параметр больше не может приводить к неточным результатам, поскольку distributed_push_down_limit изменяет выполнение запроса, только если выполняется хотя бы одно из следующих условий:
- distributed_group_by_no_merge > 0.
- Запрос не содержит
GROUP BY/DISTINCT/LIMIT BY, но содержитORDER BY/LIMIT. - Запрос содержит
GROUP BY/DISTINCT/LIMIT BYвместе сORDER BY/LIMIT, и:- optimize_skip_unused_shards включен.
- optimize_distributed_group_by_sharding_key включен.
Возможные значения:
- 0 — Отключено.
- 1 — Включено.
См. также: