Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

настройки сеанса prefer_*

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

prefer_column_name_to_alias

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

Включает или отключает использование исходных имен столбцов вместо псевдонимов в выражениях запроса и секциях. Это особенно важно, когда псевдоним совпадает с именем столбца, см. Псевдонимы выражений. Включите этот параметр, чтобы правила синтаксиса псевдонимов в ClickHouse лучше соответствовали правилам большинства других движков баз данных.

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

  • 0 — Имя столбца заменяется псевдонимом.
  • 1 — Имя столбца не заменяется псевдонимом.

Пример

Разница между включенным и выключенным состоянием:

Запрос:

SET prefer_column_name_to_alias = 0;
SELECT avg(number) AS number, max(number) FROM numbers(10);

Результат:

Received exception from server (version 21.5.1):
Code: 184. DB::Exception: Received from localhost:9000. DB::Exception: Aggregate function avg(number) is found inside another aggregate function in query: While processing avg(number) AS number.

Запрос:

SET prefer_column_name_to_alias = 1;
SELECT avg(number) AS number, max(number) FROM numbers(10);

Результат:

┌─number─┬─max(number)─┐
│    4.5 │           9 │
└────────┴─────────────┘

prefer_external_sort_block_bytes

Тип
UInt64
По умолчанию
16744704
История версий
ВерсияЗначение по умолчаниюКомментарий
24.516744704Предпочитать максимальный размер блока в байтах для внешней сортировки, чтобы уменьшить использование памяти при слиянии.

Предпочитать максимальный размер блока в байтах для внешней сортировки, чтобы уменьшить использование памяти при слиянии.

prefer_global_in_and_join

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

Включает замену операторов IN/JOIN на GLOBAL IN/GLOBAL JOIN.

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

  • 0 — Отключено. Операторы IN/JOIN не заменяются на GLOBAL IN/GLOBAL JOIN.
  • 1 — Включено. Операторы IN/JOIN заменяются на GLOBAL IN/GLOBAL JOIN.

Использование

Хотя SET distributed_product_mode=global может изменить поведение запросов для распределённых таблиц, он не подходит для локальных таблиц или таблиц из внешних источников. В таких случаях используется настройка prefer_global_in_and_join.

Например, у нас есть узлы, обслуживающие запросы, с локальными таблицами, которые не подходят для распределения. Их данные нужно на лету разослать в ходе распределённой обработки с помощью ключевого слова GLOBALGLOBAL IN/GLOBAL JOIN.

Ещё один сценарий использования prefer_global_in_and_join — доступ к таблицам, созданным с помощью внешних движков. Эта настройка помогает сократить количество обращений к внешним источникам при JOIN таких таблиц: до одного вызова на запрос.

См. также:

prefer_localhost_replica

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

Включает или отключает предпочтительное использование реплики на localhost при обработке распределённых запросов.

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

  • 1 — ClickHouse всегда отправляет запрос реплике на localhost, если она существует.
  • 0 — ClickHouse использует стратегию балансировки, указанную в настройке load_balancing.

prefer_warmed_unmerged_parts_seconds

Только в ClickHouse Cloud
Тип
Int64
По умолчанию
0

Действует только в ClickHouse Cloud. Если слитая часть была создана менее указанного числа секунд назад и не была предварительно прогрета (см. cache_populated_by_fetch), но все её исходные части доступны и предварительно прогреты, запросы SELECT будут читать данные из этих частей вместо неё. Только для Replicated-/SharedMergeTree. Обратите внимание, что здесь проверяется только то, была ли часть обработана CacheWarmer; если часть была загружена в кэш каким-либо другим способом, она всё равно будет считаться холодной, пока до неё не дойдёт CacheWarmer; если она была прогрета, а затем вытеснена из кэша, она всё равно будет считаться прогретой.

Navigation