add_http_cors_header
analyze_index_with_space_filling_curves
ORDER BY mortonEncode(x, y) или ORDER BY hilbertEncode(x, y), и запрос содержит условия для её аргументов, например x >= 10 AND x <= 20 AND y >= 20 AND y <= 30, используйте пространственно-заполняющую кривую для анализа индекса.
analyzer_inline_views
any_join_distinct_right_table_keys
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 — Устаревшее поведение включено.
archive_adaptive_buffer_max_size_bytes
arrow_flight_request_descriptor_type
- ‘path’ — Использовать FlightDescriptor::Path (по умолчанию; работает с большинством серверов Arrow Flight)
- ‘command’ — Использовать FlightDescriptor::Command с запросом SELECT (требуется для Dremio)
backup_slow_all_threads_after_retryable_s3_error
true, все потоки, выполняющие S3-запросы к одной и той же конечной точке резервного копирования, замедляются
после того, как любой S3-запрос сталкивается с ошибкой S3, допускающей повторную попытку, например ‘Slow Down’.
Если установлено значение false, каждый поток обрабатывает задержку S3-запросов независимо от остальных.
cache_warmer_threads
calculate_text_stack_trace
cancel_http_readonly_queries_on_client_close
1.
checksum_on_read
connection_pool_max_wait_ms
- Положительное целое число.
- 0 — бесконечный тайм-аут.
connections_with_failover_max_tries
convert_query_to_cnf
true, запрос SELECT будет преобразован в конъюнктивную нормальную форму (CNF). В некоторых случаях запрос, переписанный в CNF, может выполняться быстрее (объяснение см. в этом issue на Github).
Например, обратите внимание, что следующий запрос SELECT не изменяется (поведение по умолчанию):
convert_query_to_cnf значение true и посмотрим, что изменится:
WHERE переписано в CNF, но результирующий набор остаётся тем же — булева логика не изменилась:
count_matches_stop_at_empty_match
countMatches шаблон регулярного выражения даёт совпадение нулевой длины.
cross_to_inner_join_rewrite
data_type_default_nullable
- 1 — Типы данных в определениях столбцов по умолчанию имеют тип
Nullable. - 0 — Типы данных в определениях столбцов по умолчанию не имеют тип
Nullable.
decimal_check_overflow
deduplicate_blocks_in_dependent_materialized_views
- 0 — Отключено.
- 1 — Включено.
defer_partition_pruning_after_final
FINAL к таблицам, у которых
столбцы ключа партиции не входят в ключ сортировки, отсечение партиций не выполняется. Это безопасное с точки зрения корректности поведение,
добавленное в 26.3: FINAL может потребоваться выполнить дедупликацию строк с одинаковым
первичным ключом, но находящихся в разных партициях, а отсечение партиций молча исключило бы такие строки из
входных данных для дедупликации.
Когда параметр отключен, отсечение партиций применяется даже с FINAL, что восстанавливает поведение
до 26.3. Это может быть значительно быстрее для запросов с предикатами WHERE по
столбцу партиции, но корректно только в тех случаях, когда строки с одинаковым первичным ключом не могут существовать
в разных партициях — например, в таблицах журналов событий, где столбец партиции задается при вставке
и никогда не изменяется.
Этот параметр влияет только на партиционированные таблицы, у которых столбцы ключа партиции не входят
в ключ сортировки; для остальных таблиц отсечение партиций применяется всегда.
Возможные значения:
- 0 — Применять отсечение партиций до
FINAL(поведение до 26.3, быстрее, но в общем случае небезопасно). - 1 — Откладывать отсечение партиций до выполнения
FINAL(по умолчанию, безопасно с точки зрения корректности).
describe_compact_output
диалект
discard_query_data
distinct_overflow_mode
throw: сгенерировать исключение (по умолчанию).break: прекратить выполнение запроса и вернуть частичный результат, как если бы исходные данные исчерпались.
do_not_merge_across_partitions_select_final
dynamic_throw_on_type_mismatch
true(по умолчанию) — сгенерировать исключение.false— вместо этого возвращатьNULLдля таких строк.
enforce_strict_identifier_format
engine_url_skip_empty_files
- 0 —
SELECTгенерирует исключение, если пустой файл несовместим с запрошенным форматом. - 1 —
SELECTвозвращает пустой результат, если файл пуст.
exact_rows_before_limit
except_default_mode
exclude_materialize_skip_indexes_on_insert
execute_exists_as_scalar_subquery
0.
explain_query_plan_default
EXPLAIN PLAN.
Возможные значения:
pretty(значение по умолчанию с 26.7) — дляactions,compactиprettyпо умолчанию используетсяtrue, что даёт компактный, удобочитаемый план с аннотациями действий.legacy— формат вывода до 26.7.
EXPLAIN явно указаны параметры actions, compact или pretty (например, EXPLAIN actions = 0, compact = 0, pretty = 0 SELECT ...), они всегда переопределяют эту настройку.
Для EXPLAIN PLAN с json = 1 или distributed = 1 сохраняются прежние значения по умолчанию (legacy, до 26.7) независимо от этой настройки, если только actions, compact или pretty не заданы явно. Формат pretty не может представлять результаты JSON или распределённые планы по сегментам, поэтому эти режимы корректно отображаются только в формате legacy.
extract_key_value_pairs_max_pairs_per_row
extract_kvp_max_pairs_per_row
Максимальное количество пар, которое может вернуть функция extractKeyValuePairs. Используется как защита от чрезмерного потребления памяти.
extremes
fallback_to_stale_replicas_for_distributed_queries
SELECT из distributed таблицы, указывающей на реплицируемые таблицы.
По умолчанию: 1 (включено).
file_like_engine_default_partition_strategy
filesystem_prefetches_limit
filesystem_prefetches_max_memory_usage
final
- 0 - отключено
- 1 - включено
finalize_projection_parts_synchronously
flatten_nested
- 1 — столбец Nested преобразуется в отдельные массивы.
- 0 — столбец Nested остаётся единым массивом кортежей.
0, можно использовать произвольный уровень вложенности.
Примеры
Запрос:
fsync_metadata
.sql. По умолчанию включено.
Его имеет смысл отключить, если на сервере есть миллионы маленьких таблиц, которые постоянно создаются и удаляются.
functions_h3_default_if_invalid
geo_distance_returns_float64_on_float64_arguments
geoDistance, greatCircleDistance, greatCircleAngle имеют тип Float64, то возвращается Float64, а для внутренних вычислений используется двойная точность. В предыдущих версиях ClickHouse эти функции всегда возвращали Float32.
geotoh3_argument_order
glob_expansion_max_elements
h3togeo_lon_lat_result_order
handshake_timeout_ms
hedged_connection_timeout_ms
highlight_max_matches_per_row
- Положительное целое число.
hnsw_candidate_list_size_for_search
ef_search.
hsts_max_age
idle_connection_timeout
- Положительное целое число (0 — закрыть немедленно, через 0 секунд).
inject_random_order_for_select_without_order_by
interactive_delay
intersect_default_mode
least_greatest_legacy_null_behavior
legacy_column_name_of_tuple_literal
Tuple имена всех элементов вместо хеша. Эта настройка существует только из соображений совместимости. Имеет смысл установить значение ‘true’ при выполнении rolling update кластера с версии ниже 21.7 на версию выше.
limit
- 0 — количество строк не ограничено.
- Положительное целое число.
load_marks_asynchronously
1.
lock_acquire_timeout
DEADLOCK_AVOIDED.
Возможные значения:
- Положительное целое число (в секундах).
- 0 — тайм-аут блокировки отсутствует.
low_priority_query_wait_time_ms
priority), запросы с низким приоритетом ждут завершения запросов с более высоким приоритетом. Эта настройка указывает время ожидания.
make_distributed_plan
merge_table_max_tables_to_look_for_schema_inference
Merge без явного указания схемы или при использовании табличной функции merge схема определяется как объединение не более указанного количества подходящих таблиц.
Если таблиц больше, схема будет определена по первым таблицам в указанном количестве.
mongodb_throw_on_unsupported_query
allow_experimental_analyzer=0.
multiple_joins_try_to_keep_original_names
normalize_function_names
offset
- 0 — строки не пропускаются.
- Положительное целое число.
paimon_target_snapshot_id
parallelize_output_from_storages
partial_result_on_first_cancel
per_part_index_stats
poll_interval
polyglot_dialect
postgresql_fault_injection_probability
predicate_statistics_sample_rate
system.predicate_statistics_log. Если установлено значение N > 0, выборка включает примерно 1/N запросов (по Query id). 0 означает, что сбор отключён.
prefetch_buffer_size
print_pretty_type_names
DESCRIBE и функции toTypeName().
Пример:
priority
push_external_roles_in_interserver_queries
query_metric_log_interval
collect_interval_milliseconds из настройки query_metric_log, а если оно отсутствует — значение 1000 по умолчанию.
Чтобы отключить сбор данных для отдельного запроса, установите query_metric_log_interval в 0.
Значение по умолчанию: -1
queue_max_wait_ms
rabbitmq_max_wait_ms
readonly
recursive_cte_max_steps_in_type_inference
getLeastSupertype к нерекурсивной и рекурсивной частям UNION ALL до достижения сходимости. Установите 0, чтобы отключить расширение типов и использовать только типы из нерекурсивной части.
regexp_max_matches_per_row
- Положительное целое число.
reject_expensive_hyperscan_regexps
remerge_sort_lowered_memory_bytes_ratio
remote_read_min_bytes_for_seek
rename_files_after_processing
- Тип: String
- Значение по умолчанию: Пустая строка
file. Если параметр задан, все файлы, прочитанные табличной функцией file, будут переименованы по указанному шаблону с плейсхолдерами, но только если их обработка завершилась успешно.
Плейсхолдеры
%a— Полное имя исходного файла (например, “sample.csv”).%f— Имя исходного файла без расширения (например, “sample”).%e— Расширение исходного файла с точкой (например, “.csv”).%t— Временная метка (в микросекундах).%%— Знак процента (”%”).
Пример
-
Опция:
--rename_files_after_processing="processed_%f_%t%e" -
Запрос:
SELECT * FROM file('sample.csv')
sample.csv успешно прочитан, он будет переименован в processed_sample_1683473210851438.csv
replication_wait_for_inactive_replica_timeout
ALTER, OPTIMIZE или TRUNCATE.
Возможные значения:
0— Не ждать.- Отрицательное целое число — Ждать неограниченно долго.
- Положительное целое число — Количество секунд ожидания.
reserve_memory
workload.
Если для рабочей нагрузки недостаточно доступной памяти, запрос не запускается и остаётся в состоянии pending, пока резервирование не станет возможным.
Значение 0 означает, что резервирование не выполняется.
Эта настройка действует только в том случае, если создан ресурс MEMORY RESERVATION.
Заменяет движок таблицы ReplicatedMergeTree на SharedMergeTree при RESTORE.
Значение по умолчанию в Cloud: 1.
result_overflow_mode
throw: сгенерировать исключение (по умолчанию).break: остановить выполнение запроса и вернуть частичный результат, как если бы исходные данные были исчерпаны.
Break прерывает выполнение только на уровне
блока. Это означает, что количество возвращённых строк будет больше, чем
max_result_rows, кратно max_block_size
и зависит от max_threads.
Пример
Query
Result
rows_before_aggregation
secondary_indices_enable_bulk_filtering
select_sequential_consistency
Эта настройка работает по-разному в SharedMergeTree и ReplicatedMergeTree; подробнее о поведении
select_sequential_consistency в SharedMergeTree см. в разделе SharedMergeTree consistency.SELECT. Требует, чтобы insert_quorum_parallel был отключен (по умолчанию он включен).
Возможные значения:
- 0 — отключено.
- 1 — включено.
SELECT только на тех репликах, которые содержат данные из всех предыдущих запросов INSERT, выполненных с insert_quorum. Если клиент обращается к неполной реплике, ClickHouse выдаст исключение. Запрос SELECT не будет включать данные, которые еще не были записаны в кворум реплик.
Когда insert_quorum_parallel включен (по умолчанию), select_sequential_consistency не работает. Это связано с тем, что параллельные запросы INSERT могут записываться в разные наборы кворумных реплик, поэтому нет гарантии, что одна реплика получит все записи.
См. также:
session_timezone
timeZone() и serverTimeZone().
Возможные значения:
- Любое имя часового пояса из
system.time_zones, напримерEurope/Berlin,UTCилиZulu
toDateTime()без явно указанного часового пояса, используемая в первом запросеSELECT, учитывает настройкуsession_timezoneи глобальный часовой пояс.- Во втором запросе значение DateTime разбирается из строки и наследует тип и часовой пояс существующего столбца
d. Поэтому ни настройкаsession_timezone, ни глобальный часовой пояс не учитываются.
set_overflow_mode
throw: сгенерировать исключение (по умолчанию).break: остановить выполнение запроса и вернуть частичный результат, как если бы исходные данные закончились.
single_join_prefer_left_table
skip_redundant_aliases_in_udf
- 1 — Псевдонимы пропускаются (заменяются своими выражениями) в UDF.
- 0 — Псевдонимы не пропускаются (не заменяются своими выражениями) в UDF.
sleep_after_receiving_query_ms
snappy_mode
file и url. HTTP Content-Encoding: snappy всегда использует формат framing и не учитывает эту настройку.
Обратите внимание: необработанный блоковый формат snappy, создаваемый одним вызовом snappy::Compress (например, полезная нагрузка протокола Prometheus remote, обрабатываемая SnappyBasicReadBuffer), представляет собой отдельный формат передачи данных, специфичный для протокола, и не управляется этой настройкой.
Возможные значения:
basic— блоковый формат Hadoop snappy. Совместим с файлами, которые Hadoop читает и записывает. Поддерживает и чтение, и запись.framed— формат framing для Snappy, стандартный стриминг-формат, определённый Google. Поддерживает и чтение, и запись.
sort_overflow_mode
throw: сгенерировать исключение.break: остановить выполнение запроса и вернуть частичный результат.
splitby_max_substrings_includes_remaining_string
max_substrings > 0 включать оставшуюся часть строки в последний элемент результирующего массива.
Возможные значения:
0- Оставшаяся часть строки не будет включена в последний элемент результирующего массива.1- Оставшаяся часть строки будет включена в последний элемент результирующего массива. Такое поведение соответствует функцииsplit()в Spark и методу ‘string.split()’ в Python.
stop_refreshable_materialized_views_on_startup
SYSTEM START VIEWS или SYSTEM START VIEW <name>. Это также относится к вновь созданным представлениям. Не влияет на materialized views, не являющиеся refreshable.
tcp_keep_alive_timeout
temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds
throw_if_no_data_to_insert
clickhouse-client или gRPC-интерфейс.
timeout_before_checking_execution_speed
min_execution_speed),
по истечении указанного времени в секундах.
transfer_overflow_mode
throw: сгенерировать исключение (по умолчанию).break: остановить выполнение запроса и вернуть частичный результат, как если бы исходные данные закончились.
transform_null_in
NULL сравнивать нельзя, поскольку NULL означает неопределённое значение. Поэтому сравнение expr = NULL всегда должно возвращать false. При включении этой настройки выражение NULL = NULL для оператора IN возвращает true.
Возможные значения:
- 0 — Сравнение значений
NULLв оператореINвозвращаетfalse. - 1 — Сравнение значений
NULLв оператореINвозвращаетtrue.
null_in:
traverse_shadow_remote_data_paths
union_default_mode
SELECT-запросов. Эта настройка используется только при работе с UNION, если явно не указаны UNION ALL или UNION DISTINCT.
Возможные значения:
'DISTINCT'— ClickHouse выводит строки, полученные в результате объединения запросов, удаляя дублирующиеся строки.'ALL'— ClickHouse выводит все строки, полученные в результате объединения запросов, включая дублирующиеся строки.''— ClickHouse генерирует исключение при использованииUNION.
unique_key_max_encoded_size
UNIQUE KEY.
unknown_packet_in_send_data
variant_throw_on_type_mismatch
true(по умолчанию) — сгенерировать исключение.false— вместо этого возвращатьNULLдля таких строк.