Настройки
distributed_product_mode
Изменяет поведение распределенных подзапросов.
ClickHouse применяет настройку в тех случаях, когда запрос содержит произведение распределённых таблиц, т.е. когда запрос к распределенной таблице содержит не-GLOBAL подзапрос к также распределенной таблице.
Условия применения:
- Только подзапросы для IN, JOIN.
- Только если в секции FROM используется распределённая таблица, содержащая более одного шарда.
- Если подзапрос касается распределенной таблицы, содержащей более одного шарда.
- Не используется в случае табличной функции remote.
Возможные значения:
deny
— значение по умолчанию. Запрещает использование таких подзапросов (При попытке использование вернет исключение «Double-distributed IN/JOIN subqueries is denied»);local
— заменяет базу данных и таблицу в подзапросе на локальные для конечного сервера (шарда), оставив обычныйIN
/JOIN.
global
— заменяет запросIN
/JOIN
наGLOBAL IN
/GLOBAL JOIN.
allow
— разрешает использование таких подзапросов.
prefer_global_in_and_join
Заменяет запрос IN
/JOIN
на GLOBAL IN
/GLOBAL JOIN
.
Возможные значения:
- 0 — выключена. Операторы
IN
/JOIN
не заменяются наGLOBAL IN
/GLOBAL JOIN
. - 1 — включена. Операторы
IN
/JOIN
заменяются наGLOBAL IN
/GLOBAL JOIN
.
Значение по умолчанию: 0
.
Использование
Настройка SET distributed_product_mode=global
меняет поведение запросов для распределенных таблиц, но она не подходит для локальных таблиц или таблиц из внешних источников. В этих случаях удобно использовать настройку prefer_global_in_and_join
.
Например, если нужно объединить все данные из локальных таблиц, которые находятся на разных узлах — для распределенной обработки необходим GLOBAL JOIN
.
Другой вариант использования настройки prefer_global_in_and_join
— регулирование обращений к таблицам из внешних источников.
Эта настройка помогает уменьшить количество обращений к внешним ресурсам при объединении внешних таблиц: только один вызов на весь распределенный запрос.
См. та кже:
- Распределенные подзапросы
GLOBAL IN
/GLOBAL JOIN
enable_optimize_predicate_expression
Включает пробрасывание предикатов в подзапросы для запросов SELECT
.
Пробрасывание предикатов может существенно уменьшить сетевой трафик для распределенных запросов.
Возможные значения:
- 0 — выключена.
- 1 — включена.
Значение по умолчанию: 1.
Использование
Рассмотрим следующие запросы:
SELECT count() FROM test_table WHERE date = '2018-10-10'
SELECT count() FROM (SELECT * FROM test_table) WHERE date = '2018-10-10'
Если enable_optimize_predicate_expression = 1
, то время выполнения запросов одинаковое, так как ClickHouse применяет WHERE
к подзапросу сразу при его обработке.
Если enable_optimize_predicate_expression = 0
, то время выполнения второго запроса намного больше, потому что секция WHERE
применяется к данным уже после завершения подзапроса.
fallback_to_stale_replicas_for_distributed_queries
Форсирует запрос в устаревшую реплику в случае, если актуальные данные недоступны. См. Репликация.
Из устаревших реплик таблицы ClickHouse выбирает наиболее актуальную.
Используется при выполнении SELECT
из распределенной таблицы, которая указывает на реплицированные таблицы.
По умолчанию - 1 (включена).
force_index_by_date
Запрещает выполнение запросов, если использовать индекс по дате невозможно.
Работает с таблицами семейства MergeTree.
При force_index_by_date=1
ClickHouse проверяет, есть ли в запросе условие на ключ даты, которое может использоваться для отсечения диапазонов данных. Если подходящего условия нет - кидается исключение. При этом не проверяется, действительно ли условие уменьшает объём данных для чтения. Например, условие Date != '2000-01-01'
подходит даже в том случае, когда соответствует всем данным в таблице (т.е. для выполнения запроса требуется full scan). Подробнее про диапазоны данных в таблицах MergeTree читайте в разделе MergeTree.
force_primary_key
Запрещает выполнение запросов, если использовать индекс по первичному ключу невозможно.
Работает с таблицами семейства MergeTree.
При force_primary_key=1
ClickHouse проверяет, есть ли в запросе условие на первичный ключ, которое может использоваться для отсечения диапазонов данных. Если подходящего условия нет - кидается исключение. При этом не проверяется, действительно ли условие уменьшает объём данных для чтения. Подробнее про диапазоны данных в таблицах MergeTree читайте в разделе MergeTree.
format_schema
Параметр применяется в том случае, когда используются форматы, требующие определения схемы, например Cap’n Proto или Protobuf. Значение параметра зависит от формата.
fsync_metadata
Включает или отключает fsync при записи .sql
файлов. По умолчанию включено.
Имеет смысл выключать, если на сервере миллионы мелких таблиц-чанков, которые постоянно создаются и уничтожаются.
function_range_max_elements_in_block
Устанавливает порог безопасности для объема данных, создаваемого функцией range. Задаёт максимальное количество значений, генерируемых функцией на блок данных (сумма размеров массивов для каждой строки в блоке).
Возможные значения:
- Положительное целое.
Значение по умолчанию: 500 000 000
.
См. также
enable_http_compression
Включает или отключает сжатие данных в ответе на HTTP-запрос.
Для получения дополнительной информации, читайте Описание интерфейса HTTP.
Возможные значения:
- 0 — выключена.
- 1 — включена.
Значение по умолчанию: 0.
http_zlib_compression_level
Задаёт уровень сжатия данных в ответе на HTTP-запрос, если enable_http_compression = 1.
Возможные значения: числа от 1 до 9.
Значение по умолчанию: 3.
http_native_compression_disable_checksumming_on_decompress
Включает или отключает проверку контрольной суммы при распаковке данных HTTP POST от клиента. Используется только для собственного (Navite
) формата сжатия ClickHouse (ни gzip
, ни deflate
).
Для получения дополнительной информации, читайте Описание интерфейса HTTP.
Возможные значения:
- 0 — выключена.
- 1 — включена.
Значение по умолчанию: 0.
http_max_uri_size
Устанавливает максимальную длину URI в HTTP-запросе.
Возможные значения:
- Положительное целое.
Значение по умолчанию: 1048576.
table_function_remote_max_addresses
Задает максимальное количество адресов, которые могут быть сгенерированы из шаблонов для функции remote.
Возможные значения:
- Положительное целое.
Значение по умолчанию: 1000
.
glob_expansion_max_elements
Задает максимальное количество адресов, которые могут быть сгенерированы из шаблонов при использовании внешних хранилищ и при вызове табличных функциях (например, url), кроме функции remote
.
Возможные значения:
- Положительное целое.
Значение по умолчанию: 1000
.
send_progress_in_http_headers
Включает или отключает HTTP-заголовки X-ClickHouse-Progress
в ответах clickhouse-server
.
Для получения дополнительной информации, читайте Описание интерфейса HTTP.
Возможные значения:
- 0 — выключена.
- 1 — включена.
Значение по умолчанию: 0.
max_http_get_redirects
Ограничивает максимальное количество переходов по редиректам в таблицах с движком URL при выполнении HTTP запросов методом GET. Настройка применяется для обоих типов таблиц: созданных запросом CREATE TABLE и с помощью табличной функции url.
Возможные значения:
- Положительное целое число переходов.
- 0 — переходы запрещены.
Значение по умолчанию: 0.
input_format_allow_errors_num
Устанавливает максимальное количество допустимых ошибок при чтении из текстовых форматов (CSV, TSV и т.п.).
Значение по умолчанию: 0.
Используйте обязательно в паре с input_format_allow_errors_ratio
. Для пропуска ошибок, значения обеих настроек должны быть больше 0.
Если при чтении строки возникла ошибка, но при этом счетчик ошибок меньше input_format_allow_errors_num
, то ClickHouse игнорирует строку и переходит к следующей.
В случае превышения input_format_allow_errors_num
ClickHouse генерирует исключение.
input_format_allow_errors_ratio
Устанавливает максимальную долю допустимых ошибок при чтении из текстовых форматов (CSV, TSV и т.п.). Доля ошибок задаётся в виде числа с плавающей запятой от 0 до 1.
Значение по умолчанию: 0.
Используйте обязательно в паре с input_format_allow_errors_num
. Для пропуска ошибок, значения обеих настроек должны быть больше 0.
Если при чтении строки возникла ошибка, но при этом текущая доля ошибок меньше input_format_allow_errors_ratio
, то ClickHouse игнорирует строку и переходит к следующей.
В случае превышения input_format_allow_errors_ratio
ClickHouse генерирует исключение.
input_format_values_interpret_expressions
Включает или отключает парсер SQL, если потоковый парсер не может проанализировать данные. Этот параметр используется только для формата Values при вставке данных. Дополнительные сведения о парсерах читайте в разделе Синтаксис.
Возможные значения:
-
0 — выключена.
В этом случае необходимо вставлять форматированные данные. Смотрите раздел Форматы.
-
1 — включена.
В этом случае вы можете использовать выражение SQL в качестве значения, но вставка данных намного медленнее. Если вы вставляете только форматированные данные, ClickHouse ведет себя так, как будто значение параметра равно 0.
Значение по умолчанию: 1.
Пример использования:
Вставим значение типа DateTime при разных значения настройки.
SET input_format_values_interpret_expressions = 0;
INSERT INTO datetime_t VALUES (now())
Exception on client:
Code: 27. DB::Exception: Cannot parse input: expected ) before: now()): (at row 1)
SET input_format_values_interpret_expressions = 1;
INSERT INTO datetime_t VALUES (now())
Ok.
Последний запрос эквивалентен следующему:
SET input_format_values_interpret_expressions = 0;
INSERT INTO datetime_t SELECT now()
Ok.
input_format_values_deduce_templates_of_expressions
Включает или отключает попытку вычисления шаблона для выражений SQL в формате Values. Это позволяет гораздо быстрее парсить и интерпретировать выражения в Values
, если выражения в последовательных строках имеют одинаковую структуру. ClickHouse пытается вычислить шаблон выражения, распарсить следующие строки с помощью этого шаблона и вычислить выражение в пачке успешно проанализированных строк.
Возможные значения:
- 0 — Выключена.
- 1 — Включена.
Значение по умолчанию: 1.
Для следующего запроса:
INSERT INTO test VALUES (lower('Hello')), (lower('world')), (lower('INSERT')), (upper('Values')), ...
- Если
input_format_values_interpret_expressions=1
иformat_values_deduce_templates_of_expressions=0
, выражения интерпретируются отдельно для каждой строки (это очень медленно для большого количества строк). - Если
input_format_values_interpret_expressions=0
иformat_values_deduce_templates_of_expressions=1
, выражения в первой, второй и третьей строках парсятся с помощью шаблонаlower(String)
и интерпретируется вместе, выражение в четвертой строке парсится с другим шаблоном (upper(String)
). - Если
input_format_values_interpret_expressions=1
иformat_values_deduce_templates_of_expressions=1
, то же самое, что и в предыдущем случае, но также позволяет выполнять резервную интерпретацию выражений отдельно, если невозможно вычислить шаблон.
input_format_values_accurate_types_of_literals
Эта настройка используется, только когда input_format_values_deduce_templates_of_expressions = 1
. Выражения для некоторых столбцов могут иметь одинаковую структуру, но содержат числовые литералы разных типов, например:
(..., abs(0), ...), -- UInt64 literal
(..., abs(3.141592654), ...), -- Float64 literal
(..., abs(-1), ...), -- Int64 literal
Возможные значения:
-
0 — Выключена.
В этом случае, ClickHouse может использовать более общий тип для некоторых литералов (например,
Float64
илиInt64
вместоUInt64
для42
), но это может привести к переполнению и проблемам с точностью. -
1 — Включена.
В этом случае, ClickHouse проверяет фактический тип литерала и использует шаблон выражения соответствующего типа. В некоторых случаях это может значительно замедлить оценку выажения в
Values
.
Значение по умолчанию: 1.
input_format_defaults_for_omitted_fields
При вставке данных запросом INSERT
, заменяет пропущенные поля значениям по умолчанию для типа данных столбца.
Поддерживаемые форматы вставки:
Когда опция включена, сервер отправляет клиенту расширенные метаданные. Это требует дополнительных вычислительных ресурсов на сервере и может снизить производительность.
Возможные значения:
- 0 — выключена.
- 1 — включена.
Значение по умолчанию: 1.
input_format_tsv_empty_as_default
Если эта настройка включена, все пустые поля во входящем TSV заменяются значениями по умолчанию. Для сложных выражений по умолчанию также должна быть включена настройка input_format_defaults_for_omitted_fields
.
По умолчанию отключена.
input_format_tsv_enum_as_number
Включает или отключает парсинг значений перечислений как порядковых номеров.
Если режим включен, то во входящих данных в формате TCV
значения перечисления (тип ENUM
) всегда трактуются как порядковые номера, а не как элементы перечисления. Эту настройку рекомендуется включать для оптимизации парсинга, если данные типа ENUM
содержат только порядковые номера, а не сами элементы перечисления.
Возможные значения:
- 0 — входящие значения типа
ENUM
сначала сопоставляются с элементами перечисления, а если совпадений не найдено, то трактуются как порядковые номера. - 1 — входящие значения типа
ENUM
сразу трактуются как порядковые номера.
Значение по умолчанию: 0.
Пример
Рассмотрим таблицу:
CREATE TABLE table_with_enum_column_for_tsv_insert (Id Int32,Value Enum('first' = 1, 'second' = 2)) ENGINE=Memory();
При включенной настройке input_format_tsv_enum_as_number
:
Запрос:
SET input_format_tsv_enum_as_number = 1;
INSERT INTO table_with_enum_column_for_tsv_insert FORMAT TSV 102 2;
SELECT * FROM table_with_enum_column_for_tsv_insert;
Результат:
┌──Id─┬─Value──┐
│ 102 │ second │
└─────┴────────┘
Запрос:
SET input_format_tsv_enum_as_number = 1;
INSERT INTO table_with_enum_column_for_tsv_insert FORMAT TSV 103 'first';
сгенерирует исключение.
При отключенной настройке input_format_tsv_enum_as_number
:
Запрос:
SET input_format_tsv_enum_as_number = 0;
INSERT INTO table_with_enum_column_for_tsv_insert FORMAT TSV 102 2;
INSERT INTO table_with_enum_column_for_tsv_insert FORMAT TSV 103 'first';
SELECT * FROM table_with_enum_column_for_tsv_insert;
Результат:
┌──Id─┬─Value──┐
│ 102 │ second │
└─────┴────────┘
┌──Id─┬─Value──┐
│ 103 │ first │
└─────┴────────┘
input_format_null_as_default
Включает или отключает инициализацию значениями по умолчанию ячеек с NULL, если тип данных столбца не позволяет хранить NULL.
Если столбец не позволяет хранить NULL
и эта настройка отключена, то вставка NULL
приведет к возникновению исключения. Если столбец позволяет хранить NULL
, то значения NULL
вставляются независимо от этой настройки.
Эта настройка используется для запросов INSERT ... VALUES для текстовых входных форматов.
Возможные значения:
- 0 — вставка
NULL
в столбец, не позволяющий хранитьNULL
, приведет к возникновению исключения. - 1 — ячейки с
NULL
инициализируются значением столбца по умолчанию.
Значение по умолчанию: 1
.
insert_null_as_default
Включает или отключает вставку значений по умолчанию вместо NULL в столбцы, которые не позволяют хранить NULL.
Если столбец не позволяет хранить NULL
и эта настройка отключена, то вставка NULL
приведет к возникновению исключения. Если столбец позволяет хранить NULL
, то значения NULL
вставляются независимо от этой настройки.
Эта настройка используется для запросов INSERT ... SELECT. При этом подзапросы SELECT
могут объединяться с помощью UNION ALL
.
Возможные значения:
- 0 — вставка
NULL
в столбец, не позволяющий хранитьNULL
, приведет к возникновению исключения. - 1 — вместо
NULL
вставляе тся значение столбца по умолчанию.
Значение по умолчанию: 1
.
input_format_skip_unknown_fields
Включает или отключает пропускание вставки неизвестных данных.
При записи данных, если входные данные содержат столбцы, которых нет в целевой таблице, ClickHouse генерирует исключение. Если пропускание вставки включено, ClickHouse не вставляет неизвестные данные и не генерирует исключение.
Поддерживаемые форматы:
Возможные значения:
- 0 — выключена.
- 1 — включена.
Значение по умолчанию: 0.
input_format_import_nested_json
Включает или отключает вставку данных JSON с вложенными объектами.
Поддерживаемые форматы:
Возможные значения:
- 0 — выключена.
- 1 — включена.
Значение по умолчанию: 0.
См. также:
- Использование вложенных структур with the
JSONEachRow
format.
input_format_with_names_use_header
Включает или отключает проверку порядка столбцов при вставке данных.
Чтобы повысить эффективность вставки данных, рекомендуем отключить эту проверку, если вы уверены, что порядок столбцов входных данных такой же, как в целевой таблице.
Поддерживаемые форматы:
- CSVWithNames
- CSVWithNamesAndTypes
- TabSeparatedWithNames
- TabSeparatedWithNamesAndTypes
- JSONCompactEachRowWithNames
- JSONCompactEachRowWithNamesAndTypes
- JSONCompactStringsEachRowWithNames
- JSONCompactStringsEachRowWithNamesAndTypes
- RowBinaryWithNames
- RowBinaryWithNamesAndTypes
- CustomSeparatedWithNames
- CustomSeparatedWithNamesAndTypes
Возможные значения:
- 0 — выключена.
- 1 — включена.
Значение по умолчанию: 1.
input_format_with_types_use_header
Определяет, должен ли синтаксический анализатор формата проверять, соответствуют ли типы данных из входных данных типам данных из целевой таблицы.
Поддерживаемые форматы:
- CSVWithNamesAndTypes
- TabSeparatedWithNamesAndTypes
- JSONCompactEachRowWithNamesAndTypes
- JSONCompactStringsEachRowWithNamesAndTypes
- RowBinaryWithNamesAndTypes
- CustomSeparatedWithNamesAndTypes
Возможные значения:
- 0 — выключена.
- 1 — включена.
Значение по умолчанию: 1.
date_time_input_format
Выбор парсера для текстового представления дат и времени при обработке входного формата.
Настройка не применяется к функциям для работы с датой и временем.
Возможные значения:
best_effort
— включает расширенный парсинг.
ClickHouse может парсить базовый формат YYYY-MM-DD HH:MM:SS
и все форматы ISO 8601. Например, 2018-06-08T01:02:03.000Z
.
basic
— используется базовый парсер.
ClickHouse может парсить только базовый формат YYYY-MM-DD HH:MM:SS
или YYYY-MM-DD
. Например, 2019-08-20 10:18:56
или 2019-08-20
.
Значение по умолчанию: basic
.
См. также:
date_time_output_format
Позволяет выбрать разные выходные форматы текстового представления даты и времени.
Возможные значения:
-
simple
- простой выходной формат.Выходные дата и время Clickhouse в формате
YYYY-MM-DD hh:mm:ss
. Например,2019-08-20 10:18:56
. Расчет выполняется в соответствии с часовым поясом типа данных (если он есть) или часовым поясом сервера. -
iso
- выходной формат ISO.Выходные дата и время Clickhouse в формате ISO 8601
YYYY-MM-DDThh:mm:ssZ
. Например,2019-08-20T10:18:56Z
. Обратите внимание, что выходные данные отображаются в формате UTC (Z
означает UTC). -
unix_timestamp
- выходной формат Unix.Выходные дата и время в формате Unix. Например
1566285536
.
Значение по умолчанию: simple
.
См. также:
join_default_strictness
Устанавливает строгость по умолчанию для JOIN.
Возможные значения:
ALL
— если в правой таблице несколько совпадающих строк, данные умножаются на количество этих строк. Это нормальное поведениеJOIN
как в стандартном SQL.ANY
— если в правой таблице несколько соответствующих строк, то соединяется только первая найденная. Если в «правой» таблице есть не более одной подходящей строки, то результатыANY
иALL
совпадают.Пустая строка
— еслиALL
илиANY
не указаны в запросе, то ClickHouse генерирует исключение.
Значение по умолчанию: ALL
.
join_algorithm
Определяет алгоритм выполнения запроса JOIN.
Возможные значения:
hash
— используется алгоритм соединения хешированием.partial_merge
— используется алгоритм соединения слиянием сортированных списков.prefer_partial_merge
— используется алгоритм соединения слиянием сортированных списков, когда это возможно.auto
— сервер ClickHouse пытается на лету заменить алгоритмhash
наmerge
, чтобы избежать переполнения памяти.
Значение по умолчанию: hash
.
При использовании алгоритма hash
правая часть JOIN
загружается в оперативную память.
При использовании алгоритма partial_merge
сервер сортирует данные и сбрасывает их на диск. Работа алгоритма merge
в ClickHouse немного отличается от классической реализации. Сначала ClickHouse сортирует правую таблицу по блокам на основе ключей соединения и для отсортированных блоков строит индексы min-max. Затем он сортирует куски левой таблицы на основе ключей соединения и объединяет их с правой таблицей операцией JOIN
. Созданные min-max индексы используются для пропуска тех блоков из правой таблицы, которые не участвуют в данной операции JOIN
.
join_any_take_last_row
Изменяет поведение операций, выполняемых со строгостью ANY
.
Настройка применяется только для операций JOIN
, выполняемых над таблицами с движком Join.
Возможные значения:
- 0 — если в правой таблице несколько соответствующих строк, то присоединяется только первая найд енная строка.
- 1 — если в правой таблице несколько соответствующих строк, то присоединяется только последняя найденная строка.
Значение по умолчанию: 0.
См. также:
join_use_nulls
Устанавливает тип поведения JOIN. При объединении таблиц могут появиться пустые ячейки. ClickHouse заполняет их по-разному в зависимости от настроек.
Возможные значения:
- 0 — пустые ячейки заполняются значением по умолчанию соответствующего типа поля.
- 1 —
JOIN
ведёт себя как в стандартном SQL. Тип соответствующего поля преобразуется в Nullable, а пустые ячейки заполняются значениями NULL.
partial_merge_join_optimizations
Отключает все оптимизации для запросов JOIN с частичным MergeJoin алгоритмом.
По умолчанию оптимизации включены, что может привести к неправильным результатам. Если вы видите подозрительные результаты в своих запросах, отключите оптимизацию с помощью этого параметра. В различных версиях сервера ClickHouse, оптимизация может отличаться.
Возможные значения:
- 0 — Оптимизация отключена.
- 1 — Оптимизация включена.
Значение по умолчанию: 1.
partial_merge_join_rows_in_right_blocks
Устанавливает предельные размеры блоков данных «правого» соединения, для запросов JOIN с частичным MergeJoin алгоритмом.
Сервер ClickHouse:
- Разделяет данные правого соединения на блоки с заданным числом строк.
- Индексирует для каждого блока минимальное и максимальное значение.
- Выгружает подготовленные блоки на диск, если это возможно.
Возможные значения:
- Положител ьное целое число. Рекомендуемый диапазон значений [1000, 100000].
Значение по умолчанию: 65536.
join_on_disk_max_files_to_merge
Устанавливет количество файлов, разрешенных для параллельной сортировки, при выполнении операций MergeJoin на диске.
Чем больше значение параметра, тем больше оперативной памяти используется и тем меньше используется диск (I/O).
Возможные значения:
- Положительное целое число, больше 2.
Значение по умолчанию: 64.
temporary_files_codec
Устанавливает метод сжатия для временных файлов на диске, используемых при сортировки и объединения.
Возможные значения:
- LZ4 — применять сжатие, используя алгоритм LZ4
- NONE — не применять сжатие.
Значение по умолчанию: LZ4.
any_join_distinct_right_table_keys
Включает устаревшее поведение сервера ClickHouse при выполнении операций ANY INNER|LEFT JOIN
.
Используйте этот параметр только в целях обратной совместимости, если ваши варианты использования требуют устаревшего поведения JOIN
.
Когда включено устаревшее поведение:
- Результаты операций "t1 ANY LEFT JOIN t2" и "t2 ANY RIGHT JOIN t1" не равны, поскольку ClickHouse использует логику с сопоставлением ключей таблицы "многие к одному слева направо".
- Результаты операций
ANY INNER JOIN
содержат все строки из левой таблицы, аналогично операцииSEMI LEFT JOIN
.
Когда устаревшее поведение отключено:
- Результаты операций
t1 ANY LEFT JOIN t2
иt2 ANY RIGHT JOIN t1
равно, потому что ClickHouse использует логику сопоставления ключей один-ко-многим в операцияхANY RIGHT JOIN
. - Результаты операций
ANY INNER JOIN
содержат по одной строке на ключ из левой и правой таблиц.
Возможные значения:
- 0 — Устаревшее поведение отключено.
- 1 — Устаревшее поведение включено.
Значение по умолчанию: 0.
См. также:
max_block_size
Данные в ClickHouse обрабатываются по блокам (наборам кусочков столбцов). Внутренние циклы обработки для одного блока достаточно эффективны, но есть заметные издержки на каждый блок. Настройка max_block_size
— это рекомендация, какой размер блока (в количестве строк) загружать из таблиц. Размер блока не должен быть слишком маленьким, чтобы затраты на каждый блок были заметны, но не слишком велики, чтобы запрос с LIMIT, который завершается после первого блока, обрабатывался быстро. Цель состоит в том, чтобы не использовалось слишком много оперативки при вынимании большого количества столбцов в несколько потоков; чтобы оставалась хоть какая-нибудь кэш-локальность.
Значение по умолчанию: 65,536.
Из таблицы не всегда загружаются блоки размера max_block_size
. Если ясно, что нужно прочитать меньше данных, то будет считан блок меньшего размера.
preferred_block_size_bytes
Служит для тех же целей что и max_block_size
, но задает рекомендуемый размер блоков в байтах, выбирая адаптивное количество строк в блоке.
При этом размер блока не может быть более max_block_size
строк.
По умолчанию: 1,000,000. Работает только при чтении из MergeTree-движков.
merge_tree_uniform_read_distribution
При чтении из таблиц MergeTree ClickHouse использует несколько потоков. Этот параме тр включает/выключает равномерное распределение заданий по рабочим потокам. Алгоритм равномерного распределения стремится сделать время выполнения всех потоков примерно равным для одного запроса SELECT
.
Возможные значения:
- 0 — не использовать равномерное распределение заданий на чтение.
- 1 — использовать равномерное распределение заданий на чтение.
Значение по умолчанию: 1.
merge_tree_min_rows_for_concurrent_read
Если количество строк, считываемых из файла таблицы MergeTree превышает merge_tree_min_rows_for_concurrent_read
, то ClickHouse пытается выполнить одновременное чтение из этого файла в несколько потоков.
Возможные значения:
- Положительное целое число.
Значение по умолчанию: 163840
.
merge_tree_min_rows_for_concurrent_read_for_remote_filesystem
Минимальное количество строк для чтения из одного файла, прежде чем движок MergeTree может выполнять параллельное чтение из удаленной файловой системы.
Возможные значения:
- Положительное целое число.
Значение по умолчанию: 163840
.
merge_tree_min_bytes_for_concurrent_read
Если число байтов, которое должно быть прочитано из одного файла таблицы с движком MergeTree, превышает значение merge_tree_min_bytes_for_concurrent_read
, то ClickHouse выполняет одновременное чтение в несколько потоков из этого файла.
Возможное значение:
- Положительное целое число.
Значение по умолчанию: 251658240
.
merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem
Минимальное количество байтов для чтения из одного файла, прежде чем движок MergeTree может выполнять параллельное чтение из удаленной файловой системы.
Возможное значение:
- Положительное целое число.
Значение по умолчанию: 251658240
.
merge_tree_min_rows_for_seek
Если расстояние между двумя блоками данных для чтения в одном файле меньше, чем merge_tree_min_rows_for_seek
строк, то ClickHouse не перескакивает (seek) через блоки, а считывает данные последовательно.
Возможные значения:
- Положительное целое число.
Значение по умолчанию: 0.
merge_tree_min_bytes_for_seek
Если расстояние между двумя блоками данных для чтения в одном файле меньше, чем merge_tree_min_bytes_for_seek
байтов, то ClickHouse не перескакивает (seek) через блоки, а считывает данные последовательно.
Возможные значения:
- Положительное целое число.
Значение по умолчанию: 0.
merge_tree_coarse_index_granularity
При поиске данных ClickHouse проверяет засечки данных в файле индекса. Если ClickHouse обнаруживает, что требуемые ключи находятся в некотором диапазоне, он делит этот диапазон на merge_tree_coarse_index_granularity
поддиапазонов и выполняет в них рекурсивный поиск нужных ключей.
Возможные значения:
- Положительное целое число.
Значение по умолчанию: 8.
merge_tree_max_rows_to_use_cache
Если требуется прочитать более, чем merge_tree_max_rows_to_use_cache
строк в одном запросе, ClickHouse не используют кэш несжатых блоков.
Кэш несжатых блоков хранит данные, извлечённые при выполнении запросов. ClickHouse использует этот кэш для ускорения ответов на повторяющиеся небольшие запросы. Настройка защищает кэш от замусоривания запросами, для выполнения которых необходимо извлечь большое количество данных. Настройка сервера uncompressed_cache_size определяет размер кэша несжатых блоков.
Возможные значения:
- Положительное целое число.
Значение по умолчанию: 128 ✕ 8192.
merge_tree_max_bytes_to_use_cache
Если требуется прочитать более, чем merge_tree_max_bytes_to_use_cache
байтов в одном запросе, ClickHouse не используют кэш несжатых блоков.
Кэш несжатых блоков хранит данные, извлечённые при выполнении запросов. ClickHouse использует кэш для ускорения ответов на повторяющиеся небольшие запросы. Настройка защищает кэш от переполнения. Настройка сервера uncompressed_cache_size определяет размер кэша несжатых блоков.
Возможные значения:
- Положительное целое число.
Значение по умолчанию: 2013265920.
min_bytes_to_use_direct_io
Минимальный объём данных, необходимый для прямого (небуферизованного) чтения/записи (direct I/O) на диск.
ClickHouse использует этот параметр при чтении данных из таблиц. Если общий объём хранения всех данных для чтения превышает min_bytes_to_use_direct_io
байт, тогда ClickHouse использует флаг O_DIRECT
при чтении данных с диска.
Возможные значения:
- 0 — прямой ввод-вывод отключен.
- Положительное целое число.
Значение по умолчанию: 0.
network_compression_method
Устанавливает метод сжатия данных, который используется для обмена данными между серверами и между сервером и clickhouse-client.
Возможные значения:
LZ4
— устанавливает метод сжатия LZ4.ZSTD
— устанавливает метод сжатия ZSTD.
Значение по умолчанию: LZ4
.
См. также
network_zstd_compression_level
Регулирует уровень сжатия ZSTD. Используется только тогда, когда network_compression_method установлен на ZSTD
.
Возможные значения:
- Положительное целое число от 1 до 15.
Значение по умолчанию: 1
.
log_queries
Установка логирования запроса.
Запросы, переданные в ClickHouse с этой настройкой, логируются согласно правилам конфигурационного параметра сервера query_log.
Пример:
log_queries=1
log_queries_min_query_duration_ms
Минимальное время выполнения запроса для логгирования в системные таблицы:
system.query_log
system.query_thread_log
В случае ненулевого порога log_queries_min_query_duration_ms
, в лог будут записываться лишь события об окончании выполнения запроса:
-
QUERY_FINISH
-
EXCEPTION_WHILE_PROCESSING
-
Тип: milliseconds
-
Значение по умолчанию: 0 (логгировать все запросы)
log_queries_min_type
Задаёт минимальный уровень логирования в query_log
.
Возможные значения:
QUERY_START
(=1
)QUERY_FINISH
(=2
)EXCEPTION_BEFORE_START
(=3
)EXCEPTION_WHILE_PROCESSING
(=4
)
Значение по умолчанию: QUERY_START
.
Можно использовать для ограничения того, какие объекты будут записаны в query_log
, например, если вас интересуют ошибки, тогда вы можете использовать EXCEPTION_WHILE_PROCESSING
:
log_queries_min_type='EXCEPTION_WHILE_PROCESSING'
log_query_threads
Управляет логированием информации о потоках выполнения запросов.
Информация о потоках выполнения запросов сохраняется в системной таблице system.query_thread_log. Работает только в том случае, если включена настройка log_queries. Лог информации о потоках выполнения запросов, переданных в ClickHouse с этой установкой, записывается согласно правилам конфигурационного параметра сервера query_thread_log.
Возможные значения:
- 0 — отключено.
- 1 — включено.
Значение по умолчанию: 1
.
Пример
log_query_threads=1