add_http_cors_header
additional_result_filter
SELECT.
Этот параметр не применяется ни к одному подзапросу.
Пример
additional_table_filters
aggregate_function_input_format
state— Двоичная строка с сериализованным состоянием (по умолчанию). Это стандартное поведение, при котором значения AggregateFunction ожидаются в виде двоичных данных.value— Формат ожидает одно значение аргумента агрегатной функции или, в случае нескольких аргументов, их кортеж. Они будут десериализованы с использованием соответствующего IDataType или DataTypeTuple, а затем агрегированы для формирования состояния.array— Формат ожидаетArrayзначений, как описано выше для вариантаvalue. Все элементы массива будут агрегированы для формирования состояния.
aggregate_function_input_format = 'value':
aggregate_function_input_format = 'array':
value и array работают медленнее, чем формат state по умолчанию, так как при вставке для них требуется создавать и агрегировать значения.
aggregate_functions_null_for_empty
- 0 — Отключено.
- 1 — Включено.
aggregate_functions_null_for_empty = 0 результат будет таким:
aggregate_functions_null_for_empty = 1 результат будет таким:
aggregation_in_order_max_block_bytes
aggregation_memory_efficient_merge_threads
ai_function_credentials
provider, endpoint, model, необязательный api_key и т. д.). Если не указано, возникает исключение.
ai_function_embedding_max_batch_size
aiEmbed. Тексты группируются в батчи такого размера, чтобы сократить накладные расходы на вызовы API. Например, 500 уникальных текстов при размере батча 100 приводят к 5 HTTP-запросам.
ai_function_max_api_calls_per_query
ai_function_max_input_tokens_per_query
usage в своём ответе (OpenAI, Anthropic, vLLM). Если провайдер не сообщает об использовании токенов (в частности, HuggingFace TEI), счётчик остаётся равным 0 — в этом случае используйте ai_function_max_api_calls_per_query, чтобы ограничить такие вызовы.
ai_function_max_output_tokens_per_query
usage в своём ответе (OpenAI, Anthropic, vLLM). Оно не распространяется на функции embedding (в частности, aiEmbed), которые никогда не возвращают выходные токены.
ai_function_max_retries
ai_function_retry_initial_delay_ms.
ai_function_request_timeout_sec
ai_function_max_retries.
ai_function_retry_initial_delay_ms
ai_function_throw_on_error
ai_function_throw_on_quota_exceeded
ai_function_max_input_tokens_per_query, ai_function_max_output_tokens_per_query или ai_function_max_api_calls_per_query) запрос прерывается с исключением. Если false, для оставшихся строк используется значение по умолчанию для типа столбца (пустая строка для String).
allow_aggregate_partitions_independently
allow_archive_path_syntax
<archive> :: <file>, если у архива корректное расширение.
allow_asynchronous_read_from_io_pool_for_merge_tree
allow_calculating_subcolumns_sizes_for_merge_tree_reading
allow_changing_replica_until_first_data_packet
receive_data_timeout); в противном случае смена реплики запрещается после первого появления прогресса.
allow_create_index_without_type
allow_custom_error_code_in_throwif
allow_ddl
allow_deprecated_database_ordinary
allow_deprecated_error_prone_window_functions
allow_deprecated_snowflake_conversion_functions
snowflakeToDateTime, snowflakeToDateTime64, dateTimeToSnowflake и dateTime64ToSnowflake устарели и по умолчанию отключены.
Вместо них используйте функции snowflakeIDToDateTime, snowflakeIDToDateTime64, dateTimeToSnowflakeID и dateTime64ToSnowflakeID.
Чтобы снова включить устаревшие функции (например, в переходный период), установите для этой настройки значение true.
allow_deprecated_syntax_for_merge_tree
allow_distributed_ddl
allow_drop_detached
allow_dynamic_type_in_join_keys
allow_execute_multiif_columnar
allow_experimental_ai_functions
aiGenerateContent). Эти функции выполняют внешние HTTP-запросы к поставщикам ИИ.
allow_experimental_analyzer
enable_analyzer
Разрешает использование нового анализатора запросов.
allow_experimental_cleanup_old_data_files_compaction
allow_experimental_codecs
allow_experimental_database_glue_catalog
allow_database_glue_catalog
Разрешает использование экспериментального движка базы данных DataLakeCatalog с catalog_type = ‘glue’
Значение по умолчанию в Cloud: 1.
allow_experimental_database_hms_catalog
allow_experimental_database_iceberg
allow_database_iceberg
Разрешает использование экспериментального движка базы данных DataLakeCatalog с catalog_type = 'iceberg'
Значение по умолчанию в Cloud: 1.
allow_experimental_database_materialized_postgresql
allow_experimental_database_paimon_rest_catalog
allow_experimental_database_unity_catalog
allow_database_unity_catalog
Разрешить использование экспериментального движка базы данных DataLakeCatalog с catalog_type = ‘unity’
Значение по умолчанию в Cloud: 1.
allow_experimental_delta_kernel_rs
allow_experimental_delta_lake_writes
allow_experimental_expire_snapshots
ALTER TABLE ... EXECUTE expire_snapshots.
allow_experimental_funnel_functions
allow_experimental_geo_types_in_iceberg
geometry и geography в Iceberg как тип ClickHouse Geometry (Variant).
allow_experimental_hash_functions
allow_experimental_iceberg_compaction
allow_experimental_join_right_table_sorting
join_to_sort_minimum_perkey_rows и join_to_sort_maximum_table_rows, правая таблица переупорядочивается по ключу для повышения производительности при левом или внутреннем hash JOIN.
allow_experimental_json_lazy_type_hints
allow_experimental_kafka_offsets_storage_in_keeper
allow_experimental_kusto_dialect
allow_experimental_materialized_postgresql_table
allow_experimental_nlp_functions
allow_experimental_nullable_tuple_type
enable_nullable_tuple_type
Разрешает создание в таблицах столбцов типа Nullable Tuple.
Эта настройка не определяет, могут ли извлечённые подстолбцы Tuple быть Nullable (например, из столбцов Dynamic, Variant, JSON или Tuple).
Используйте allow_nullable_tuple_in_extracted_subcolumns, чтобы управлять тем, могут ли извлечённые подстолбцы Tuple быть Nullable.
allow_experimental_object_storage_queue_hive_partitioning
allow_experimental_paimon_storage_engine
allow_experimental_parallel_reading_from_replicas
enable_parallel_replicas
Для выполнения SELECT-запросов использует до max_parallel_replicas реплик из каждого сегмента. Чтение распараллеливается и координируется динамически. 0 — отключено, 1 — включено, при сбое отключается без уведомления, 2 — включено, при сбое генерируется исключение
allow_experimental_polyglot_dialect
allow_experimental_prql_dialect
allow_experimental_text_index_lazy_apply
allow_experimental_time_series_aggregate_functions
allow_experimental_ts_to_grid_aggregate_function
Экспериментальные агрегатные функции timeSeries* для передискретизации временных рядов, а также вычисления rate и delta в стиле Prometheus.
allow_experimental_time_series_table
- 0 — движок таблицы TimeSeries отключен.
- 1 — движок таблицы TimeSeries включен.
allow_experimental_unique_key
UNIQUE KEY на движках семейства MergeTree.
allow_experimental_window_view
allow_experimental_ytsaurus_dictionary_source
allow_experimental_ytsaurus_table_engine
allow_experimental_ytsaurus_table_function
allow_fuzz_query_functions
fuzzQuery, которая применяет случайные мутации AST к строке запроса.
allow_general_join_planning
allow_get_client_http_header
getClientHTTPHeader, которая позволяет получать значение заголовка текущего HTTP-запроса. По соображениям безопасности этот параметр по умолчанию отключен, поскольку некоторые заголовки, например Cookie, могут содержать конфиденциальную информацию. Обратите внимание, что заголовки X-ClickHouse-* и Authentication всегда недоступны, и получить их с помощью этой функции нельзя.
allow_hyperscan
allow_iceberg_remove_orphan_files
allow_insert_into_iceberg
allow_experimental_insert_into_iceberg
Разрешает выполнять запросы insert в Iceberg.
allow_introspection_functions
- 1 — Функции интроспекции включены.
- 0 — Функции интроспекции отключены.
- Выборочный профилировщик запросов
- Системная таблица trace_log
allow_key_condition_coalesce_rewrite
WHERE/PREWHERE, в которых используются coalesce или ifNull. Без этой настройки такие предикаты непрозрачны для анализа индексов и не участвуют в отсечении, поэтому гранулы, которые заведомо не могут подойти, всё равно читаются. Это влияет только на то, какие гранулы читаются; результаты запроса не меняются, поскольку строки по-прежнему фильтруются исходным предикатом.
Перед анализом индексов преобразуются две формы предикатов:
- Сравнение с
coalesce/ifNull, такое какcoalesce(a, b) = 5, преобразуется в дизъюнкцию, чтобы индекс по каждому аргументу мог выполнять отсечение:a = 5 OR (a IS NULL AND b = 5), с расширением для большего числа аргументов. coalesce/ifNullс ложной (нулевой) константой по умолчанию, используемый непосредственно как условие, напримерifNull(a = 5, 0)илиcoalesce(a = 5, 0), разворачивается во внутренний предикатa = 5. Такие обёртки сводят трёхзначный результат внутреннего предиката к однозначному булевому значению (отображаяNULLвfalse).
allow_limit_by_partitions_independently
LIMIT BY по каждой партиции в отдельных потоках, когда выражение партиционирования является детерминированной функцией столбцов LIMIT BY.
allow_materialized_view_with_bad_select
allow_named_collection_override_by_default
allow_non_metadata_alters
allow_nonconst_timezone_arguments
allow_nondeterministic_mutations
dictGet.
Поскольку, например, словари могут быть не синхронизированы между узлами, мутации, которые получают из них значения, по умолчанию запрещены для реплицируемых таблиц. Включение этой настройки разрешает такое поведение, и пользователь должен сам обеспечить синхронизацию используемых данных на всех узлах.
Пример
allow_nondeterministic_optimize_skip_unused_shards
rand или dictGet, поскольку у последней есть некоторые особенности, связанные с обновлениями) в ключе сегментирования.
Возможные значения:
- 0 — Запрещено.
- 1 — Разрешено.
allow_nullable_tuple_in_extracted_subcolumns
Tuple(...) иметь тип Nullable(Tuple(...)).
false: ВозвращаетTuple(...)и использует значения кортежа по умолчанию для строк, в которых подстолбец отсутствует.true: ВозвращаетNullable(Tuple(...))и используетNULLдля строк, в которых подстолбец отсутствует.
Nullable(Tuple(...)); это регулируется параметром enable_nullable_tuple_type.
ClickHouse использует значение этой настройки, загруженное при запуске сервера.
Изменения, внесённые с помощью SET или SETTINGS на уровне запроса, не меняют поведение извлечённых подстолбцов.
Чтобы изменить поведение извлечённых подстолбцов, обновите allow_nullable_tuple_in_extracted_subcolumns в конфигурации профиля запуска (например, в users.xml) и перезапустите сервер.
allow_prefetched_read_pool_for_local_filesystem
allow_prefetched_read_pool_for_remote_filesystem
allow_push_predicate_ast_for_distributed_subqueries
allow_push_predicate_when_subquery_contains_with
allow_rank_dense_rank_arguments
RANK и DENSE_RANK для обратной совместимости.
Согласно стандарту SQL, RANK и DENSE_RANK не принимают аргументов — они ранжируют строки только по
окну OVER (ORDER BY ...). В версиях ClickHouse до 26.5 запросы вида
RANK(x) OVER (...) молча принимались, а аргумент игнорировался, что вызывало путаницу у пользователей
(видимый аргумент создавал впечатление, что он влияет на ранжирование, хотя это не так).
Когда этот параметр имеет значение false (по умолчанию), RANK и DENSE_RANK отклоняют любые аргументы и
выдают ошибку NUMBER_OF_ARGUMENTS_DOESNT_MATCH. Если установить значение true, восстанавливается
прежнее более мягкое поведение — аргументы молча игнорируются, как и до версии 26.5.
allow_reorder_prewhere_conditions
allow_settings_after_format_in_insert
SETTINGS после FORMAT в запросах INSERT. Использовать это не рекомендуется, поскольку часть SETTINGS может интерпретироваться как значения.
Пример:
allow_settings_after_format_in_insert:
- 0 — Запретить.
- 1 — Разрешить.
Используйте эту настройку только для обеспечения обратной совместимости, если ваши сценарии использования зависят от старого синтаксиса.
allow_simdjson
allow_special_serialization_kinds_in_output_formats
allow_statistics
allow_experimental_statistics
Позволяет задавать для столбцов статистику и управлять статистикой.
allow_statistics_optimize
allow_statistic_optimize
Разрешает использовать статистику для оптимизации запросов
allow_suspicious_codecs
allow_suspicious_fixed_string_types
allow_suspicious_indices
allow_suspicious_low_cardinality_types
FixedString(8_bytes_or_less).
Для небольших значений фиксированного размера использование LowCardinality обычно неэффективно, поскольку ClickHouse хранит числовой индекс для каждой строки. В результате:
- Может увеличиться использование дискового пространства.
- Потребление оперативной памяти может возрасти в зависимости от размера словаря.
- Некоторые функции могут работать медленнее из-за дополнительных операций кодирования и декодирования.
- 1 — Использование
LowCardinalityне ограничено. - 0 — Использование
LowCardinalityограничено.
allow_suspicious_primary_key
PRIMARY KEY/ORDER BY для MergeTree (например, SimpleAggregateFunction).
allow_suspicious_ttl_expressions
allow_suspicious_types_in_group_by
allow_suspicious_types_in_order_by
allow_suspicious_variant_types
allow_unrestricted_reads_from_keeper
alter_move_to_space_execute_async
alter_partition_verbose_result
- 0 — отключить подробный вывод.
- 1 — включить подробный вывод.
alter_sync
replication_alter_partitions_sync
Позволяет указать, как ожидать выполнение действий на репликах для запросов ALTER, OPTIMIZE или TRUNCATE.
Возможные значения:
0— Не ждать.1— Ждать выполнения на текущей реплике.2— Ждать выполнения на всех репликах.3- Ждать только активные реплики.
0.
alter_sync применим только к таблицам Replicated и SharedMergeTree; для таблиц без Replicated или Shared при выполнении ALTER он ничего не делает.alter_update_mode
ALTER с командой UPDATE.
Возможные значения:
heavy— выполнять обычную мутацию.lightweight— выполнять легковесное обновление, если это возможно; в противном случае выполнять обычную мутацию.lightweight_force— выполнять легковесное обновление, если это возможно; в противном случае сгенерировать исключение.
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_compatibility_allow_compound_identifiers_in_unflatten_nested
SELECT a.b.c FROM table ARRAY JOIN a не работает, а SELECT a FROM table не включает столбец a.b.c в результат Nested a.
analyzer_compatibility_join_using_top_level_identifier
SELECT a + 1 AS b FROM t1 JOIN t2 USING (b) JOIN будет выполняться по условию t1.a + 1 = t2.b, а не t1.b = t2.b).
analyzer_compatibility_prefer_alias_over_subcolumn
b.id, может обозначать либо столбец id таблицы с псевдонимом b, либо подстолбец b.id типа Tuple у какого-либо другого столбца, предпочтение отдаётся интерпретации с префиксом-псевдонимом (столбец id таблицы b). По умолчанию новый анализатор предпочитает подстолбец. Включите эту настройку, чтобы разрешение имён соответствовало поведению старого анализатора.
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 — Устаревшее поведение включено.
apply_deleted_mask
apply_mutations_on_fly
apply_patch_parts
apply_patch_parts_join_cache_buckets
apply_prewhere_after_final
apply_row_policy_after_final
- 0 — ROW POLICY и PREWHERE применяются до FINAL (по умолчанию).
- 1 — ROW POLICY и PREWHERE применяются после FINAL.
apply_settings_from_server
ALTER USER), а не через клиент (аргументами командной строки клиента, запросом SET или в секции SETTINGS запроса SELECT). Через клиент её можно изменить на false, но нельзя изменить на true (потому что сервер не отправит настройки, если в профиле пользователя установлено apply_settings_from_server = false).
Обратите внимание, что изначально (24.12) существовала настройка сервера (send_settings_to_client), но позже её заменили этой клиентской настройкой для большего удобства.
archive_adaptive_buffer_max_size_bytes
arrow_flight_request_descriptor_type
- ‘path’ — Использовать FlightDescriptor::Path (по умолчанию; работает с большинством серверов Arrow Flight)
- ‘command’ — Использовать FlightDescriptor::Command с запросом SELECT (требуется для Dremio)
ast_fuzzer_any_query
ast_fuzzer_runs) выполняет фаззинг только запросов в режиме только для чтения (SELECT, EXPLAIN, SHOW, DESCRIBE, EXISTS). Если true, фаззингу подвергаются все типы запросов, включая DDL и INSERT.
ast_fuzzer_runs
- 0: отключено (по умолчанию).
- Значение между 0 и 1 (не включая границы): вероятность запуска одного фаззинг-запроса.
- Значение >= 1: число фаззинг-запросов, запускаемых на каждый обычный запрос.
asterisk_include_alias_columns
SELECT *).
Возможные значения:
- 0 - отключено
- 1 - включено
asterisk_include_materialized_columns
SELECT *).
Возможные значения:
- 0 - отключено
- 1 - включено
asterisk_include_virtual_columns
SELECT *).
Возможные значения:
- 0 - отключено
- 1 - включено
async_insert
async_insert_busy_timeout_decrease_rate
async_insert_busy_timeout_increase_rate
async_insert_busy_timeout_max_ms
async_insert_busy_timeout_ms
Максимальное время ожидания перед сбросом собранных данных по каждому запросу с момента поступления первых данных.
Значение по умолчанию в Cloud: 1000 (1s).
async_insert_busy_timeout_min_ms
async_insert_deduplicate
async_insert_max_data_size
104857600 (100 MiB).
async_insert_max_query_number
async_insert_deduplicate равно 1.
async_insert_poll_timeout_ms
async_insert_use_adaptive_busy_timeout
async_query_sending_for_remote
async_socket_for_remote
automatic_parallel_replicas_min_bytes_per_replica
automatic_parallel_replicas_mode=1). 0 означает отсутствие порога.
Общее количество байт для чтения оценивается на основе собранной статистики.
automatic_parallel_replicas_mode
enable_analyzer = 1, enable_parallel_replicas != 0, parallel_replicas_local_plan = 1 и указания cluster_for_parallel_replicas.
0 — отключено, 1 — включено, 2 — включен только сбор статистики (переключение на выполнение с параллельными репликами отключено).
azure_allow_parallel_part_upload
azure_check_objects_after_upload
azure_connect_timeout_ms
azure_create_new_file_on_insert
azure_ignore_file_doesnt_exist
- 1 —
SELECTвозвращает пустой результат. - 0 —
SELECTгенерирует исключение.
azure_list_object_keys_size
azure_max_blocks_in_multipart_upload
azure_max_get_burst
azure_max_get_rps
azure_max_get_rps
azure_max_inflight_parts_for_one_file
azure_max_put_burst
azure_max_put_rps
azure_max_put_rps
azure_max_redirects
azure_max_single_part_copy_size
azure_max_single_part_upload_size
azure_max_single_read_retries
azure_max_unexpected_write_error_retries
azure_max_upload_part_size
azure_min_upload_part_size
azure_request_timeout_ms
azure_sdk_max_retries
azure_sdk_retry_initial_backoff_ms
azure_sdk_retry_max_backoff_ms
azure_skip_empty_files
- 0 —
SELECTгенерирует исключение, если пустой файл несовместим с запрошенным форматом. - 1 —
SELECTвозвращает пустой результат для пустого файла.
azure_strict_upload_part_size
azure_throw_on_zero_files_match
- 1 —
SELECTгенерирует исключение. - 0 —
SELECTвозвращает пустой результат.
azure_truncate_on_insert
azure_upload_part_size_multiply_factor
azure_upload_part_size_multiply_parts_count_threshold
azure_use_adaptive_timeouts
true, то для всех запросов к Azure первые две попытки выполняются с меньшими тайм-аутами отправки и получения.
Если установлено значение false, то все попытки выполняются с одинаковыми тайм-аутами.
backup_restore_batch_size_for_keeper_multi
backup_restore_batch_size_for_keeper_multiread
backup_restore_failure_after_host_disconnected_for_seconds
backup_restore_finish_timeout_after_error_sec
backup_restore_keeper_fault_injection_probability
backup_restore_keeper_fault_injection_seed
backup_restore_keeper_max_retries
backup_restore_keeper_max_retries_while_handling_error
backup_restore_keeper_max_retries_while_initializing
backup_restore_keeper_retry_initial_backoff_ms
backup_restore_keeper_retry_max_backoff_ms
60000.
backup_restore_keeper_value_max_size
backup_restore_s3_retry_attempts
backup_restore_s3_retry_initial_backoff_ms
backup_restore_s3_retry_max_backoff_ms
backup_restore_s3_retry_jitter_factor
backup_restore_s3_retry_max_backoff_ms. Должен находиться в интервале [0.0, 1.0]
backup_restore_s3_retry_max_backoff_ms
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
SELECT), если клиент закрывает соединение, не дождавшись ответа.
Значение по умолчанию в Cloud: 1.
cast_ipv4_ipv6_default_on_conversion_error
cast_keep_nullable
Nullable в операциях CAST.
Если настройка включена и аргумент функции CAST имеет тип Nullable, результат также преобразуется в тип Nullable. Если настройка отключена, результат всегда имеет в точности указанный тип пункта назначения.
Возможные значения:
- 0 — Результат
CASTимеет в точности указанный тип пункта назначения. - 1 — Если аргумент имеет тип
Nullable, результатCASTпреобразуется вNullable(DestinationDataType).
Nullable к целевому типу данных:
- CAST функция
cast_string_to_date_time_mode
-
'best_effort'— Включает расширенный разбор. ClickHouse может разбирать базовый форматYYYY-MM-DD HH:MM:SSи все форматы даты и времени ISO 8601. Например,'2018-06-08T01:02:03.000Z'. -
'best_effort_us'— Аналогичноbest_effort(различия см. в parseDateTimeBestEffortUS -
'basic'— Использует базовый парсер. ClickHouse может разбирать только базовый форматYYYY-MM-DD HH:MM:SSилиYYYY-MM-DD. Например,2019-08-20 10:18:56или2019-08-20.
cast_string_to_dynamic_use_inference
cast_string_to_variant_use_inference
check_named_collection_dependencies
check_query_single_value_result
MergeTree .
Возможные значения:
- 0 — запрос показывает статус проверки для каждой отдельной части данных таблицы.
- 1 — запрос показывает общий статус проверки таблицы.
check_referential_table_dependencies
check_table_dependencies
checksum_on_read
cloud_mode
1.
cloud_mode_database_engine
2.
cloud_mode_engine
- 0 - разрешить всё
- 1 - переписывать DDL-запросы с использованием *ReplicatedMergeTree
- 2 - переписывать DDL-запросы с использованием SharedMergeTree
- 3 - переписывать DDL-запросы с использованием SharedMergeTree, кроме случаев, когда явно указан удалённый диск
- 4 - то же, что и 3, но дополнительно использовать Alias вместо Distributed (таблица Alias будет указывать на целевую таблицу таблицы Distributed, поэтому будет использоваться соответствующая локальная таблица)
2.
cluster_for_parallel_replicas
default.
cluster_function_process_archive_on_multiple_nodes
true, повышает производительность обработки архивов в функциях cluster. Для совместимости и во избежание ошибок при обновлении до 25.7+ следует установить значение false, если вы используете функции cluster с архивами в версиях ниже 25.7.
cluster_table_function_buckets_batch_size
bucket. Система накапливает данные, пока не достигнет как минимум этого объёма. Фактический размер может быть немного больше для выравнивания по границам данных.
cluster_table_function_split_granularity
file— каждая задача обрабатывает файл целиком.bucket— задачи создаются для каждого внутреннего блока данных в файле (например, для групп строк в Parquet).
bucket) может повысить параллелизм при работе с небольшим количеством крупных файлов.
Например, если файл Parquet содержит несколько групп строк, включение гранулярности bucket позволяет обрабатывать каждую группу независимо разными воркерами.
collect_hash_table_stats_during_aggregation
collect_hash_table_stats_during_joins
compatibility
compatibility заставляет ClickHouse использовать настройки по умолчанию из предыдущей версии ClickHouse, номер которой задается в этом параметре.
Если для каких-либо настроек заданы значения, отличные от значений по умолчанию, они сохраняются (параметр compatibility влияет только на те настройки, которые не были изменены).
Этот параметр принимает номер версии ClickHouse в виде строки, например 22.3 или 22.8. Пустое значение означает, что параметр отключен.
По умолчанию отключен.
В ClickHouse Cloud значение параметра compatibility по умолчанию на уровне сервиса должна задавать служба поддержки ClickHouse Cloud. Чтобы его установили, создайте обращение.
Однако параметр compatibility можно переопределить на уровне пользователя, роли, profile, запроса или сеанса с помощью стандартных механизмов настройки ClickHouse, например
SET compatibility = '22.3' в сеансе или SETTINGS compatibility = '22.3' в запросе.compatibility_ignore_auto_increment_in_create_table
compatibility_ignore_collation_in_create_table
compatibility_s3_presigned_url_query_in_path
compile_aggregate_expressions
- 0 — агрегация выполняется без JIT-компиляции.
- 1 — агрегация выполняется с использованием JIT-компиляции.
compile_expressions
compile_sort_description
connect_timeout
connect_timeout_with_failover_ms
connect_timeout_with_failover_secure_ms
connection_pool_max_wait_ms
- Положительное целое число.
- 0 — бесконечный тайм-аут.
connections_with_failover_max_tries
convert_query_to_cnf
true, запрос SELECT будет преобразован в конъюнктивную нормальную форму (CNF). В некоторых случаях преобразование запроса в CNF может выполняться быстрее (объяснение см. в этом Github issue).
Например, обратите внимание, что следующий запрос SELECT не изменяется (это поведение по умолчанию):
convert_query_to_cnf значение true и посмотрим, что изменится:
WHERE переписано в КНФ, но результирующий набор остался тем же — булева логика не изменилась:
right, то есть декоррелированный план будет содержать RIGHT JOIN, где подзапрос находится в правой части.
Возможные значения:
left- В процессе декорреляции будут создаваться LEFT JOIN, и входная таблица будет находиться в левой части.right- В процессе декорреляции будут создаваться RIGHT JOIN, и входная таблица будет находиться в правой части.
count_distinct_implementation
uniq* используется для выполнения конструкции COUNT(DISTINCT …).
Возможные значения:
count_distinct_optimization
count_matches_stop_at_empty_match
countMatches даёт совпадение нулевой длины.
create_if_not_exists
IF NOT EXISTS в операторе CREATE. Если указан либо этот параметр, либо IF NOT EXISTS, и таблица с указанным именем уже существует, исключение не будет выброшено.
create_index_ignore_unique
create_replicated_merge_tree_fault_injection_probability
create_table_empty_primary_key_by_default
cross_join_min_bytes_to_compress
cross_join_min_rows_to_compress
cross_to_inner_join_rewrite
data_type_default_nullable
- 1 — Типы данных в определениях столбцов по умолчанию имеют тип
Nullable. - 0 — Типы данных в определениях столбцов по умолчанию не имеют типа
Nullable.
database_atomic_wait_for_drop_and_detach_synchronously
SYNC ко всем запросам DROP и DETACH.
Возможные значения:
- 0 — запросы будут выполняться с задержкой.
- 1 — запросы будут выполняться без задержки.
database_datalake_require_metadata_access
database_replicated_allow_explicit_uuid
database_replicated_allow_heavy_create
database_replicated_allow_only_replicated_engine
1.
database_replicated_allow_replicated_engine_arguments
database_replicated_always_detach_permanently
database_replicated_enforce_synchronous_settings
database_replicated_initial_query_timeout_sec
- Положительное целое число.
- 0 — без ограничений.
UNDROP TABLE.
decimal_check_overflow
deduplicate_blocks_in_dependent_materialized_views
deduplicate_insert
INSERT INTO (для таблиц Replicated*).
Эта настройка переопределяет параметры insert_deduplicate и async_insert_deduplicate.
У этой настройки есть три возможных значения:
- disable — Дедупликация для запроса
INSERT INTOотключена. - enable — Дедупликация для запроса
INSERT INTOвключена. - backward_compatible_choice — Дедупликация включается, если
insert_deduplicateилиasync_insert_deduplicateвключены для соответствующего типа вставки.
deduplicate_insert_select
INSERT SELECT (для таблиц Replicated*).
Этот параметр переопределяет insert_deduplicate и deduplicate_insert для запросов INSERT SELECT.
У этого параметра есть четыре возможных значения:
- disable — Дедупликация отключена для запроса
INSERT SELECT. - force_enable — Дедупликация включена для запроса
INSERT SELECT. Если результатSELECTнестабилен, генерируется исключение. - enable_when_possible — Дедупликация включается, если
insert_deduplicateвключен и результатSELECTстабилен, в противном случае отключается. - enable_even_for_bad_queries - Дедупликация включается, если
insert_deduplicateвключен. Если результатSELECTнестабилен, в журнал записывается предупреждение, но запрос выполняется с дедупликацией. Этот вариант предназначен для обратной совместимости. Рекомендуется использовать другие варианты, так как он может приводить к неожиданным результатам.
default_materialized_view_sql_security
DEFINER.
default_max_bytes_in_join
max_bytes_in_join не задан.
default_normal_view_sql_security
SQL SECURITY по умолчанию при создании обычного представления. Подробнее о безопасности SQL.
Значение по умолчанию — INVOKER.
default_table_engine
ENGINE не задан в операторе CREATE.
Возможные значения:
- строка, представляющая любое допустимое имя движка таблицы
SharedMergeTree.
Пример
Запрос:
Engine, будет использоваться движок таблицы Log:
Запрос:
default_temporary_table_engine
Engine, будет использовать движок таблицы Log:
Запрос:
default_view_definer
DEFINER, используемый по умолчанию при создании представления. Подробнее о безопасности SQL.
Значение по умолчанию — CURRENT_USER.
defer_partition_pruning_after_final
FINAL к таблицам, у которых
столбцы ключа партиции не входят в ключ сортировки. Это безопасное с точки зрения корректности поведение,
введённое в 26.3: FINAL может потребоваться выполнить дедупликацию строк с одинаковым
первичным ключом, но находящихся в разных партициях, а отсечение партиций в таком случае незаметно исключило бы эти строки из
входных данных для дедупликации.
Когда настройка отключена, отсечение партиций применяется даже с FINAL, восстанавливая поведение
до 26.3. Это может быть значительно быстрее для запросов с условиями WHERE по
столбцу партиции, но корректно только в тех случаях, когда строки с одним и тем же первичным ключом не могут находиться
в разных партициях — например, в таблицах логов событий, где столбец партиции задаётся во время вставки
и больше никогда не изменяется.
Эта настройка влияет только на партиционированные таблицы, у которых столбцы ключа партиции не входят
в ключ сортировки; для остальных таблиц отсечение партиций применяется всегда.
Возможные значения:
- 0 — Применять отсечение партиций до
FINAL(поведение до 26.3, быстрее, но в общем случае небезопасно). - 1 — Откладывать отсечение партиций до завершения
FINAL(по умолчанию, безопасно с точки зрения корректности).
delta_lake_enable_engine_predicate
delta_lake_enable_expression_visitor_logging
delta_lake_insert_max_bytes_in_data_file
delta_lake_insert_max_rows_in_data_file
delta_lake_log_metadata
delta_lake_reload_schema_for_consistency
delta_lake_snapshot_end_version
delta_lake_snapshot_start_version
delta_lake_snapshot_version
delta_lake_throw_on_engine_predicate_error
describe_compact_output
describe_include_subcolumns
- 0 — Подстолбцы не включаются в запросы
DESCRIBE. - 1 — Подстолбцы включаются в запросы
DESCRIBE.
describe_include_virtual_columns
диалект
dictionary_use_async_executor
dictionary_validate_primary_key_type
id для простых структур неявно преобразуется в UInt64.
distinct_overflow_mode
throw: сгенерировать исключение (по умолчанию).break: остановить выполнение запроса и вернуть частичный результат, как если бы источник данных исчерпался.
distributed_aggregation_memory_efficient
distributed_background_insert_batch
distributed_directory_monitor_batch_inserts
Включает или отключает отправку вставленных данных батчами.
Когда отправка батчами включена, движок таблицы Distributed пытается отправлять несколько файлов со вставленными данными за одну операцию, а не по отдельности. Отправка батчами повышает производительность кластера за счет более эффективного использования ресурсов сервера и сети.
Возможные значения:
- 1 — Включено.
- 0 — Отключено.
distributed_background_insert_max_sleep_time_ms
distributed_directory_monitor_max_sleep_time_ms
Максимальный интервал отправки данных для движка таблицы Distributed. Ограничивает экспоненциальный рост интервала, заданного настройкой distributed_background_insert_sleep_time_ms.
Возможные значения:
- Положительное целое число миллисекунд.
distributed_background_insert_sleep_time_ms
distributed_directory_monitor_sleep_time_ms
Базовый интервал, через который движок таблицы Distributed отправляет данные. При возникновении ошибок фактический интервал увеличивается экспоненциально.
Возможные значения:
- Положительное целое число миллисекунд.
distributed_background_insert_split_batch_on_failure
distributed_directory_monitor_split_batch_on_failure
Включает или отключает разбиение батчей при сбоях.
Иногда отправка определенного батча на удаленный сегмент может завершиться ошибкой из-за сложного конвейера на последующих этапах (например, MATERIALIZED VIEW с GROUP BY) — из-за Memory limit exceeded или схожих ошибок. В таком случае повторные попытки не помогут (и это приведет к зависанию распределенных отправок для таблицы), тогда как отправка файлов из этого батча по одному может позволить успешно выполнить INSERT.
Поэтому при установке этого параметра в 1 батчинг для таких батчей будет отключаться (то есть для неудачных батчей временно отключается distributed_background_insert_batch).
Возможные значения:
- 1 — Включено.
- 0 — Отключено.
Этот параметр также влияет на поврежденные батчи (которые могут появиться из-за аварийного завершения работы сервера (машины) и отсутствия
fsync_after_insert/fsync_directories для движка таблицы Distributed).Не следует полагаться на автоматическое разбиение батчей, так как это может негативно сказаться на производительности.
distributed_background_insert_timeout
insert_distributed_timeout
Тайм-аут для запроса вставки в Distributed. Эта настройка используется только при включенном insert_distributed_sync. Нулевое значение означает отсутствие тайм-аута.
distributed_cache_alignment
distributed_cache_bypass_connection_pool
distributed_cache_connect_backoff_max_ms
distributed_cache_connect_backoff_min_ms
distributed_cache_connect_max_tries
distributed_cache_connect_timeout_ms
distributed_cache_credentials_refresh_period_seconds
distributed_cache_data_packet_ack_window
distributed_cache_discard_connection_if_unread_data
distributed_cache_fetch_metrics_only_from_current_az
distributed_cache_file_cache_name
distributed_cache_log_mode
distributed_cache_max_unacked_inflight_packets
distributed_cache_min_bytes_for_seek
distributed_cache_pool_behaviour_on_limit
distributed_cache_prefer_bigger_buffer_size
distributed_cache_read_only_from_current_az
distributed_cache_read_request_max_tries
distributed_cache_receive_response_wait_milliseconds
distributed_cache_receive_timeout_milliseconds
20000.
distributed_cache_receive_timeout_ms
distributed_cache_send_timeout_ms
distributed_cache_tcp_keep_alive_timeout_ms
distributed_cache_throw_on_error
distributed_cache_use_clients_cache_for_read
distributed_cache_use_clients_cache_for_write
distributed_cache_wait_connection_from_pool_milliseconds
distributed_cache_write_request_max_tries
distributed_connections_pool_size
distributed_ddl_entry_format_version
6.
distributed_ddl_output_mode
throw— Возвращает результирующий набор со статусом выполнения запроса для всех хостов, где запрос завершён. Если на некоторых хостах запрос завершился с ошибкой, будет повторно выброшено первое исключение. Если на некоторых хостах запрос ещё не завершён и превышен distributed_ddl_task_timeout, выбрасывается исключениеTIMEOUT_EXCEEDED.none— Аналогичноthrow, но распределённый DDL-запрос не возвращает результирующий набор.null_status_on_timeout— ВозвращаетNULLв качестве статуса выполнения в некоторых строках результирующего набора вместоTIMEOUT_EXCEEDED, если запрос не завершён на соответствующих хостах.never_throw— Не выбрасываетTIMEOUT_EXCEEDEDи не выбрасывает повторно исключения, если на некоторых хостах запрос завершился с ошибкой.none_only_active- аналогичноnone, но не ждёт неактивные реплики базы данныхReplicated. Примечание: в этом режиме невозможно определить, что запрос не был выполнен на какой-либо реплике и будет выполнен в фоновом режиме.null_status_on_timeout_only_active— аналогичноnull_status_on_timeout, но не ждёт неактивные реплики базы данныхReplicatedthrow_only_active— аналогичноthrow, но не ждёт неактивные реплики базы данныхReplicated
none_only_active.
distributed_ddl_task_timeout
- Положительное целое число.
- 0 — асинхронный режим.
- Отрицательное целое число — бесконечный тайм-аут.
distributed_foreground_insert
insert_distributed_sync
Включает или отключает синхронную вставку данных в таблицу Distributed.
По умолчанию при вставке данных в таблицу Distributed сервер ClickHouse отправляет данные на узлы кластера в фоновом режиме. Если distributed_foreground_insert=1, данные обрабатываются синхронно, и операция INSERT завершается успешно только после того, как все данные будут сохранены на всех сегментах (как минимум на одной реплике для каждого сегмента, если internal_replication имеет значение true).
Возможные значения:
0— Данные вставляются в фоновом режиме.1— Данные вставляются в синхронном режиме.
1.
См. также
distributed_group_by_no_merge
0— Отключено (окончательная обработка запроса выполняется на узле-инициаторе).1- Не объединять состояния агрегации с разных серверов при распределённой обработке запросов (запрос полностью обрабатывается на сегменте, узел-инициатор только проксирует данные); можно использовать, если точно известно, что на разных сегментах находятся разные ключи.2- То же, что и1, ноORDER BYиLIMITприменяются на инициаторе (это невозможно, если запрос полностью обрабатывается на удалённом узле, как приdistributed_group_by_no_merge=1) (можно использовать для запросов сORDER BYи/илиLIMIT).
distributed_index_analysis
- distributed_index_analysis_for_non_shared_merge_tree
- distributed_index_analysis_min_parts_to_activate
- distributed_index_analysis_min_indexes_bytes_to_activate
distributed_index_analysis_only_on_coordinator
IN (SELECT ...)),
поскольку в противном случае каждая реплика-follower независимо запускала бы собственный распределенный анализ индексов,
но делает распределенный анализ индексов менее эффективным, если в подзапросах используются большие таблицы.
distributed_insert_skip_read_only_replicas
- 0 — INSERT выполняется как обычно; если запрос попадет на реплику только для чтения, произойдет ошибка
- 1 — Инициатор будет пропускать реплики только для чтения перед отправкой данных в сегменты.
distributed_plan_default_reader_bucket_count
distributed_plan_default_shuffle_join_bucket_count
distributed_plan_execute_locally
distributed_plan_force_exchange_kind
- ” - не задавать принудительно какой-либо тип операторов Exchange, а предоставить выбор оптимизатору,
- ‘Persisted’ - использовать временные файлы в объектном хранилище,
- ‘Streaming’ - передавать данные Exchange по сети в потоковом режиме.
distributed_plan_force_shuffle_aggregation
distributed_plan_max_rows_to_broadcast
distributed_plan_optimize_exchanges
distributed_plan_prefer_replicas_over_workers
distributed_product_mode
- Применяется только к подзапросам 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
- Передачи лишних строк по сети;
- Обработки на инициаторе строк, выходящих за пределы лимита.
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 — Включено.
- distributed_group_by_no_merge
- optimize_skip_unused_shards
- optimize_distributed_group_by_sharding_key
distributed_replica_error_cap
- Тип: unsigned int
- Значение по умолчанию: 1000
- load_balancing
- движок таблиц Distributed
- distributed_replica_error_half_life
- distributed_replica_max_ignored_errors
distributed_replica_error_half_life
- Тип: секунды
- Значение по умолчанию: 60 секунд
distributed_replica_error_half_life установлена в 1 секунду, то через 3 секунды после последней ошибки реплика снова считается нормальной.
См. также:
- load_balancing
- движок таблиц Distributed
- distributed_replica_error_cap
- distributed_replica_max_ignored_errors
distributed_replica_max_ignored_errors
- Тип: беззнаковое целое число
- Значение по умолчанию: 0
load_balancing).
См. также:
- load_balancing
- движок таблиц Distributed
- distributed_replica_error_cap
- distributed_replica_error_half_life
do_not_merge_across_partitions_select_final
dynamic_disk_allow_from_env
from_env в конфигурации динамического диска (то есть в аргументах функции disk()).
По умолчанию отключена, чтобы пользователи не могли читать произвольные переменные окружения при определении хранилища таблицы.
dynamic_disk_allow_from_zk
from_zk в конфигурации динамических дисков (то есть в аргументах функции disk()).
По умолчанию отключена.
dynamic_disk_allow_include
include в конфигурации динамического диска (то есть в аргументах функции disk()).
По умолчанию отключено.
dynamic_throw_on_type_mismatch
true(по умолчанию) — сгенерировать исключение.false— вместо этого вернутьNULLдля таких строк.
empty_result_for_aggregation_by_constant_keys_on_empty_set
empty_result_for_aggregation_by_empty_set
enable_adaptive_memory_spill_scheduler
enable_add_distinct_to_in_subqueries
DISTINCT в подзапросах IN. Это компромиссная настройка: её включение может значительно уменьшить размер временных таблиц, передаваемых при распределённых подзапросах IN, и существенно ускорить передачу данных между сегментами, так как отправляться будут только уникальные значения.
Однако включение этой настройки создаёт дополнительную нагрузку на слияние на каждом узле, поскольку требуется выполнять дедупликацию (DISTINCT). Используйте эту настройку, когда узким местом является передача данных по сети, а дополнительные затраты на слияние допустимы.
enable_automatic_decision_for_merging_across_partitions_for_final
enable_blob_storage_log
enable_blob_storage_log_for_read_operations
enable_blob_storage_log.
enable_early_constant_folding
enable_extended_results_for_datetime_functions
Date32 с расширенным диапазоном (по сравнению с типом Date)
или типа DateTime64 с расширенным диапазоном (по сравнению с типом DateTime).
Возможные значения:
0— Функции возвращаютDateилиDateTimeдля аргументов любых типов.1— Функции возвращаютDate32илиDateTime64для аргументов типаDate32илиDateTime64, а в остальных случаях —DateилиDateTime.
| Function | enable_extended_results_for_datetime_functions = 0 | enable_extended_results_for_datetime_functions = 1 |
|---|---|---|
toStartOfYear | Возвращает Date или DateTime | Возвращает Date/DateTime для входных значений Date/DateTimeВозвращает Date32/DateTime64 для входных значений Date32/DateTime64 |
toStartOfISOYear | Возвращает Date или DateTime | Возвращает Date/DateTime для входных значений Date/DateTimeВозвращает Date32/DateTime64 для входных значений Date32/DateTime64 |
toStartOfQuarter | Возвращает Date или DateTime | Возвращает Date/DateTime для входных значений типа Date/DateTimeВозвращает Date32/DateTime64 для входных значений типа Date32/DateTime64 |
toStartOfMonth | Возвращает Date или DateTime | Возвращает Date/DateTime для входных значений Date/DateTimeВозвращает Date32/DateTime64 для входных значений Date32/DateTime64 |
toStartOfWeek | Возвращает Date или DateTime | Возвращает Date/DateTime для входных значений Date/DateTimeВозвращает Date32/DateTime64 для входных значений Date32/DateTime64 |
toLastDayOfWeek | Возвращает Date или DateTime | Возвращает Date/DateTime для входных значений Date/DateTimeВозвращает Date32/DateTime64 для входных значений Date32/DateTime64 |
toLastDayOfMonth | Возвращает Date или DateTime | Возвращает Date/DateTime для входных значений Date/DateTimeВозвращает Date32/DateTime64 для входных значений Date32/DateTime64 |
toMonday | Возвращает Date или DateTime | Возвращает Date/DateTime для входных значений Date/DateTimeВозвращает Date32/DateTime64 для входных значений Date32/DateTime64 |
toStartOfDay | Возвращает DateTimeПримечание: для значений вне диапазона 1970–2149 результаты могут быть некорректными | Возвращает DateTime для входных типов Date/DateTimeВозвращает DateTime64 для входных типов Date32/DateTime64 |
toStartOfHour | Возвращает DateTimeПримечание: для значений вне диапазона 1970–2149 результаты будут некорректными | Возвращает DateTime для входных типов Date/DateTimeВозвращает DateTime64 для входных типов Date32/DateTime64 |
toStartOfFifteenMinutes | Возвращает DateTimeПримечание: неверные результаты для значений за пределами диапазона 1970–2149 | Возвращает DateTime для входных значений Date/DateTimeВозвращает DateTime64 для входных значений Date32/DateTime64 |
toStartOfTenMinutes | Возвращает DateTimeПримечание: для значений вне диапазона 1970–2149 возможны некорректные результаты | Возвращает DateTime для входных значений Date/DateTimeВозвращает DateTime64 для входных значений Date32/DateTime64 |
toStartOfFiveMinutes | Возвращает DateTimeПримечание: некорректные результаты для значений вне диапазона 1970–2149 | Возвращает DateTime для входных значений Date/DateTimeВозвращает DateTime64 для входных значений Date32/DateTime64 |
toStartOfMinute | Возвращает DateTimeПримечание: для значений вне диапазона 1970–2149 результаты будут неверными | Возвращает DateTime для аргументов Date/DateTimeВозвращает DateTime64 для аргументов Date32/DateTime64 |
timeSlot | Возвращает DateTimeПримечание: некорректные результаты для значений вне диапазона 1970–2149 | Возвращает DateTime для значений типа Date/DateTimeВозвращает DateTime64 для значений типа Date32/DateTime64 |
enable_filesystem_cache
enable_filesystem_cache_log
enable_filesystem_cache_on_write_operations
write-through). Если установлено значение false, кэш со сквозной записью отключается для операций записи. Если установлено значение true, кэш со сквозной записью включается, если параметр cache_on_write_operations включен в разделе конфигурации cache disk в config сервера.
Подробнее см. в разделе “Использование локального кэша”.
Значение по умолчанию в Cloud: 1.
enable_filesystem_read_prefetches_log
enable_full_text_index
allow_experimental_full_text_index
Если установлено значение true, разрешается использование текстового индекса.
enable_global_with_statement
enable_hdfs_pread
pread для файлов HDFS. По умолчанию используется hdfsPread. Если параметр отключён, для чтения файлов HDFS будут использоваться hdfsRead и hdfsSeek.
enable_http_compression
- 0 — Отключено.
- 1 — Включено.
enable_identifier_resolve_cache
enable_job_stack_trace
enable_join_fixed_hash_table_conversion
enable_join_runtime_filters
enable_join_transitive_predicates
A.x = B.x и B.x = C.x, добавляется синтетический предикат A.x = C.x,
чтобы оптимизатор порядка JOIN мог учитывать прямые планы (A JOIN C).
enable_lazy_columns_replication
enable_lightweight_delete
allow_experimental_lightweight_delete
Включает поддержку легковесных DELETE-мутаций для таблиц MergeTree.
enable_lightweight_update
allow_experimental_lightweight_update
Позволяет использовать легковесные обновления.
enable_materialized_cte
enable_memory_bound_merging_of_aggregation_results
enable_multiple_prewhere_read_steps
enable_named_columns_in_function_tuple
enable_optimize_predicate_expression
SELECT.
Pushdown предикатов может значительно сократить сетевой трафик при распределенных запросах.
Возможные значения:
- 0 — Отключено.
- 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 применяется ко всем данным только после завершения подзапроса.
enable_optimize_predicate_expression_to_final_subquery
enable_order_by_all
ORDER BY ALL, см. ORDER BY.
Возможные значения:
- 0 — Отключить
ORDER BY ALL. - 1 — Включить
ORDER BY ALL.
enable_parallel_blocks_marshalling
enable_parsing_to_custom_serialization
enable_positional_arguments
- 0 — Позиционные аргументы не поддерживаются.
- 1 — Позиционные аргументы поддерживаются: вместо имён столбцов можно использовать их номера.
enable_positional_arguments_for_projections
Это настройка экспертного уровня; не изменяйте её, если вы только начинаете работать с ClickHouse.
- 0 — Позиционные аргументы не поддерживаются.
- 1 — Позиционные аргументы поддерживаются: вместо имён столбцов можно использовать номера столбцов.
enable_producing_buckets_out_of_order_in_aggregation
distributed_aggregation_memory_efficient) формировать бакеты не по порядку.
Это может повысить производительность, если размеры бакетов агрегации распределены неравномерно: реплика сможет отправлять инициатору бакеты с более высокими идентификаторами, пока всё ещё обрабатывает некоторые ресурсоёмкие бакеты с более низкими идентификаторами.
Недостатком может быть потенциально более высокое использование памяти.
enable_reads_from_query_cache
SELECT считываются из кэша запросов.
Возможные значения:
- 0 - Отключено
- 1 - Включено
enable_s3_requests_logging
enable_scalar_subquery_optimization
enable_scopes_for_with_statement
enable_sharding_aggregator
GROUP BY-агрегации, которая распределяет строки по потокам по хешу ключа группировки, чтобы каждый поток агрегировал непересекающееся подмножество ключей без фазы слияния.
Это эффективно для ключей с высокой кардинальностью при равномерном распределении данных, но может работать хуже при сильно неравномерном распределении ключей или в запросах с очень небольшим числом различных ключей.
Возможные значения:
- 0 — Оптимизация шардированной агрегации отключена.
- 1 — Оптимизация шардированной агрегации включена.
Включение этого параметра отключает оптимизацию, которая удаляет из снимков ненужные части данных после завершения этапа планирования.
В результате долго выполняющиеся запросы могут удерживать устаревшие части в течение всего времени выполнения, что задерживает их очистку и увеличивает нагрузку на хранилище.В настоящее время этот параметр применяется только к таблицам семейства MergeTree.
- 0 - Отключено
- 1 - Включено
enable_sharing_sets_for_mutations
enable_software_prefetch_in_aggregation
enable_software_prefetch_in_join
enable_streaming_queries
SELECT ... FROM t STREAM [CURSOR '{...}'].
Если параметр отключен, любое табличное выражение с модификатором STREAM отклоняется
на этапе построения плана. Это основной переключатель для
функции стриминг-запросов; дополнительные возможности могут управляться
собственными настройками.
enable_time_time64_type
allow_experimental_time_time64_type
Позволяет создавать типы данных Time и Time64.
enable_unaligned_array_join
enable_url_encoding
enable_vertical_final
enable_writes_to_query_cache
SELECT сохраняются в кэше запросов.
Возможные значения:
- 0 - Отключено
- 1 - Включено
enforce_strict_identifier_format
engine_file_allow_create_multiple_files
JSON, ORC, Parquet и т. д.). Если параметр включен, при каждой вставке будет создаваться новый файл с именем по следующему шаблону:
data.Parquet -> data.1.Parquet -> data.2.Parquet и т. д.
Возможные значения:
- 0 — запрос
INSERTдописывает новые данные в конец файла. - 1 — запрос
INSERTсоздает новый файл.
engine_file_empty_if_not_exists
- 0 —
SELECTгенерирует исключение. - 1 —
SELECTвозвращает пустой результат.
engine_file_skip_empty_files
- 0 —
SELECTгенерирует исключение, если пустой файл несовместим с запрошенным форматом. - 1 —
SELECTвозвращает пустой результат для пустого файла.
engine_file_truncate_on_insert
- 0 — запрос
INSERTдописывает новые данные в конец файла. - 1 — запрос
INSERTзаменяет существующее содержимое файла новыми данными.
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.
external_storage_connect_timeout_sec
external_storage_max_read_bytes
external_storage_max_read_rows
external_storage_rw_timeout_sec
external_table_functions_use_nulls
- 0 — Табличная функция явно использует столбцы с типом Nullable.
- 1 — Табличная функция неявно использует столбцы с типом Nullable.
0, табличная функция не создаёт столбцы с типом Nullable и вставляет значения по умолчанию вместо NULL. Это также относится к значениям NULL внутри массивов.
external_table_strict_query
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_cache_allow_background_download
filesystem_cache_boundary_alignment
filesystem_cache_enable_background_download_during_fetch
filesystem_cache_enable_background_download_for_metadata_files_in_packed_storage
filesystem_cache_max_download_size
filesystem_cache_name
filesystem_cache_prefer_bigger_buffer_size
filesystem_cache_reserve_space_wait_lock_timeout_milliseconds
filesystem_cache_segments_batch_size
filesystem_cache_skip_download_if_exceeds_per_query_cache_write_limit
skip_download_if_exceeds_query_cache
Пропускать загрузку из удалённой файловой системы, если размер загрузки превышает размер кэша запросов
filesystem_prefetch_max_memory_usage
filesystem_prefetch_step_bytes
auto — приблизительно оптимальный шаг предварительного чтения будет определён автоматически, но он может оказаться не на 100% оптимальным. Фактическое значение может отличаться из-за настройки filesystem_prefetch_min_bytes_for_single_read_task
filesystem_prefetch_step_marks
auto — приблизительно оптимальный шаг предварительного чтения будет определён автоматически, но он может оказаться не на 100% оптимальным. Фактическое значение может отличаться из-за настройки filesystem_prefetch_min_bytes_for_single_read_task
filesystem_prefetches_limit
filesystem_prefetches_max_memory_usage
final
- 0 - отключено
- 1 - включено
finalize_projection_parts_synchronously
flatten_nested
- 1 — вложенный столбец разворачивается в отдельные массивы.
- 0 — вложенный столбец остаётся одним массивом кортежей.
0, можно использовать произвольный уровень вложенности.
Примеры
Запрос:
force_aggregate_partitions_independently
force_aggregation_in_order
force_data_skipping_indices
force_grouping_standard_compatibility
force_index_by_date
force_index_by_date=1, ClickHouse проверяет, есть ли в запросе условие по ключу даты, которое можно использовать для ограничения диапазонов данных. Если подходящего условия нет, генерируется исключение. Однако ClickHouse не проверяет, уменьшает ли это условие объём читаемых данных. Например, условие Date != ' 2000-01-01 ' допустимо, даже если ему соответствуют все данные в таблице (то есть для выполнения запроса потребуется полное сканирование). Дополнительные сведения о диапазонах данных в таблицах MergeTree см. в разделе MergeTree.
force_optimize_projection
SELECT, если включена оптимизация проекций (см. настройку optimize_use_projections).
Возможные значения:
- 0 — Использование оптимизации проекций не является обязательным.
- 1 — Использование оптимизации проекций является обязательным.
force_optimize_projection_name
- строка: имя проекции, используемой в запросе
force_optimize_skip_unused_shards
- 0 — Отключено. ClickHouse не генерирует исключение.
- 1 — Включено. Выполнение запроса отключается, только если у таблицы есть ключ сегментирования.
- 2 — Включено. Выполнение запроса отключается независимо от того, определен ли для таблицы ключ сегментирования.
force_optimize_skip_unused_shards_nesting
force_optimize_skip_unused_shards в зависимости от уровня вложенности распределённого запроса (при этом по-прежнему требует force_optimize_skip_unused_shards). Речь идёт о случае, когда у вас есть таблица Distributed, обращающаяся к другой таблице Distributed.
Возможные значения:
- 0 - Отключено,
force_optimize_skip_unused_shardsработает всегда. - 1 — Включает
force_optimize_skip_unused_shardsтолько для первого уровня. - 2 — Включает
force_optimize_skip_unused_shardsдо второго уровня.
force_primary_key
force_primary_key=1, ClickHouse проверяет, есть ли в запросе условие по первичному ключу, которое можно использовать для ограничения диапазонов данных. Если подходящего условия нет, генерируется исключение. Однако не проверяется, уменьшает ли это условие объём данных, которые нужно прочитать. Дополнительные сведения о диапазонах данных в таблицах MergeTree см. в разделе MergeTree.
force_remove_data_recursively_on_drop
formatdatetime_e_with_space_padding
formatdatetime_f_prints_scale_number_of_digits
formatdatetime_f_выводит_один_ноль
formatdatetime_format_without_leading_zeros
formatdatetime_parsedatetime_m_is_month_name
fsync_metadata
.sql. По умолчанию включено.
Отключать эту настройку имеет смысл, если на сервере есть миллионы маленьких таблиц, которые постоянно создаются и удаляются.
function_base58_max_input_size
base58Encode, base58Decode и tryBase58Decode. Преобразование base58 в общем случае имеет квадратичную сложность по длине входных данных, поэтому обработка одного большого значения может занять очень много времени. base58 предназначен для коротких данных (ключей, хешей, адресов), поэтому значение по умолчанию 10 КБ — это достаточно щедрый порог безопасности. base58Encode и base58Decode генерируют ошибку TOO_LARGE_STRING_SIZE для более крупных входных данных, тогда как tryBase58Decode возвращает пустую строку. Значение 0 отключает ограничение (так работало до появления этой настройки). Линейные функции base32 и base64 это не затрагивает.
function_date_trunc_return_type_behavior
dateTrunc.
Возможные значения:
- 0 - Если второй аргумент —
DateTime64/Date32, возвращаемый тип будетDateTime64/Date32независимо от единицы времени в первом аргументе. - 1 - Для
Date32результатом всегда будетDate. ДляDateTime64результатом будетDateTimeдля единиц времениsecondи больше.
function_implementation
function_json_value_return_type_allow_complex
- true — Разрешить.
- false — Запретить.
function_json_value_return_type_allow_nullable
NULL, если для функции JSON_VALUE значение отсутствует.
- true — Разрешено.
- false — Запрещено.
function_locate_has_mysql_compatible_argument_order
- 0 — Функция
locateпринимает аргументы(haystack, needle[, start_pos]). - 1 — Функция
locateпринимает аргументы(needle, haystack, [, start_pos])(поведение, совместимое с MySQL)
function_range_max_elements_in_block
- Положительное целое число.
function_sleep_max_microseconds_per_block
sleep разрешено приостанавливать выполнение для каждого блока. Если пользователь вызовет её с бо́льшим значением, будет сгенерировано исключение. Это защитный порог.
function_visible_width_behavior
visibleWidth. 0 — учитывать только количество кодовых точек; 1 — корректно учитывать символы нулевой ширины и комбинируемые символы, считать полноширинные символы за два, оценивать ширину табуляции, учитывать символы удаления.
functions_h3_default_if_invalid
geo_distance_returns_float64_on_float64_arguments
geoDistance, greatCircleDistance и greatCircleAngle имеют тип Float64, возвращаемое значение также будет Float64, а для внутренних вычислений будет использоваться двойная точность. В предыдущих версиях ClickHouse эти функции всегда возвращали Float32.
geotoh3_argument_order
geoToH3 принимает (lon, lat), если установлено значение lon_lat, и (lat, lon), если установлено значение lat_lon.
glob_expansion_max_elements
grace_hash_join_initial_buckets
grace_hash_join_max_buckets
group_by_overflow_mode
throw: сгенерировать исключениеbreak: остановить выполнение запроса и вернуть частичный результатany: продолжить агрегацию по ключам, которые попали в набор, но не добавлять в набор новые ключи.
any позволяет выполнять приближённый GROUP BY. Качество
этого приближения зависит от статистической природы данных.
group_by_two_level_threshold
group_by_two_level_threshold_bytes
group_by_use_nulls
ROLLUP, CUBE или GROUPING SETS некоторые ключи агрегации могут не участвовать в формировании отдельных строк результата.
В соответствующих строках столбцы для этих ключей заполняются либо значением по умолчанию, либо NULL — в зависимости от этой настройки.
Возможные значения:
- 0 — Для подстановки отсутствующих значений используется значение по умолчанию для типа ключа агрегации.
- 1 — ClickHouse выполняет
GROUP BYтак, как это определено стандартом SQL. Типы ключей агрегации преобразуются в Nullable. В строках, где соответствующие ключи агрегации не используются, их столбцы заполняются значением NULL.
h3togeo_lon_lat_result_order
h3ToGeo возвращает (lon, lat), если значение равно true, в противном случае — (lat, lon).
handshake_timeout_ms
hdfs_create_new_file_on_insert
data.Parquet.gz -> data.1.Parquet.gz -> data.2.Parquet.gz и т. д.
Возможные значения:
- 0 — запрос
INSERTдописывает новые данные в конец файла. - 1 — запрос
INSERTсоздает новый файл.
hdfs_ignore_file_doesnt_exist
- 1 —
SELECTвозвращает пустой результат. - 0 —
SELECTгенерирует исключение.
hdfs_replication
hdfs_skip_empty_files
- 0 —
SELECTгенерирует исключение, если пустой файл несовместим с запрошенным форматом. - 1 —
SELECTвозвращает пустой результат для пустого файла.
hdfs_throw_on_zero_files_match
- 1 —
SELECTгенерирует исключение. - 0 —
SELECTвозвращает пустой результат.
hdfs_truncate_on_insert
- 0 — запрос
INSERTдобавляет новые данные в конец файла. - 1 — запрос
INSERTзаменяет существующее содержимое файла новыми данными.
hedged_connection_timeout_ms
highlight_max_matches_per_row
- Положительное целое число.
hnsw_candidate_list_size_for_search
hsts_max_age
http_connection_timeout
- Любое положительное целое число.
- 0 — отключено (бесконечный тайм-аут).
http_headers_progress_interval_ms
http_headers_read_timeout
http_make_head_request
http_make_head_request позволяет выполнять запрос HEAD при чтении данных по HTTP, чтобы получить информацию о файле, например его размер. Поскольку она включена по умолчанию, в случаях, когда сервер не поддерживает запросы HEAD, может быть целесообразно отключить эту настройку.
http_max_field_name_size
http_max_field_value_size
http_max_fields
http_max_multipart_form_data_size
http_max_request_header_size
http_max_request_param_data_size
http_max_tries
http_max_uri_size
- Положительное целое число.
http_native_compression_disable_checksumming_on_decompress
gzip или deflate).
Подробнее см. описание HTTP-интерфейса.
Возможные значения:
- 0 — Отключено.
- 1 — Включено.
http_receive_timeout
- Любое положительное целое число.
- 0 — отключено (бесконечный тайм-аут).
http_response_buffer_size
http_response_headers
SET http_response_headers = '{"Content-Type": "image/png"}'
http_retry_initial_backoff_ms
http_retry_max_backoff_ms
http_send_timeout
- Любое положительное целое число.
- 0 — отключено (бесконечный тайм-аут).
Применимо только к профилю по умолчанию. Чтобы изменения вступили в силу, требуется перезагрузка сервера.
http_skip_not_found_url_for_globs
http_wait_end_of_query
http_write_exception_in_output_format
http_zlib_compression_level
iceberg_compaction_data_cleanup
iceberg_compaction_delay_bias
iceberg_data_file_size_lower_threshold_compaction
iceberg_data_file_size_upper_threshold_compaction
iceberg_delete_data_on_drop
iceberg_expire_default_max_ref_age_ms
history.expire.max-ref-age-ms таблицы Iceberg, которое используется функцией expire_snapshots, если это свойство отсутствует.
iceberg_expire_default_max_snapshot_age_ms
history.expire.max-snapshot-age-ms, которое expire_snapshots использует, если это свойство отсутствует.
iceberg_expire_default_min_snapshots_to_keep
history.expire.min-snapshots-to-keep, которое использует expire_snapshots, если это свойство отсутствует.
iceberg_insert_max_bytes_in_data_file
iceberg_insert_max_partitions
iceberg_insert_max_rows_in_data_file
iceberg_max_number_datafiles_to_compact
iceberg_metadata_compression_method
.metadata.json.
iceberg_metadata_log_level
- none - Без журнала метаданных.
- metadata - Корневой файл metadata.json.
- manifest_list_metadata - Всё вышеперечисленное + метаданные из avro manifest list, соответствующего снимку.
- manifest_list_entry - Всё вышеперечисленное + записи avro manifest list.
- manifest_file_metadata - Всё вышеперечисленное + метаданные из просмотренных avro manifest files.
- manifest_file_entry - Всё вышеперечисленное + записи просмотренных avro manifest files.
iceberg_metadata_staleness_ms
iceberg_orphan_files_older_than_seconds
remove_orphan_files() опущен аргумент older_than. Значение по умолчанию — 259200 (3 дня).
iceberg_snapshot_id
iceberg_timestamp_ms
idle_connection_timeout
- Положительное целое число (0 — закрыть немедленно, через 0 секунд).
ignore_cold_parts_seconds
ignore_data_skipping_indices
xy_idx:
ignore_drop_queries_probability
ignore_format_null_for_explain
FORMAT Null будет игнорироваться в запросах EXPLAIN, и вместо него будет использоваться формат вывода по умолчанию.
Если отключено, запросы EXPLAIN с FORMAT Null не будут выводить результат (поведение для обратной совместимости).
ignore_materialized_views_with_dropped_target_table
ignore_on_cluster_for_replicated_access_entities_queries
ignore_on_cluster_for_replicated_database
ignore_on_cluster_for_replicated_named_collections_queries
ignore_on_cluster_for_replicated_udf_queries
implicit_select
1 + 2 становится допустимым запросом.
В clickhouse-local эта возможность включена по умолчанию, но её можно явно отключить.
implicit_table_at_top_level
implicit_transaction
inject_random_order_for_select_without_order_by
insert_allow_materialized_columns
insert_deduplicate
INSERT (для таблиц Replicated*).
Возможные значения:
- 0 — отключено.
- 1 — включено.
INSERT, подвергаются дедупликации (см. репликация данных).
Для реплицируемых таблиц по умолчанию дедуплицируются только 100 последних блоков для каждой партиции (см. replicated_deduplication_window, replicated_deduplication_window_seconds).
Для нереплицируемых таблиц см. non_replicated_deduplication_window.
insert_deduplication_token
- Любая строка
insert_deduplication_token используется для дедупликации только если он не пуст.
Для реплицируемых таблиц по умолчанию дедуплицируются только 100 последних вставок для каждой партиции (см. replicated_deduplication_window, replicated_deduplication_window_seconds).
Для нереплицируемых таблиц см. non_replicated_deduplication_window.
insert_deduplication_token работает на уровне партиции (как и контрольная сумма insert_deduplication). Несколько партиций могут иметь одинаковый insert_deduplication_token.insert_keeper_fault_injection_probability
insert_keeper_fault_injection_seed
insert_keeper_max_retries
- Положительное целое число.
- 0 — повторные попытки отключены
20.
Повторные попытки запросов к Keeper выполняются после некоторой задержки. Эта задержка регулируется следующими параметрами: insert_keeper_retry_initial_backoff_ms, insert_keeper_retry_max_backoff_ms.
Первая повторная попытка выполняется после задержки insert_keeper_retry_initial_backoff_ms. Последующие задержки вычисляются следующим образом:
insert_keeper_retry_initial_backoff_ms=100, insert_keeper_retry_max_backoff_ms=10000 и insert_keeper_max_retries=8, то тайм-ауты будут равны 100, 200, 400, 800, 1600, 3200, 6400, 10000.
Помимо отказоустойчивости, повторные попытки также улучшают пользовательский опыт: например, они позволяют избежать возврата ошибки при выполнении INSERT, если Keeper перезапускается из-за обновления.
insert_keeper_retry_initial_backoff_ms
- Положительное целое число.
- 0 — без задержки
insert_keeper_retry_max_backoff_ms
- Положительное целое число.
- 0 — максимальный тайм-аут не ограничен
insert_null_as_default
NULL вызывает исключение. Если тип столбца Nullable, значения NULL вставляются как есть независимо от этой настройки.
Эта настройка применима к запросам INSERT … SELECT. Обратите внимание, что подзапросы SELECT могут быть объединены оператором UNION ALL.
Возможные значения:
- 0 — Вставка
NULLв столбец, не являющийся Nullable, вызывает исключение. - 1 — Вместо
NULLвставляется значение столбца по умолчанию.
insert_quorum
Этот параметр не применяется к SharedMergeTree; подробнее см. в разделе SharedMergeTree consistency.
- Если
insert_quorum < 2, запись с кворумом отключена. - Если
insert_quorum >= 2, запись с кворумом включена. - Если
insert_quorum = 'auto', в качестве размера кворума используется большинство (number_of_replicas / 2 + 1).
INSERT считается успешным, только если ClickHouse удается корректно записать данные на insert_quorum реплик в течение insert_quorum_timeout. Если по какой-либо причине число реплик с успешной записью не достигает insert_quorum, запись считается неуспешной, и ClickHouse удалит вставленный блок со всех реплик, на которые данные уже были записаны.
Когда insert_quorum_parallel отключен, все реплики в кворуме согласованы, то есть содержат данные из всех предыдущих запросов INSERT (последовательность INSERT линеаризована). При чтении данных, записанных с использованием insert_quorum, если insert_quorum_parallel отключен, можно включить последовательную согласованность для запросов SELECT с помощью select_sequential_consistency.
ClickHouse генерирует исключение:
- Если число доступных реплик на момент выполнения запроса меньше
insert_quorum. - Когда
insert_quorum_parallelотключен и предпринимается попытка записать данные, хотя предыдущий блок еще не был вставлен наinsert_quorumреплик. Такая ситуация может возникнуть, если пользователь пытается выполнить еще один запросINSERTв ту же таблицу до завершения предыдущего запроса сinsert_quorum.
insert_quorum_parallel
Этот параметр не применяется к SharedMergeTree; подробнее см. в разделе консистентность SharedMergeTree.
INSERT с quorum. Если параметр включен, дополнительные запросы INSERT можно отправлять, пока предыдущие еще не завершились. Если параметр отключен, дополнительные записи в ту же таблицу будут отклонены.
Возможные значения:
- 0 — Отключено.
- 1 — Включено.
insert_quorum_timeout
insert_shard_id
0, задаёт сегмент таблицы Distributed, в который данные будут вставляться синхронно.
Если значение insert_shard_id некорректно, сервер сгенерирует исключение.
Чтобы узнать количество сегментов в requested_cluster, проверьте конфигурацию сервера или используйте этот запрос:
- 0 — отключено.
- Любое число от
1доshards_numдля соответствующей таблицы Distributed.
interactive_delay
intersect_default_mode
jemalloc_collect_profile_samples_in_trace_log
jemalloc_enable_profiler
jemalloc_profile_text_collapsed_use_count
collapsed для профиля кучи jemalloc агрегация выполняется по числу выделений, а не по байтам. Если false (по умолчанию), каждый стек взвешивается по объёму используемых байтов; если true — по числу используемых выделений.
jemalloc_profile_text_output_format
jemalloc_profile_text_symbolize_with_inline
join_algorithm
- grace_hash
grace_hash_join_initial_buckets). Это делается так, чтобы каждый бакет можно было обрабатывать независимо. Строки из первого бакета добавляются в хеш-таблицу в оперативной памяти, а остальные сохраняются на диск. Если хеш-таблица превышает лимит памяти (например, заданный в max_bytes_in_join), количество бакетов увеличивается, и для каждой строки заново определяется назначенный бакет. Все строки, которые не относятся к текущему бакету, сбрасываются на диск и перераспределяются.
Поддерживает INNER/LEFT/RIGHT/FULL ALL/ANY JOIN.
- hash
OR в секции JOIN ON.
При использовании алгоритма hash правая часть JOIN загружается в оперативную память.
- parallel_hash
hash join, который разбивает данные на бакеты и параллельно строит несколько хеш-таблиц вместо одной, чтобы ускорить этот процесс.
При использовании алгоритма parallel_hash правая часть JOIN загружается в оперативную память.
- partial_merge
RIGHT JOIN и FULL JOIN поддерживаются только со strictness ALL (SEMI, ANTI, ANY и ASOF не поддерживаются).
При использовании алгоритма partial_merge ClickHouse сортирует данные и выгружает их на диск. Алгоритм partial_merge в ClickHouse немного отличается от классической реализации. Сначала ClickHouse сортирует правую таблицу по ключам JOIN блоками и создаёт min-max индекс для отсортированных блоков. Затем он сортирует части левой таблицы по join key и выполняет JOIN с правой таблицей. Min-max индекс также используется для пропуска ненужных блоков правой таблицы.
- direct
direct (также известный как nested loop) выполняет lookup в правой таблице, используя строки из левой таблицы в качестве ключей.
Он поддерживается специальными хранилищами, такими как Dictionary, EmbeddedRocksDB и таблицы MergeTree.
Для таблиц MergeTree алгоритм передаёт фильтры по ключу JOIN напрямую на уровень хранения. Это может быть эффективнее, если по ключу можно выполнять lookup с использованием индекса primary key таблицы; в противном случае для каждого блока левой таблицы выполняется полное сканирование правой таблицы.
Поддерживает INNER и LEFT JOIN, а также только одно-столбцовые ключи join по равенству без дополнительных условий.
- auto
auto, сначала используется hash join, а затем алгоритм на лету переключается на другой, если превышается лимит памяти.
- full_sorting_merge
- prefer_partial_merge
partial_merge join, если это возможно; в противном случае используется hash. Устарело, то же самое, что partial_merge,hash.
- default (устарело)
direct,hash, то есть сначала выполняется попытка использовать direct join, затем hash join (в таком порядке).
join_any_take_last_row
ANY.
Этот параметр применяется только к операциям
JOIN с таблицами, использующими движок Join.- 0 — Если в правой таблице есть несколько совпадающих строк, JOIN выполняется только с первой найденной.
- 1 — Если в правой таблице есть несколько совпадающих строк, JOIN выполняется только с последней найденной.
join_default_strictness
ALL— Если в правой таблице есть несколько совпадающих строк, ClickHouse создаёт декартово произведение из совпадающих строк. Это стандартное поведениеJOINв SQL.ANY— Если в правой таблице есть несколько совпадающих строк, присоединяется только первая найденная. Если в правой таблице есть только одна совпадающая строка, результатыANYиALLсовпадают.ASOF— Для соединения последовательностей при неточном совпадении.Пустая строка— Если в запросе не указаныALLилиANY, ClickHouse генерирует исключение.
join_on_disk_max_files_to_merge
- Любое положительное целое число, начиная с 2.
join_output_by_rowlist_perkey_rows_threshold
join_overflow_mode
hash и parallel_hash
параметра join_algorithm. Другие
алгоритмы (например, partial_merge, grace_hash, auto) обрабатывают
ограничения иначе — за счет сброса на диск, повторного разбиения на партиции или смены
стратегии — см.
join_algorithm.
Возможные значения:
THROW— ClickHouse генерирует исключение и останавливает запрос.BREAK— ClickHouse останавливает запрос и не генерирует исключение.
THROW.
См. также
join_runtime_bloom_filter_bytes
join_runtime_bloom_filter_hash_functions
join_runtime_bloom_filter_max_ratio_of_set_bits
join_runtime_filter_blocks_to_skip_before_reenabling
join_runtime_filter_exact_values_limit
join_runtime_filter_from_fixed_hash_table
enable_join_fixed_hash_table_conversion), используйте эту хэш-таблицу напрямую как runtime-фильтр.
join_runtime_filter_pass_ratio_threshold_for_disabling
join_runtime_filter_blocks_to_skip_before_reenabling блоков, чтобы уменьшить накладные расходы.
join_to_sort_maximum_table_rows
join_to_sort_minimum_perkey_rows
join_use_nulls
- 0 — Пустые ячейки заполняются значением по умолчанию для типа соответствующего поля.
- 1 —
JOINведёт себя так же, как в стандартном SQL. Тип соответствующего поля преобразуется в Nullable, а пустые ячейки заполняются NULL.
joined_block_split_single_row
max_joined_block_size_rows != 0.
Параметр max_joined_block_size_bytes в сочетании с этой настройкой помогает избежать чрезмерного использования памяти в случае перекошенных данных, когда некоторые большие строки имеют множество совпадений в правой таблице.
joined_subquery_requires_alias
kafka_disable_num_consumers_limit
kafka_num_consumers, зависящее от количества доступных ядер CPU.
kafka_max_wait_ms
- Положительное целое число.
- 0 — бесконечный тайм-аут.
keeper_map_strict_mode
keeper_max_retries
keeper_retry_initial_backoff_ms
keeper_retry_max_backoff_ms
least_greatest_legacy_null_behavior
legacy_column_name_of_tuple_literal
lightweight_delete_mode
alter_update- выполнить запросALTER UPDATE, который создаёт тяжёлую мутацию.lightweight_update- выполнить легковесное обновление, если это возможно; в противном случае выполнитьALTER UPDATE.lightweight_update_force- выполнить легковесное обновление, если это возможно; в противном случае сгенерировать исключение.
lightweight_deletes_sync
mutations_sync, но управляет только выполнением легковесных удалений.
Возможные значения:
| Value | Description |
|---|---|
0 | Мутации выполняются асинхронно. |
1 | Запрос ожидает завершения легковесных удалений на текущем сервере. |
2 | Запрос ожидает завершения легковесных удалений на всех репликах (если они есть). |
3 | Запрос ожидает завершения легковесных удалений только на активных репликах. Поддерживается только для SharedMergeTree. Для ReplicatedMergeTree ведет себя так же, как mutations_sync = 2. |
1.
limit
- 0 — количество строк не ограничено.
- Положительное целое число.
load_balancing
- Random (по умолчанию)
- Ближайшее имя хоста
- Расстояние Левенштейна по имени хоста
- Наибольший общий префикс имени хоста
- Наибольший общий суффикс имени хоста
- По порядку
- Первый или случайный
- Round robin
Random (по умолчанию)
Ближайшее имя хоста
Расстояние Левенштейна по имени хоста
nearest_hostname, но сравнивает имена хостов по расстоянию Левенштейна. Например:
Наибольший общий префикс имени хоста
nearest_hostname, но предпочтение отдаётся реплике, имя хоста которой имеет самый длинный общий префикс с локальным именем хоста (чем длиннее общий префикс, тем выше приоритет). В отличие от nearest_hostname, который сравнивает различающиеся символы позиция за позицией, эта стратегия не путается из-за имён хостов, у которых числовые сегменты имеют разную длину. Например, для локального имени хоста sfe301:
sfe10101, поскольку у него самый длинный общий префикс (sfe, длина 3) с sfe301.
Реплики с одинаковой длиной общего префикса выбираются случайным образом. В частности, если ни у одной реплики нет общего префикса с локальным именем хоста (все длины общих префиксов равны нулю), эта стратегия работает точно так же, как random.
Наибольший общий суффикс имени хоста
hostname_longest_common_prefix, но вместо префикса сравнивается самый длинный общий суффикс. Это полезно, когда идентификатор центра обработки данных закодирован в виде суффикса имени хоста. Например, для локального имени хоста et46gtghn.qc.localdomain:
ab999.qc.localdomain, поскольку у него самый длинный общий суффикс (.qc.localdomain, длина 15) с et46gtghn.qc.localdomain.
Реплики с одинаковой длиной общего суффикса выбираются случайным образом. В частности, если ни у одной реплики нет общего суффикса с локальным именем хоста (все длины общих суффиксов равны нулю), эта стратегия работает точно так же, как random.
По порядку
Первый или случайный
first_or_random решает проблему алгоритма in_order. При использовании in_order, если одна реплика выходит из строя, следующая получает двойную нагрузку, тогда как остальные реплики обрабатывают обычный объём трафика. При использовании алгоритма first_or_random нагрузка равномерно распределяется между репликами, которые всё ещё доступны.
Можно явно указать, какая реплика считается первой, с помощью настройки load_balancing_first_offset. Это позволяет точнее перебалансировать нагрузку запросов между репликами.
Round Robin
round_robin).
load_balancing_first_offset
load_marks_asynchronously
1.
local_filesystem_read_method
local_filesystem_read_prefetch
lock_acquire_timeout
DEADLOCK_AVOIDED.
Возможные значения:
- Положительное целое число (в секундах).
- 0 — без тайм-аута блокировки.
log_comment
log_comment таблицы system.query_log и текст комментария для серверного журнала.
Используется для повышения читаемости серверных журналов. Кроме того, помогает выбирать из system.query_log запросы, относящиеся к тесту, после запуска clickhouse-test.
Возможные значения:
- Любая строка длиной не более max_query_size. Если значение max_query_size превышено, сервер генерирует исключение.
log_formatted_queries
formatted_query в system.query_log).
Возможные значения:
- 0 — Отформатированные запросы не записываются в системную таблицу.
- 1 — Отформатированные запросы записываются в системную таблицу.
log_processors_profiles
system.processors_profile_log время, которое процессор потратил на выполнение и ожидание данных.
См. также:
log_profile_events
log_queries
log_queries_cut_to_length
log_queries_min_query_duration_ms
long_query_time для MySQL Slow Query Log); по сути это означает, что вы не найдете их в следующих таблицах:
system.query_logsystem.query_thread_log
-
QUERY_FINISH -
EXCEPTION_WHILE_PROCESSING - Тип: миллисекунды
- Значение по умолчанию: 0 (любой запрос)
log_queries_min_type
query_log.
Возможные значения:
QUERY_START(=1)QUERY_FINISH(=2)EXCEPTION_BEFORE_START(=3)EXCEPTION_WHILE_PROCESSING(=4)
query_log; например, если вас интересуют только ошибки, можно использовать EXCEPTION_WHILE_PROCESSING:
log_queries_probability
- 0 — Запросы не записываются в системные таблицы.
- Положительное число с плавающей точкой в диапазоне [0..1]. Например, если значение настройки равно
0.5, в системные таблицы записывается примерно половина запросов. - 1 — Все запросы записываются в системные таблицы.
log_query_settings
log_query_threads
- 0 — Отключено.
- 1 — Включено.
log_query_views
low_cardinality_allow_in_native_format
LowCardinality ограничено, сервер ClickHouse преобразует столбцы LowCardinality в обычные для запросов SELECT, а обычные столбцы — в столбцы LowCardinality для запросов INSERT.
Эта настройка в основном нужна для сторонних клиентов, которые не поддерживают тип данных LowCardinality.
Возможные значения:
- 1 — использование
LowCardinalityне ограничено. - 0 — использование
LowCardinalityограничено.
low_cardinality_max_dictionary_size
- Любое положительное целое число.
low_cardinality_use_single_dictionary_for_part
low_cardinality_use_single_dictionary_for_part = 1.
Возможные значения:
- 1 — Создание нескольких словарей для части данных запрещено.
- 0 — Создание нескольких словарей для части данных не запрещено.
low_priority_query_wait_time_ms
priority), низкоприоритетные запросы ждут завершения запросов с более высоким приоритетом. Эта настройка определяет время ожидания.
make_distributed_plan
materialize_skip_indexes_on_insert
materialize_statistics_on_insert
materialize_ttl_after_modify
materialized_views_ignore_errors
SELECT или во внутренний sink таблицы), записываются как предупреждения, и оператор INSERT завершается успешно. Если отключено (по умолчанию), такое Исключение передаётся дальше, и оператор INSERT завершается ошибкой.
Этот параметр влияет только на обработку ошибок. Он не откатывает запись в исходную таблицу и не гарантирует, что исходный block уже был закоммичен в исходную таблицу к моменту возникновения ошибки в конвейере зависимого представления. Если параметр отключен (по умолчанию), INSERT завершается ошибкой при ошибке в представлении — повторите его с дедупликацией вставки (insert_deduplicate, deduplicate_blocks_in_dependent_materialized_views), чтобы обеспечить exactly-once доставку в исходную таблицу и во все зависимые представления. Если параметр включен, INSERT сообщает об успехе, несмотря на частичную доставку в представления со сбоем и их последующие chain; используйте это только в случаях, когда записи в исходную таблицу не должны блокироваться из-за проблем на стороне представления (например, для таблиц system.*_log). Полное описание семантики см. в документации по CREATE VIEW.
materialized_views_squash_parallel_inserts
parallel_view_processing, запрос INSERT будет создавать в целевой таблице по одной части для каждого max_insert_thread.
max_analyze_depth
max_ast_depth
В настоящий момент это не проверяется при синтаксическом разборе, а только после разбора запроса.
Это означает, что при синтаксическом разборе может быть создано слишком глубокое синтаксическое дерево,
но запрос завершится ошибкой.
max_ast_elements
В настоящее время это не проверяется во время разбора, а только после разбора запроса.
Это означает, что во время разбора может быть создано слишком глубокое синтаксическое дерево,
но запрос завершится с ошибкой.
max_autoincrement_series
generateSerialID.
Поскольку каждая серия представляет собой узел в Keeper, рекомендуется не создавать более нескольких миллионов таких серий.
max_backup_bandwidth
max_block_size
max_block_size задаёт рекомендуемое максимальное число строк в одном блоке при загрузке данных из таблиц. Блоки размером max_block_size не всегда загружаются из таблицы: если ClickHouse определяет, что нужно извлечь меньше данных, обрабатывается блок меньшего размера.
Размер блока не должен быть слишком маленьким, чтобы избежать заметных накладных расходов при обработке каждого блока. В то же время он не должен быть слишком большим, чтобы запросы с оператором LIMIT выполнялись быстро после обработки первого блока. При настройке max_block_size следует стремиться к тому, чтобы не расходовать слишком много памяти при извлечении большого числа столбцов в нескольких потоках и сохранять хотя бы некоторую локальность кэша.
max_bytes_before_external_group_by
GROUP BY с использованием внешней памяти.
(См. GROUP BY с использованием внешней памяти)
Возможные значения:
- Максимальный объем оперативной памяти (в байтах), который может использовать одна операция GROUP BY.
0—GROUP BYс использованием внешней памяти отключен.
Если при выполнении операций GROUP BY использование памяти превышает этот порог,
включается режим «внешняя агрегация» (сброс данных на диск).Рекомендуемое значение — половина доступной системной памяти.
max_bytes_before_external_join
join_algorithm имеет значение hash, parallel_hash, default или auto, hash JOIN будет автоматически преобразован в grace hash join, чтобы включить выгрузку на диск, когда объём данных с правой стороны превысит указанное количество байт. Если задано значение 0 (по умолчанию), этот абсолютный порог в байтах отключён, но автоматическая выгрузка всё равно может происходить через max_bytes_ratio_before_external_join (по умолчанию 0.5); задайте для обоих значение 0, чтобы полностью отключить автоматическую выгрузку. Это предотвращает оптимизацию чтения in order через JOIN.
max_bytes_before_external_sort
ORDER BY с использованием внешней памяти. См. Подробности реализации ORDER BY
Если во время операции ORDER BY использование памяти превышает этот порог в байтах, включается режим «внешней сортировки» (сброс данных на диск).
Возможные значения:
- Максимальный объем оперативной памяти (в байтах), который может использовать одна операция ORDER BY. Рекомендуемое значение — половина доступной системной памяти
0—ORDER BYс использованием внешней памяти отключен.
max_bytes_before_remerge_sort
max_bytes_for_lazy_final
max_bytes_in_distinct
max_bytes_in_join
join_algorithm — см.
эту настройку для поведения каждого алгоритма (spill, повторное разбиение на партиции, переключение или
throw/break в соответствии с join_overflow_mode).
Возможные значения:
- Положительное целое число.
- 0 — контроль памяти отключён.
max_bytes_in_set
max_bytes_ratio_before_external_group_by
GROUP BY. После достижения
этого значения для агрегации будет использоваться внешняя память.
Например, если задано значение 0.6, GROUP BY позволит использовать 60% доступной памяти
(для server/user/merges) в начале выполнения, после чего
начнёт использовать внешнюю агрегацию.
max_bytes_ratio_before_external_join
JOIN. При достижении этого значения hash join будет преобразован в grace hash join, чтобы выгружать данные с правой стороны на диск.
Например, если задано 0.6, JOIN позволит использовать 60% доступной памяти (для server/user/merges) для хеш-таблицы правой стороны в начале выполнения; после этого начнется выгрузка на диск.
Если заданы и max_bytes_before_external_join, и max_bytes_ratio_before_external_join, используется меньший из получившихся порогов. Если доля равна 0, применяется только абсолютная настройка.
Действует только в случае, если join_algorithm имеет значение hash, parallel_hash, default или auto и настроен путь для временных данных.
max_bytes_ratio_before_external_sort
ORDER BY. После достижения этого порога применяется внешняя сортировка.
Например, если установлено значение 0.6, ORDER BY позволит использовать 60% доступной памяти (для server/user/merges) в начале выполнения, после чего начнёт использовать внешнюю сортировку.
Обратите внимание: значение max_bytes_before_external_sort по-прежнему учитывается; сброс на диск выполняется только в том случае, если блок сортировки больше max_bytes_before_external_sort.
max_bytes_to_read
max_bytes_to_read_leaf
max_bytes_to_read=150, завершится ошибкой, поскольку
общий объём составит 200 байт. Запрос с max_bytes_to_read_leaf=150 выполнится успешно,
поскольку листовые узлы прочитают не более 100 байт.
Ограничение проверяется для каждого обрабатываемого фрагмента данных.
Этот параметр работает нестабильно при
prefer_localhost_replica=1.max_bytes_to_sort
sort_overflow_mode, который по умолчанию имеет значение throw.
max_bytes_to_transfer
max_columns_to_read
0 означает отсутствие ограничений.
max_compress_block_size
Это настройка экспертного уровня, и вам не следует её изменять, если вы только начинаете работать с ClickHouse.
max_concurrent_queries_for_all_users
max_concurrent_queries_for_all_users можно установить в значение 99 для всех пользователей, а администратор базы данных может установить для себя значение 100, чтобы выполнять запросы для расследования даже при перегрузке сервера.
Изменение этой настройки для одного запроса или пользователя не влияет на другие запросы.
Возможные значения:
- Положительное целое число.
- 0 — Без ограничений.
1000.
max_concurrent_queries_for_user
- Положительное целое число.
- 0 — без ограничений.
max_consume_snapshots
max_distributed_connections
max_distributed_depth
- Положительное целое число.
- 0 — неограниченная глубина.
max_download_buffer_size
max_download_threads
max_estimated_execution_time
timeout_before_checking_execution_speed.
max_execution_speed
timeout_before_checking_execution_speed
истекает. Если скорость выполнения слишком высокая, она будет снижена.
max_execution_speed_bytes
timeout_before_checking_execution_speed.
Если скорость выполнения слишком высока, она будет снижена.
max_execution_time
max_execution_time может быть не сразу понятен.
Он работает на основе интерполяции относительно текущей скорости выполнения запроса
(это поведение контролируется параметром timeout_before_checking_execution_speed).
ClickHouse прервёт запрос, если прогнозируемое время выполнения превысит
указанное значение max_execution_time. По умолчанию timeout_before_checking_execution_speed
установлен в 10 секунд. Это означает, что через 10 секунд после начала выполнения запроса ClickHouse
начнёт оценивать общее время выполнения. Например, если max_execution_time
установлен в 3600 секунд (1 час), ClickHouse завершит запрос, если расчётное
время превысит этот лимит в 3600 секунд. Если установить timeout_before_checking_execution_speed
в 0, ClickHouse будет использовать для max_execution_time фактическое время по часам.
Если время выполнения запроса превышает указанное количество секунд, поведение будет
определяться параметром timeout_overflow_mode, который по умолчанию установлен в throw.
Тайм-аут проверяется, и запрос может быть остановлен только в определённых местах во время обработки данных.
Сейчас его нельзя остановить во время слияния состояний агрегации или во время анализа запроса,
поэтому фактическое время выполнения будет больше, чем значение этой настройки.
max_execution_time_leaf
max_execution_time, но
применяется только на листовых узлах для распределённых или удалённых запросов.
Например, если мы хотим ограничить время выполнения на листовом узле до 10s, но
не устанавливать ограничение на инициирующем узле, то вместо использования max_execution_time в
настройках вложенного подзапроса:
max_execution_time_leaf в качестве настройки запроса:
max_expanded_ast_elements
max_fetch_partition_retries_count
max_final_threads
SELECT с модификатором FINAL.
Возможные значения:
- Положительное целое число.
- 0 или 1 — отключено. Запросы
SELECTвыполняются в одном потоке.
max_http_get_redirects
10.
max_hyperscan_regexp_length
- Положительное целое число.
- 0 — длина не ограничена.
max_hyperscan_regexp_total_length
- Положительное целое число.
- 0 — длина не ограничена.
max_insert_block_size
max_insert_block_size_rows
Максимальный размер блоков (по числу строк), формируемых для вставки в таблицу.
Этот параметр управляет формированием блоков в двух контекстах:
-
Разбор форматов: когда сервер разбирает построчные входные форматы (CSV, TSV, JSONEachRow и т. д.) через любой интерфейс (HTTP, clickhouse-client со встроенными данными, gRPC, по протоколу PostgreSQL), блоки формируются, когда:
- достигнуты оба порога: min_insert_block_size_rows И min_insert_block_size_bytes, ИЛИ
- достигнут любой из максимальных порогов: max_insert_block_size_rows ИЛИ max_insert_block_size_bytes
-
Операции INSERT: во время запросов INSERT и при прохождении данных через materialized views поведение этого параметра зависит от
use_strict_insert_block_limits:-
Если включен: блоки формируются, когда:
- Минимальные пороги (И): достигнуты оба порога min_insert_block_size_rows И min_insert_block_size_bytes
- Максимальные пороги (ИЛИ): достигнут любой из порогов max_insert_block_size_rows ИЛИ max_insert_block_size_bytes
- Если отключен: блоки формируются, когда достигнут min_insert_block_size_rows ИЛИ min_insert_block_size_bytes. Параметры max_insert_block_size не применяются.
-
Если включен: блоки формируются, когда:
- Положительное целое число.
max_insert_block_size_bytes
- Положительное целое число.
- 0 — настройка не участвует в формировании блоков.
max_insert_delayed_streams_for_parallel_write
50.
max_insert_threads
INSERT SELECT.
Возможные значения:
- 0 (или 1) — для
INSERT SELECTпараллельное выполнение не используется. - Положительное целое число больше 1.
1для узлов с 8 GiB памяти2для узлов с 16 GiB памяти4для более крупных узлов
INSERT SELECT имеет эффект только в том случае, если часть SELECT также выполняется параллельно, см. настройку max_threads.
Более высокие значения приводят к большему использованию памяти.
max_insert_threads_min_free_memory_per_thread
max_threads_min_free_memory_per_thread, но применяется к max_insert_threads, а не к max_threads. Значение по умолчанию выше, поскольку конвейеры вставки обычно используют более крупные буферы на поток (части MergeTree, блоки сжатия), чем конвейеры чтения.
Если объем свободной памяти меньше значения max_insert_threads, умноженного на это значение, max_insert_threads уменьшается до допустимого уровня, но не ниже 1.
Установите 0, чтобы отключить это ограничение.
max_joined_block_size_bytes
max_joined_block_size_rows
max_limit_for_vector_search_queries
max_local_read_bandwidth
max_local_write_bandwidth
max_memory_usage
0 означает отсутствие ограничений.
Этот параметр не учитывает объем доступной памяти или общий объем
памяти на машине. Ограничение применяется к одному запросу на
одном сервере.
Вы можете использовать SHOW PROCESSLIST, чтобы увидеть текущее потребление памяти для каждого запроса.
Пиковое потребление памяти отслеживается для каждого запроса и записывается в лог.
Использование памяти отслеживается не полностью для состояний следующих агрегатных функций
с аргументами String и Array:
minmaxanyanyLastargMinargMax
max_memory_usage_for_user
и max_server_memory_usage.
max_memory_usage_for_user
max_memory_usage_for_user = 0).
Также см. описание max_memory_usage.
Например, если вы хотите установить для пользователя с именем clickhouse_read значение max_memory_usage_for_user, равное 1000 байт, можно использовать оператор
getSetting:
max_network_bandwidth
- Положительное целое число.
- 0 — ограничение пропускной способности отключено.
max_network_bandwidth_for_all_users
- Положительное целое число.
- 0 — ограничение скорости передачи данных отключено.
max_network_bandwidth_for_user
- Положительное целое число.
- 0 — ограничение скорости передачи данных отключено.
max_network_bytes
- Положительное целое число.
- 0 — ограничение объёма данных отключено.
max_number_of_partitions_for_independent_aggregation
max_os_cpu_wait_time_ratio_to_throw
max_parallel_replicas
- Положительное целое число.
Параллельная обработка с использованием ключа SAMPLE
- Положение ключа выборки в ключе партиционирования не позволяет эффективно выполнять диапазонное сканирование.
- Добавление ключа выборки в таблицу снижает эффективность фильтрации по другим столбцам.
- Ключ выборки представляет собой выражение, вычисление которого требует значительных затрат.
- Распределение задержек в кластере имеет длинный хвост, поэтому выполнение запроса на большем числе серверов увеличивает его общую задержку.
Параллельная обработка с использованием parallel_replicas_custom_key
max_parser_backtracks
max_parser_depth
- Положительное целое число.
- 0 — глубина рекурсии не ограничена.
max_parsing_threads
max_partition_size_to_drop
0 означает, что партиции можно удалять без каких-либо ограничений.
Значение по умолчанию в Cloud: 1 TB.
Эта настройка запроса переопределяет соответствующую настройку сервера, см. max_partition_size_to_drop
max_partitions_per_insert_block
- Положительное целое число.
0— Неограниченное количество партиций.
max_partitions_per_insert_block, ClickHouse либо записывает предупреждение в журнал, либо генерирует
исключение в зависимости от throw_on_max_partitions_per_insert_block. Текст исключения
следующий:
“Слишком много партиций для одного блока INSERT (partitions_count партиций, предел — ” + toString(max_partitions) + ”).
Этот предел задается настройкой ‘max_partitions_per_insert_block’.
Большое количество партиций — распространенное заблуждение. Это приведет к
серьезному снижению производительности, включая медленный запуск сервера, медленные запросы INSERT
и медленные запросы SELECT. Рекомендуемое общее количество партиций для таблицы —
менее 1000..10000. Обратите внимание, что партиционирование не предназначено для ускорения
запросов SELECT (ключа ORDER BY достаточно, чтобы диапазонные запросы выполнялись быстро).
Партиции предназначены для манипуляций с данными (DROP PARTITION и т. д.).”
Эта настройка является защитным порогом, поскольку использование большого количества партиций — распространенное заблуждение.
max_partitions_to_read
- Положительное целое число
-1— без ограничений (по умолчанию)
Настройку MergeTree
max_partitions_to_read также можно указать в настройках таблицы.max_parts_to_move
max_projection_rows_to_use_projection_index
max_query_size
max_query_size нельзя задать внутри SQL-запроса (например, SELECT now() SETTINGS max_query_size=10000), поскольку ClickHouse должен выделить буфер для разбора запроса, а размер этого буфера определяется настройкой max_query_size, которая должна быть задана до выполнения запроса.max_rand_distribution_parameter
randChiSquared, randStudentT и randFisherF. Это предотвращает чрезмерно долгое время вычислений при экстремальных значениях параметров.
max_rand_distribution_trials
randBinomial и randNegativeBinomial. Это предотвращает чрезмерно долгие вычисления при большом числе испытаний.
max_read_buffer_size
max_read_buffer_size_local_fs
max_read_buffer_size_remote_fs
max_recursive_cte_evaluation_depth
max_remote_read_network_bandwidth
max_remote_write_network_bandwidth
max_replica_delay_for_distributed_queries
- Положительное целое число.
- 0 — отставание реплик не проверяется.
SELECT из distributed таблицы, которая указывает на реплицированные таблицы.
max_result_bytes
max_result_rows
0.
Ограничивает количество строк в результате. Проверяется также для подзапросов и на удалённых серверах при выполнении частей распределённого запроса.
Если значение равно 0, ограничение не применяется.
Запрос остановится после обработки блока данных, если порог достигнут, но
последний блок результата обрезан не будет, поэтому размер результата может
превышать порог.
max_reverse_dictionary_lookup_cache_size_bytes
dictGetKeys. Кэш хранит сериализованные кортежи ключей для каждого значения атрибута, чтобы избежать повторного сканирования словаря в рамках одного и того же запроса. При достижении лимита записи кэша вытесняются по алгоритму LRU. Установите 0, чтобы отключить кэширование.
max_rows_for_lazy_final
max_rows_in_distinct
max_rows_in_join
join_algorithm — описание
поведения для каждого алгоритма (spill, re-partition, switch или
throw/break согласно join_overflow_mode) см. в
этом параметре.
Возможные значения:
- Положительное целое число.
0— Неограниченное количество строк.
max_rows_in_set
max_rows_in_set_to_optimize_join
- 0 — Отключить.
- Любое положительное целое число.
max_rows_to_group_by
throw, но его также можно переключить
в приблизительный режим GROUP BY.
max_rows_to_read
max_rows_to_read_leaf
max_rows_to_read=150, завершится ошибкой, так как всего будет
200 строк. Запрос с max_rows_to_read_leaf=150 выполнится успешно, поскольку листовые узлы
прочитают не более 100 строк.
Ограничение проверяется для каждого обрабатываемого фрагмента данных.
Эта настройка работает нестабильно при
prefer_localhost_replica=1.max_rows_to_sort
sort_overflow_mode, который по умолчанию имеет значение throw.
max_rows_to_transfer
max_sessions_for_user
- Положительное целое число
0— неограниченное число одновременных сеансов (по умолчанию)
max_size_to_preallocate_for_aggregation
max_size_to_preallocate_for_joins
skip_unavailable_shards включен, ограничивает максимальное количество сегментов, которые можно пропустить без ошибки.
Если количество недоступных сегментов превышает это значение, вместо пропуска без ошибки генерируется исключение.
Значение 0 означает отсутствие ограничения (поведение по умолчанию — можно пропустить все недоступные сегменты).
Когда skip_unavailable_shards включен, ограничивает максимальную долю (от 0 до 1) сегментов, которые можно пропустить без уведомления.
Если доля недоступных сегментов от общего числа сегментов превышает это значение, вместо пропуска без уведомления будет сгенерировано исключение.
Значение 0 означает отсутствие ограничения (поведение по умолчанию — можно пропустить все недоступные сегменты).
max_streams_for_files_processing_in_cluster_functions
max_streams_for_merge_tree_reading
max_streams_for_union_step
UNION (применяется как к UNION ALL, так и к UNION DISTINCT, поскольку UNION DISTINCT реализуется как шаг UNION ALL, за которым следует шаг DISTINCT). Когда запрос UNION содержит много подзапросов, все они одновременно открывают свои буферы чтения, из-за чего использование памяти становится пропорциональным количеству подзапросов. Эта настройка добавляет процессоры Concat, чтобы сузить конвейер и гарантировать, что одновременно активно не более указанного числа потоков, что значительно снижает пиковое потребление памяти. Фактическое ограничение — минимум из этого значения и max_threads * max_streams_for_union_step_to_max_threads_ratio (если любое из них равно 0, оно не учитывается). Если оба значения равны 0, сужение не применяется. Ограничение также не применяется, если план запроса требует, чтобы каждый выходной поток UNION оставался отдельно отсортированным (например, когда оптимизация чтения по порядку применяется для UNION); в таком случае приоритет отдаётся корректности порядка, и сужение не выполняется.
max_streams_for_union_step_to_max_threads_ratio
max_threads, задаёт ограничение на число одновременно активных потоков на шаге UNION (применяется как к UNION ALL, так и к UNION DISTINCT). Фактическое ограничение — минимум из этого вычисленного значения и max_streams_for_union_step (если любое из них равно 0, оно игнорируется). Например, при max_threads = 8 и значении этого соотношения 1 одновременно будет активно не более 8 потоков. Установите 0, чтобы отключить это ограничение, зависящее от соотношения. Как и в случае с max_streams_for_union_step, это ограничение не применяется, когда план запроса требует, чтобы каждый выходной поток UNION оставался отсортированным отдельно.
max_streams_multiplier_for_merge_tables
max_streams_to_max_threads_ratio
max_subquery_depth
max_table_size_to_drop
0 означает, что можно удалять любые таблицы без ограничений.
Значение по умолчанию в Cloud: 1 TB.
Эта настройка запроса переопределяет соответствующую настройку сервера, см. max_table_size_to_drop
max_temporary_columns
0 означает отсутствие ограничений.
max_temporary_data_on_disk_size_for_query
- Положительное целое число.
0— без ограничений (по умолчанию)
max_temporary_data_on_disk_size_for_user
- Положительное целое число.
0— не ограничено (по умолчанию)
max_temporary_non_const_columns
max_temporary_columns, это максимальное количество временных столбцов, которые должны
одновременно храниться в оперативной памяти при выполнении запроса, без учета константных
столбцов.
Константные столбцы довольно часто формируются при выполнении запроса, но практически не требуют
вычислительных ресурсов.
max_threads
WHERE и предварительную агрегацию для GROUP BY можно выполнять параллельно как минимум в количестве ‘max_threads’ потоков, то будут использоваться ‘max_threads’.
Для запросов, которые быстро завершаются из-за LIMIT, можно задать меньшее значение ‘max_threads’.
Например, если нужное число записей находится в каждом block и max_threads = 8, то будут считаны 8 blocks, хотя достаточно было бы прочитать только один.
Чем меньше значение max_threads, тем меньше расход памяти.
По умолчанию значение настройки max_threads соответствует числу аппаратных потоков (числу ядер CPU), доступных ClickHouse.
В особом случае для процессоров x86 с менее чем 32 ядрами CPU и SMT (например, Intel HyperThreading) ClickHouse по умолчанию использует число логических ядер (= 2 x число физических ядер).
Без SMT (например, Intel HyperThreading) это соответствует числу ядер CPU.
Для пользователей ClickHouse Cloud значение по умолчанию отображается как auto(N), где N соответствует размеру vCPU вашего сервиса, например 2vCPU/8GiB, 4vCPU/16GiB и т. д.
Список всех размеров сервисов см. на вкладке Settings в консоли Cloud.
max_threads_for_indexes
max_threads_min_free_memory_per_thread
max_threads, когда сервер испытывает нехватку памяти, чтобы не запускать сильно распараллеленные запросы, которые с высокой вероятностью упрутся в лимит памяти.
Свободная память вычисляется как max_server_memory_usage сервера минус память, которая в данный момент учитывается глобальным трекер памяти. Если этой свободной памяти меньше, чем max_threads, умноженное на это значение, max_threads уменьшается до наибольшего N, для которого N * value <= free_memory, при минимальном значении 1.
Установите 0, чтобы отключить это ограничение.
Например, при значении по умолчанию 1 GiB и 32 GiB свободной памяти max_threads ограничивается значением 32; при 1 GiB свободной памяти оно снижается до 1.
Эта настройка применяется к параллелизму на стороне чтения (SELECT, UNION, INTERSECT/EXCEPT и часть SELECT в INSERT ... SELECT). Для стороны записи см. max_insert_threads_min_free_memory_per_thread.
max_untracked_memory
memory_profiler_step, оно фактически будет уменьшено до memory_profiler_step.
max_wkb_geometry_elements
readWKB и связанными с ней функциями. Это защищает от чрезмерного выделения памяти из-за некорректных данных WKB. Установите 0, чтобы использовать жёстко заданный предел (100 миллионов).
memory_overcommit_ratio_denominator
memory_overcommit_ratio_denominator_for_user
memory_profiler_sample_max_allocation_size
memory_profiler_sample_probability. 0 означает, что параметр отключён. Возможно, стоит установить ‘max_untracked_memory’ в 0, чтобы этот порог работал ожидаемым образом.
memory_profiler_sample_min_allocation_size
memory_profiler_sample_probability. 0 означает, что параметр отключен. Чтобы этот порог работал как ожидается, может потребоваться установить max_untracked_memory в 0.
memory_profiler_sample_probability
memory_profiler_sample_min_allocation_size и memory_profiler_sample_max_allocation_size). Обратите внимание, что сэмплирование происходит только тогда, когда объём неотслеживаемой памяти превышает ‘max_untracked_memory’. Для более детализированного сэмплирования можно установить ‘max_untracked_memory’ в 0.
memory_profiler_step
- Положительное целое число байт.
- 0 — чтобы отключить профилировщик памяти.
memory_tracker_fault_probability
exception safety — с указанной вероятностью генерировать исключение при каждом выделении памяти.
memory_usage_overcommit_max_wait_microseconds
merge_table_max_tables_to_look_for_schema_inference
Merge без явной схемы или при использовании табличной функции merge схема выводится как объединение не более чем указанного числа соответствующих таблиц.
Если таблиц больше, схема будет выведена по первым таблицам в пределах указанного количества.
merge_tree_coarse_index_granularity
merge_tree_coarse_index_granularity поддиапазонов и рекурсивно ищет ключи в них.
Возможные значения:
- Любое положительное чётное целое число.
merge_tree_compact_parts_min_granules_to_multibuffer_read
merge_tree_determine_task_size_by_prewhere_columns
merge_tree_max_bytes_to_use_cache
merge_tree_max_bytes_to_use_cache байт, кеш несжатых блоков не используется.
Кеш несжатых блоков хранит данные, извлечённые при выполнении запросов. ClickHouse использует этот кеш, чтобы ускорить обработку повторяющихся небольших запросов. Эта настройка защищает кеш от вытеснения запросами, которые считывают большой объём данных. Размер кеша несжатых блоков задаёт настройка сервера uncompressed_cache_size.
Возможные значения:
- Любое положительное целое число.
merge_tree_max_rows_to_use_cache
merge_tree_max_rows_to_use_cache строк, кэш несжатых блоков не используется.
Кэш несжатых блоков хранит данные, извлечённые для запросов. ClickHouse использует этот кэш, чтобы ускорить обработку повторяющихся небольших запросов. Эта настройка защищает кэш от вытеснения запросами, читающими большие объёмы данных. Размер кэша несжатых блоков задаётся настройкой сервера uncompressed_cache_size.
Возможные значения:
- Любое положительное целое число.
merge_tree_min_bytes_for_concurrent_read
merge_tree_min_bytes_for_concurrent_read, ClickHouse пытается читать этот файл параллельно в нескольких потоках.
Возможное значение:
- Положительное целое число.
merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem
- Положительное целое число.
merge_tree_min_bytes_for_seek
merge_tree_min_bytes_for_seek байт, то ClickHouse последовательно считывает диапазон файла, содержащий оба блока, избегая тем самым дополнительной операции seek.
Возможные значения:
- Любое положительное целое число.
merge_tree_min_bytes_per_task_for_remote_reading
filesystem_prefetch_min_bytes_for_single_read_task
Минимальное количество байт для чтения на одну задачу.
merge_tree_min_read_task_size
merge_tree_min_rows_for_concurrent_read
merge_tree_min_rows_for_concurrent_read, ClickHouse пытается читать этот файл параллельно в нескольких потоках.
Возможные значения:
- Положительное целое число.
merge_tree_min_rows_for_concurrent_read_for_remote_filesystem
- Положительное целое число.
merge_tree_min_rows_for_seek
merge_tree_min_rows_for_seek строк, то ClickHouse не выполняет seek по файлу, а читает данные последовательно.
Возможные значения:
- Любое положительное целое число.
merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability
PartsSplitter — разделять диапазоны чтения на пересекающиеся и непересекающиеся каждый раз при чтении из MergeTree с указанной вероятностью.
merge_tree_storage_snapshot_sleep_ms
- 0 - Без задержки (по умолчанию)
- N - Задержка в миллисекундах
merge_tree_use_const_size_tasks_for_remote_reading
merge_tree_use_deserialization_prefixes_cache
merge_tree_use_prefixes_deserialization_thread_pool
max_prefixes_deserialization_thread_pool_size.
merge_tree_use_v1_object_and_dynamic_serialization
metrics_perf_events_enabled
metrics_perf_events_list
min_bytes_to_use_direct_io
min_bytes_to_use_direct_io байт, ClickHouse читает данные с диска хранилища с опцией O_DIRECT.
Возможные значения:
- 0 — прямой ввод-вывод отключён.
- Положительное целое число.
min_bytes_to_use_mmap_io
- Положительное целое число.
- 0 — большие файлы читаются только с копированием данных из ядра в пространство пользователя.
min_chunk_bytes_for_parallel_parsing
- Тип: unsigned int
- Значение по умолчанию: 1 MiB
min_compress_block_size
min_compress_block_size. По умолчанию — 65 536.
Фактический размер блока, если объём несжатых данных меньше max_compress_block_size, будет не меньше этого значения и не меньше объёма данных для одной отметки.
Рассмотрим пример. Предположим, что при создании таблицы значение index_granularity было установлено в 8192.
Записывается столбец типа UInt32 (4 байта на значение). При записи 8192 строк общий объём составит 32 КБ данных. Поскольку min_compress_block_size = 65,536, сжатый блок будет формироваться на каждые две отметки.
Записывается столбец URL типа String (в среднем 60 байт на значение). При записи 8192 строк средний объём будет чуть меньше 500 КБ данных. Поскольку это больше 65,536, сжатый блок будет формироваться для каждой отметки. В этом случае при чтении данных с диска в пределах одной отметки лишние данные не будут распаковываться.
Это настройка экспертного уровня, и вам не следует её менять, если вы только начинаете работать с ClickHouse.
min_count_to_compile_aggregate_expression
- Положительное целое число.
- 0 — одинаковые агрегатные выражения всегда JIT-компилируются.
min_count_to_compile_expression
min_count_to_compile_sort_description
min_execution_speed
timeout_before_checking_execution_speed.
Если скорость выполнения ниже, генерируется исключение.
min_execution_speed_bytes
timeout_before_checking_execution_speed.
Если скорость выполнения ниже, генерируется исключение.
min_external_table_block_size_bytes
min_external_table_block_size_rows
min_filtered_ratio_for_lazy_final
min_free_disk_bytes_to_perform_insert
min_free_disk_ratio_to_perform_insert
min_free_disk_space_for_temporary_data
min_hit_rate_to_use_consecutive_keys_optimization
min_insert_block_size_bytes
min_insert_block_size_rows и управляет формированием блоков в тех же контекстах (при разборе формата и в операциях INSERT). Подробную информацию о том, когда и как применяются эти параметры, см. в описании min_insert_block_size_rows.
Возможные значения:
- Положительное целое число.
- 0 — параметр не участвует в формировании блоков.
min_insert_block_size_bytes_for_materialized_views
INSERT. Блоки меньшего размера объединяются в более крупные. Эта настройка применяется только к block, вставляемым в materialized view. Настраивая этот параметр, вы управляете объединением block при отправке в materialized view и избегаете чрезмерного использования памяти.
Возможные значения:
- Любое положительное целое число.
- 0 — объединение отключено.
min_insert_block_size_rows
-
Разбор форматов: Когда сервер разбирает построчные форматы ввода (CSV, TSV, JSONEachRow и т. д.) через любой интерфейс (HTTP, clickhouse-client со встроенными данными, gRPC, PostgreSQL wire protocol), блоки формируются, когда:
- Достигнуты оба значения min_insert_block_size_rows AND min_insert_block_size_bytes, OR
- Достигнуто либо значение max_insert_block_size_rows OR max_insert_block_size_bytes
-
Операции INSERT: Во время запросов INSERT и когда данные проходят через materialized view, поведение этого параметра зависит от
use_strict_insert_block_limits:-
Когда включен: Блоки формируются, когда:
- Минимальные пороги (AND): достигнуты оба значения min_insert_block_size_rows AND min_insert_block_size_bytes
- Максимальные пороги (OR): достигнуто либо значение max_insert_block_size_rows OR max_insert_block_size_bytes
- Когда отключен (по умолчанию): Блоки формируются, когда достигнуто min_insert_block_size_rows OR min_insert_block_size_bytes. Параметры max_insert_block_size не применяются.
-
Когда включен: Блоки формируются, когда:
- Положительное целое число.
- 0 — параметр не участвует в формировании блоков.
min_insert_block_size_rows_for_materialized_views
INSERT. Блоки меньшего размера объединяются в более крупные. Эта настройка применяется только к блокам, вставляемым в materialized view. Изменяя эту настройку, вы управляете объединением блоков при записи в materialized view и избегаете чрезмерного использования памяти.
Возможные значения:
- Любое положительное целое число.
- 0 — объединение отключено.
min_joined_block_size_bytes
min_joined_block_size_rows
min_os_cpu_wait_time_ratio_to_throw
min_outstreams_per_resize_after_split
Resize или StrictResize после выполнения разделения при генерации конвейера. Если итоговое количество потоков меньше этого значения, операция разделения не выполняется.
Что такое узел Resize
Resize — это процессор в конвейере запроса, который изменяет количество потоков данных, проходящих через конвейер. Он может как увеличивать, так и уменьшать число потоков, чтобы сбалансировать рабочую нагрузку между несколькими потоками выполнения или процессорами. Например, если запросу требуется больший параллелизм, узел Resize может разделить один поток на несколько. И наоборот, он может объединить несколько потоков в меньшее число, чтобы укрупнить обработку данных.
Узел Resize обеспечивает равномерное распределение данных между потоками, сохраняя структуру блоков данных. Это помогает оптимизировать использование ресурсов и повысить производительность запроса.
Почему узел Resize нужно разделить
ExecutingGraph::Node::status_mutex центрального узла Resize возникает высокая конкуренция, особенно в средах с большим числом ядер. Это приводит к следующему:
- Растёт задержка при выполнении ExecutingGraph::updateNode, что напрямую влияет на производительность запросов.
- Избыточные такты CPU тратятся на конкуренцию за spin-lock (
native_queued_spin_lock_slowpath), что снижает эффективность. - Снижается загрузка CPU, что ограничивает параллелизм и пропускную способность.
Как разделяется узел Resize
- Проверяется количество выходных потоков, чтобы убедиться, что разделение возможно: число выходных потоков у каждого процессора после разделения соответствует пороговому значению
min_outstreams_per_resize_after_splitили превышает его. - Узел
Resizeделится на более мелкие узлыResizeс одинаковым количеством портов, каждый из которых обрабатывает часть входных и выходных потоков. - Каждая группа обрабатывается независимо, что уменьшает конкуренцию за блокировку.
Разбиение узла Resize с произвольным числом входов/выходов
Resize, на которые выполняется разбиение, часть входов подключается к NullSource, а часть выходов — к NullSink. Это позволяет выполнить разбиение без влияния на общий поток данных.
Назначение настройки
min_outstreams_per_resize_after_split гарантирует, что разделение узлов Resize будет оправданным и не приведет к созданию слишком малого числа потоков, что может снизить эффективность параллельной обработки. Задавая минимальное количество выходных потоков, эта настройка помогает поддерживать баланс между параллелизмом и накладными расходами, оптимизируя выполнение запроса в сценариях, где используются разделение и слияние потоков.
Отключение настройки
Resize, установите для этой настройки значение 0. Это предотвратит разделение узлов Resize при генерации конвейера, позволяя им сохранять исходную структуру без деления на более мелкие узлы.
min_table_rows_to_use_projection_index
mongodb_throw_on_unsupported_query
move_all_conditions_to_prewhere
move_primary_key_columns_to_end_of_prewhere
multiple_joins_try_to_keep_original_names
mutations_execute_nondeterministic_on_initiator
true, константные недетерминированные функции (например, now()) выполняются на инициаторе и заменяются литералами в запросах UPDATE и DELETE. Это помогает сохранять синхронизацию данных между репликами при выполнении мутаций с константными недетерминированными функциями. Значение по умолчанию: false.
mutations_execute_subqueries_on_initiator
true, скалярные подзапросы выполняются на узле-инициаторе и заменяются литеральными значениями в запросах UPDATE и DELETE. Значение по умолчанию: false.
mutations_max_literal_size_to_replace
UPDATE и DELETE. Действует только при включении хотя бы одной из двух настроек выше. Значение по умолчанию: 16384 (16 KiB).
mutations_sync
ALTER TABLE ... UPDATE|DELETE|MATERIALIZE INDEX|MATERIALIZE PROJECTION|MATERIALIZE COLUMN|MATERIALIZE STATISTICS (мутации) синхронно.
Возможные значения:
| Значение | Описание |
|---|---|
0 | Мутации выполняются асинхронно. |
1 | Запрос ожидает завершения всех мутаций на текущем сервере. |
2 | Запрос ожидает завершения всех мутаций на всех репликах (если они есть). |
3 | Запрос ожидает завершения мутаций только на активных репликах. Поддерживается только для SharedMergeTree. Для ReplicatedMergeTree ведет себя так же, как mutations_sync = 2. |
mysql_datatypes_support_level
decimal, datetime64, date2Date32 или date2String. Все современные сопоставления (decimal, datetime64, date2Date32) включены по умолчанию.
decimal: преобразовывать типыNUMERICиDECIMALвDecimal, если это позволяет precision.datetime64: преобразовывать типыDATETIMEиTIMESTAMPвDateTime64вместоDateTime, если precision не равна0.date2Date32: преобразовыватьDATEвDate32вместоDate. Имеет приоритет надdate2String.date2String: преобразовыватьDATEвStringвместоDate. Переопределяется параметромdatetime64.
mysql_map_fixed_string_to_text_in_show_columns
TEXT в команде SHOW COLUMNS.
Действует только при подключении через протокол MySQL.
- 0 - Использовать
BLOB. - 1 - Использовать
TEXT.
mysql_map_string_to_text_in_show_columns
TEXT в SHOW COLUMNS.
Действует только при подключении через протокол MySQL.
- 0 - Использовать
BLOB. - 1 - Использовать
TEXT.
mysql_max_rows_to_insert
network_compression_method
NONE— без сжатия.LZ4— использовать кодек LZ4.LZ4HC— использовать кодек LZ4HC.ZSTD— использовать кодек ZSTD.
network_zstd_compression_level
ZSTD.
Возможные значения:
- Положительное целое число от 1 до 15.
normalize_function_names
number_of_mutations_to_delay
number_of_mutations_to_throw
odbc_bridge_connection_pool_size
odbc_bridge_use_connection_pooling
offset
- 0 — строки не пропускаются.
- Положительное целое число.
opentelemetry_start_keeper_trace_probability
- ‘auto’ - Эквивалентно настройке opentelemetry_start_trace_probability
- 0 — Трассировка отключена
- от 0 до 1 — Вероятность (например, 1.0 = всегда включена)
opentelemetry_start_trace_probability
- 0 — трассировка для всех выполняемых запросов отключена (если не передан родительский контекст трассировки).
- Положительное число с плавающей точкой в диапазоне [0..1]. Например, если значение настройки равно
0,5, ClickHouse в среднем может начать трассировку для половины запросов. - 1 — трассировка для всех выполняемых запросов включена.
opentelemetry_trace_cpu_scheduling
opentelemetry_trace_processors
optimize_aggregation_in_order
- 0 — оптимизация
GROUP BYотключена. - 1 — оптимизация
GROUP BYвключена.
optimize_aggregators_of_group_by_keys
optimize_and_compare_chain
<, <=, >, >=, = и их сочетания. Например, (a < b) AND (b < c) AND (c < 5) будет преобразовано в (a < b) AND (b < c) AND (c < 5) AND (b < 5) AND (a < 5).
optimize_append_index
false.
Возможные значения:
- true, false
optimize_arithmetic_operations_in_aggregate_functions
optimize_const_name_size
- положительное целое число — максимальная длина имени,
- 0 — всегда,
- отрицательное целое число — никогда.
optimize_count_from_files
file/s3/url/hdfs/azureBlobStorage.
Возможные значения:
- 0 — Оптимизация отключена.
- 1 — Оптимизация включена.
optimize_dictget_tuple_element
tupleElement(dictGet('dict', ('a', 'b', 'c'), key), 2) в dictGet('dict', 'b', key), чтобы избежать извлечения ненужных атрибутов словаря. Поддерживает позиционный (.1, .2, …) и именованный (.b) доступ, а также применяется к dictGetOrDefault, когда аргумент значения по умолчанию представляет собой константный кортеж или tuple(...) из констант.
optimize_distinct_in_order
optimize_distributed_group_by_sharding_key
GROUP BY sharding_key, избегая затратной агрегации на сервере-инициаторе (что снижает использование памяти запросом на сервере-инициаторе).
Поддерживаются следующие типы запросов (а также любые их комбинации):
SELECT DISTINCT [..., ]sharding_key[, ...] FROM distSELECT ... FROM dist GROUP BY sharding_key[, ...]SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY xSELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x
SELECT ... GROUP BY sharding_key[, ...] WITH TOTALSSELECT ... GROUP BY sharding_key[, ...] WITH ROLLUPSELECT ... GROUP BY sharding_key[, ...] WITH CUBESELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1
- 0 — Отключено.
- 1 — Включено.
Сейчас для этого требуется
optimize_skip_unused_shards (это связано с тем, что в будущем данная настройка может быть включена по умолчанию, и она будет корректно работать, только если данные были вставлены через distributed таблицу, то есть распределены в соответствии с sharding_key).optimize_dry_run_check_part
OPTIMIZE ... DRY RUN проверяет итоговую слитую часть с помощью checkDataPart. Если проверка не проходит, генерируется исключение.
optimize_empty_string_comparisons
optimize_extract_common_expressions
(A AND B) OR (A AND C) можно переписать как A AND (B OR C), что может помочь задействовать:
- индексы в простых выражениях фильтрации
- оптимизацию преобразования CROSS JOIN в INNER JOIN
optimize_functions_to_subcolumns
- length для чтения подстолбца size0.
- empty для чтения подстолбца size0.
- notEmpty для чтения подстолбца size0.
- isNull для чтения подстолбца null.
- isNotNull для чтения подстолбца null.
- count для чтения подстолбца null.
- mapKeys для чтения подстолбца keys.
- mapValues для чтения подстолбца values.
- 0 — Оптимизация отключена.
- 1 — Оптимизация включена.
optimize_group_by_constant_keys
optimize_group_by_function_keys
optimize_if_chain_to_multiif
optimize_if_transform_strings_to_enum
optimize_injective_functions_in_group_by
optimize_injective_functions_in_limit_by
LIMIT 5 BY toString(x) становится LIMIT 5 BY x.
optimize_injective_functions_inside_uniq
optimize_inverse_dictionary_lookup
optimize_limit_by_function_keys
LIMIT 5 BY x, f(x) становится LIMIT 5 BY x.
optimize_limit_by_in_order
SELECT ... LIMIT N BY <cols>, когда <cols> (в любом порядке) образуют префикс ключа сортировки таблицы либо становятся им после того, как условие WHERE col = const фиксирует начальные столбцы. Когда эта настройка включена, источник читает данные в порядке первичного ключа, поэтому строки с одинаковыми значениями в столбцах BY поступают подряд в пределах каждого потока. Если данные поступают одним отсортированным потоком, LIMIT BY фильтрует их в потоковом режиме с памятью O(1) вместо построения хеш-таблицы для всех встреченных уникальных комбинаций столбцов BY. Если отсортированные данные поступают в нескольких потоках и одни и те же значения BY могут встречаться более чем в одном из них, каждый поток сначала предварительно фильтруется в потоковом режиме до максимум LIMIT + OFFSET строк на группу, затем потоки объединяются, и завершающий LIMIT BY на основе хеша выполняет дедупликацию групп, охватывающих несколько потоков. На этом завершающем этапе по-прежнему хранится запись для каждой уникальной комбинации столбцов BY, но обрабатываются только предварительно отфильтрованные строки.
optimize_min_equality_disjunction_chain_length
expr = x1 OR ... expr = xN для оптимизаци
optimize_min_inequality_conjunction_chain_length
expr <> x1 AND ... expr <> xN для оптимизаци
optimize_move_to_prewhere
- 0 — автоматическая оптимизация
PREWHEREотключена. - 1 — автоматическая оптимизация
PREWHEREвключена.
optimize_move_to_prewhere_if_final
- 0 — Автоматическая оптимизация
PREWHEREв запросахSELECTс модификаторомFINALотключена. - 1 — Автоматическая оптимизация
PREWHEREв запросахSELECTс модификаторомFINALвключена.
- настройка optimize_move_to_prewhere
optimize_multiif_to_if
optimize_normalize_count_variants
optimize_on_insert
- 0 — Отключено.
- 1 — Включено.
optimize_or_like_chain
optimize_prewhere_after_pushdown
PREWHERE после того, как более поздние оптимизации плана запроса могли
добавить дополнительные фильтры над шагом чтения MergeTree (например, pushdown предикатов через
JOIN, переписывание projection). Если PREWHERE уже существует, новый
фильтр объединяется с ним через AND вместо того, чтобы оставаться отдельным шагом фильтрации.
optimize_qbit_distance_function_reads
QBit на эквивалентные, которые считывают из хранилища только столбцы, необходимые для вычисления.
optimize_read_in_order
- 0 — оптимизация
ORDER BYотключена. - 1 — оптимизация
ORDER BYвключена.
optimize_redundant_functions_in_order_by
optimize_respect_aliases
optimize_rewrite_aggregate_function_with_if
if, если они логически эквивалентны.
Например, avg(if(cond, col, null)) можно переписать как avgOrNullIf(cond, col). Это может повысить производительность.
Поддерживается только при использовании анализатора (
enable_analyzer = 1).optimize_rewrite_array_exists_to_has
optimize_rewrite_has_to_in
has в IN, если первый аргумент — константный массив. Например, has([1, 2, 3], x) можно переписать как x IN [1, 2, 3], что повышает производительность при работе с константными массивами
optimize_rewrite_like_perfect_affix
col LIKE 'ClickHouse%') в вызовы функций startsWith или endsWith (например, startsWith(col, 'ClickHouse')).
optimize_rewrite_regexp_functions
optimize_rewrite_sum_if_to_count_if
optimize_skip_merged_partitions
level > 0 и срок TTL для неё не истёк.
OPTIMIZE TABLE ... FINAL SETTINGS optimize_skip_merged_partitions=1
OPTIMIZE TABLE ... FINAL переписывает эту часть, даже если она единственная.
Возможные значения:
- 1 - Включить оптимизацию.
- 0 - Отключить оптимизацию.
optimize_skip_unused_shards
WHERE/PREWHERE, а также активирует связанные оптимизации для распределённых запросов (например, агрегацию по ключу сегментирования).
Предполагается, что данные распределены по ключу сегментирования, иначе запрос вернёт некорректный результат.
- 0 — Отключено.
- 1 — Включено.
optimize_skip_unused_shards_limit
optimize_skip_unused_shards отключается.
Слишком большое количество значений может потребовать значительных ресурсов на обработку, при этом польза от этого сомнительна, поскольку, если в IN (...) у вас очень много значений, то, скорее всего, запрос всё равно будет отправлен во все сегменты.
optimize_skip_unused_shards_nesting
optimize_skip_unused_shards (и потому по-прежнему требует optimize_skip_unused_shards); это относится к случаю, когда таблица Distributed обращается к другой таблице Distributed.
Возможные значения:
- 0 — Отключено,
optimize_skip_unused_shardsработает всегда. - 1 — Включает
optimize_skip_unused_shardsтолько для первого уровня. - 2 — Включает
optimize_skip_unused_shardsдо второго уровня.
optimize_skip_unused_shards_rewrite_in
IN в запросе для удалённых сегментов, чтобы исключить значения, которые не относятся к сегменту (требуется optimize_skip_unused_shards).
Возможные значения:
- 0 — Отключено.
- 1 — Включено.
optimize_sorting_by_input_stream_properties
optimize_substitute_columns
false.
Возможные значения:
- true, false
optimize_syntax_fuse_functions
- 0 — Функции с одинаковым аргументом не объединяются.
- 1 — Функции с одинаковым аргументом объединяются.
optimize_throw_if_noop
OPTIMIZE успешно завершается, даже если фактически ничего не сделал. Этот параметр позволяет различать такие ситуации и получать причину в сообщении об исключении.
Возможные значения:
- 1 — генерация исключения включена.
- 0 — генерация исключения отключена.
optimize_time_filter_with_preimage
toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31')
optimize_trivial_approximate_count_query
- 0 — Оптимизация отключена.
- 1 — Оптимизация включена.
optimize_trivial_count_query
SELECT count() FROM table с использованием метаданных MergeTree. Если вам требуется безопасность на уровне строк, отключите эту настройку.
Возможные значения:
- 0 — оптимизация отключена.
- 1 — оптимизация включена.
optimize_trivial_group_by_limit_query
SELECT key_expr FROM table GROUP BY key_expr LIMIT n (без агрегатных функций в списке SELECT, без секций HAVING/ORDER BY/LIMIT BY/window и без модификаторов GROUP BY) за счет установки max_rows_to_group_by = n + offset и group_by_overflow_mode = 'any'. Агрегация останавливается, как только будет получено n + offset различных ключей.
Оптимизация не применяется, если пользователь явно установил для group_by_overflow_mode значение, отличное от any (чтобы сохранить явно заданную семантику throw/break), а также если пользователь уже задал более жесткое значение max_rows_to_group_by (в этом случае оптимизация ничего не меняет).
Возможные значения:
- 0 — Оптимизация отключена.
- 1 — Оптимизация включена.
optimize_trivial_insert_select
optimize_truncate_order_by_after_group_by_keys
optimize_uniq_to_count
uniq и его варианты (кроме uniqUpTo) в count, если подзапрос содержит DISTINCT или секцию GROUP BY.
optimize_use_implicit_projections
optimize_use_projection_filtering
optimize_use_projections
allow_experimental_projection_optimization
Включает или отключает оптимизацию проекций при выполнении запросов SELECT.
Возможные значения:
- 0 — оптимизация проекций отключена.
- 1 — оптимизация проекций включена.
optimize_using_constraints
false.
Возможные значения:
- true, false
os_threads_nice_value_materialized_view
os_threads_nice_value_query
os_thread_priority
Значение nice в Linux для потоков обработки запросов. Чем меньше значение, тем выше приоритет CPU.
Требуется capability CAP_SYS_NICE, иначе настройка не имеет эффекта.
Возможные значения: от -20 до 19.
page_cache_block_size
page_cache_inject_eviction
page_cache_lookahead_blocks
page_cache_max_coalesced_bytes
readBigAt заполняет кэш страниц в пространстве пользователя, последовательные промахи кэша объединяются в одно чтение из нижележащего хранилища. Эта настройка ограничивает размер одного такого объединённого чтения в байтах; более длинные последовательности промахов разбиваются на несколько чтений. Она ограничивает пиковое кратковременное использование памяти временным буфером при параллельных холодных чтениях.
Большее значение уменьшает число HTTP-запросов при холодном сканировании Объектного хранилища; меньшее — снижает пиковое кратковременное использование памяти.
paimon_target_snapshot_id
parallel_distributed_insert_select
INSERT ... SELECT.
Если выполняется запрос INSERT INTO distributed_table_a SELECT ... FROM distributed_table_b, обе таблицы используют один и тот же кластер, и обе таблицы либо реплицируемые, либо нереплицируемые, то такой запрос обрабатывается локально на каждом сегменте.
Возможные значения:
0— Отключено.1—SELECTбудет выполняться на каждом сегменте из базовой таблицы движка Distributed.2—SELECTиINSERTбудут выполняться на каждом сегменте из/в базовую таблицу движка Distributed.
INSERT ... SELECT из источника ReplicatedMergeTree или SharedMergeTree также можно распараллелить между репликами. Чтобы включить это:
parallel_distributed_insert_select = 2enable_parallel_replicas = 1
parallel_hash_join_threshold
hash и parallel_hash (только если доступна оценка размера правой таблицы).
Первый используется, когда известно, что размер правой таблицы меньше порога.
parallel_non_joined_rows_processing
parallel_hash с большими таблицами.
Если настройка отключена, такие строки обрабатываются одним потоком.
parallel_replica_offset
parallel_replicas_allow_in_with_subquery
parallel_replicas_allow_materialized_views
parallel_replicas_allow_view_over_mergetree
MergeTree (вместо внутреннего запроса представления), что улучшает распараллеливание между узлами. Также применяется к представлениям UNION ALL, все ветви которых читают из разных таблиц MergeTree.
parallel_replicas_connect_timeout_ms
parallel_replicas_count
parallel_replicas_custom_key
SAMPLE: будут использоваться несколько реплик каждого сегмента.
parallel_replicas_custom_key_range_lower
range равномерно распределять работу между репликами в пределах пользовательского диапазона [parallel_replicas_custom_key_range_lower, INT_MAX].
При совместном использовании с parallel_replicas_custom_key_range_upper позволяет фильтру равномерно распределять работу между репликами в диапазоне [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper].
Примечание: эта настройка не приводит к дополнительной фильтрации данных при обработке запроса, а лишь изменяет точки, в которых фильтр диапазона разбивает диапазон [0, INT_MAX] для параллельной обработки.
parallel_replicas_custom_key_range_upper
range равномерно распределять работу между репликами на основе пользовательского диапазона [0, parallel_replicas_custom_key_range_upper]. Значение 0 отключает верхнюю границу, устанавливая её равной максимальному значению выражения пользовательского ключа.
При использовании вместе с parallel_replicas_custom_key_range_lower эта настройка позволяет фильтру равномерно распределять работу между репликами для диапазона [parallel_replicas_custom_key_range_lower, parallel_replicas_custom_key_range_upper].
Примечание: эта настройка не приводит к дополнительной фильтрации данных при обработке запроса, а лишь изменяет точки, в которых фильтр диапазона разбивает диапазон [0, INT_MAX] для параллельной обработки
parallel_replicas_filter_pushdown
parallel_replicas_for_cluster_engines
parallel_replicas_for_non_replicated_merge_tree
parallel_replicas_index_analysis_only_on_coordinator
parallel_replicas_insert_select_local_pipeline
parallel_replicas_local_plan
parallel_replicas_mark_segment_size
parallel_replicas_min_number_of_rows_per_replica
parallel_replicas_mode
parallel_replicas_only_with_analyzer
parallel_replicas_prefer_local_join
parallel_replicas_prefer_local_replica
max_parallel_replicas = 1 на другой хост, что может улучшить локальность кэша, когда множество коротких запросов распределено по кластеру.
parallel_replicas_support_projection
parallel_view_processing
parallelize_output_from_storages
parsedatetime_e_requires_space_padding
parsedatetime_parse_without_leading_zeros
%c, %l и %k в функции parseDateTime позволяют разбирать месяцы и часы без ведущих нулей.
partial_merge_join_left_table_buffer_bytes
partial_merge_join_rows_in_right_blocks
- Разбивает данные правой части JOIN на блоки, содержащие не более указанного числа строк.
- Индексирует каждый блок по минимальному и максимальному значениям.
- Выгружает подготовленные блоки на диск, если это возможно.
- Любое положительное целое число. Рекомендуемый диапазон значений: [1000, 100000].
partial_result_on_first_cancel
parts_to_delay_insert
parts_to_throw_insert
per_part_index_stats
poll_interval
polyglot_dialect
postgresql_connection_attempt_timeout
connect_timeout в URL подключения.
postgresql_connection_pool_auto_close_connection
postgresql_connection_pool_retries
postgresql_connection_pool_size
postgresql_connection_pool_wait_timeout
postgresql_fault_injection_probability
predicate_statistics_sample_rate
system.predicate_statistics_log. Если задано значение N > 0, в выборку попадает примерно 1/N запросов (по Query id). Значение 0 отключает сбор.
prefer_column_name_to_alias
- 0 — Имя столбца заменяется псевдонимом.
- 1 — Имя столбца не заменяется псевдонимом.
prefer_external_sort_block_bytes
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.
SET distributed_product_mode=global может изменить поведение запросов для distributed таблиц, он не подходит для локальных таблиц или таблиц из внешних источников. Именно для таких случаев предназначена настройка prefer_global_in_and_join.
Например, есть узлы, обслуживающие запросы и содержащие локальные таблицы, которые не подходят для распределения. В этом случае их данные нужно распределять на лету в рамках распределённой обработки с помощью ключевого слова GLOBAL — GLOBAL IN/GLOBAL JOIN.
Ещё один сценарий использования prefer_global_in_and_join — доступ к таблицам, созданным внешними движками. Эта настройка помогает сократить количество обращений к внешним источникам при JOIN таких таблиц: только один вызов на запрос.
См. также:
- Распределённые подзапросы — подробнее об использовании
GLOBAL IN/GLOBAL JOIN
prefer_localhost_replica
- 1 — ClickHouse всегда отправляет запрос на реплику localhost, если она существует.
- 0 — ClickHouse использует стратегию балансировки, заданную настройкой load_balancing.
Отключите эту настройку, если используете max_parallel_replicas без parallel_replicas_custom_key.
Если задан parallel_replicas_custom_key, отключайте эту настройку только в том случае, если она используется в кластере с несколькими сегментами, содержащими несколько реплик.
Если она используется в кластере с одним сегментом и несколькими репликами, отключение этой настройки приведёт к негативным последствиям.
prefer_warmed_unmerged_parts_seconds
preferred_block_size_bytes
max_block_size. Если столбцы большие и при max_block_size строк размер блока, скорее всего, превысит указанное количество байт, размер блока будет уменьшен для лучшей локальности кэша процессора.
preferred_max_column_in_block_size_bytes
preferred_optimize_projection_name
- string: имя предпочтительной проекции
prefetch_buffer_size
print_pretty_type_names
DESCRIBE и функции toTypeName().
Пример:
priority
promql_database
promql_evaluation_time
evaluation_time
Задаёт время оценки для диалекта promql. auto означает текущее время.
promql_table
push_external_roles_in_interserver_queries
query_cache_compress_entries
- 0 - Отключено
- 1 - Включено
query_cache_for_subqueries
use_query_cache на все подзапросы.
Возможные значения:
- 0 - Отключено
- 1 - Включено
query_cache_max_entries
- Целое число >= 0.
query_cache_max_size_in_bytes
- Целое число >= 0.
query_cache_min_query_duration
- Положительное целое число >= 0.
query_cache_min_query_runs
SELECT-запроса, после которого его результат сохраняется в кэше запросов.
Возможные значения:
- Целое число >= 0.
query_cache_nondeterministic_function_handling
SELECT с недетерминированными функциями, такими как rand() или now().
Возможные значения:
'throw'— сгенерировать исключение и не кэшировать результат запроса.'save'— кэшировать результат запроса.'ignore'— не кэшировать результат запроса и не генерировать исключение.
SELECT-запросов, кэшированные в query cache.
Не рекомендуется включать этот параметр из соображений безопасности.
Возможные значения:
- 0 - Отключено
- 1 - Включено
query_cache_squash_partial_results
- 0 - Отключено
- 1 - Включено
query_cache_system_table_handling
SELECT к системным таблицам, то есть к таблицам в базах данных system.* и information_schema.*.
Возможные значения:
'throw'- сгенерировать исключение и не кэшировать результат запроса.'save'- кэшировать результат запроса.'ignore'- не кэшировать результат запроса и не генерировать исключение.
query_cache_tag
- Любая строка
query_cache_ttl
- Положительное целое число >= 0.
query_metric_log_interval
collect_interval_milliseconds из настройки query_metric_log, а если оно отсутствует, по умолчанию используется 1000.
Чтобы отключить сбор метрик для отдельного запроса, установите query_metric_log_interval в 0.
Значение по умолчанию: -1
query_plan_aggregation_in_order
query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем настройка может измениться обратно несовместимым образом или быть удалена.
- 0 - Отключить
- 1 - Включить
query_plan_convert_any_join_to_semi_or_anti_join
query_plan_convert_join_to_in
JOIN в подзапрос с IN, если выходные столбцы относятся только к левой таблице. Может приводить к неверным результатам для JOIN, отличных от ANY (например, ALL JOIN, который используется по умолчанию).
query_plan_convert_outer_join_to_inner_join
OUTER JOIN в INNER JOIN, если фильтр после JOIN всегда исключает значения по умолчанию
query_plan_direct_read_from_text_index
query_plan_display_internal_aliases
query_plan_enable_multithreading_after_window_functions
query_plan_enable_optimizations
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем она может измениться обратно несовместимым образом или быть удалена.
- 0 - Отключить все оптимизации на уровне плана запроса
- 1 - Включить оптимизации на уровне плана запроса (при этом отдельные оптимизации всё равно могут быть отключены через их собственные настройки)
query_plan_execute_functions_after_sorting
query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем она может измениться с нарушением обратной совместимости или быть удалена.
- 0 - Отключено
- 1 - Включено
query_plan_filter_push_down
Это экспертная настройка, которую разработчикам следует использовать только для отладки. В будущем она может измениться несовместимым с предыдущими версиями образом или быть удалена.
- 0 - Отключить
- 1 - Включить
query_plan_join_shard_by_pk_ranges
query_plan_join_swap_table
ALL с условием JOIN ON. Возможные значения:
- ‘auto’: Позволяет planner определить, какую таблицу использовать в качестве build-таблицы.
- ‘false’: Никогда не менять таблицы местами (build-таблица — правая таблица).
- ‘true’: Всегда менять таблицы местами (build-таблица — левая таблица).
query_plan_lift_up_array_join
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем она может измениться несовместимым с предыдущими версиями образом или быть удалена.
- 0 - Отключить
- 1 - Включить
query_plan_lift_up_union
query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем она может измениться обратно несовместимым образом или быть удалена.
- 0 - Отключить
- 1 - Включить
query_plan_max_limit_for_join_lazy_indexing
query_plan_max_limit_for_lazy_materialization
query_plan_max_limit_for_top_k_optimization
query_plan_max_optimizations_to_apply
Это настройка экспертного уровня, и использовать её для отладки следует только разработчикам. В будущем настройка может измениться несовместимым с предыдущими версиями образом или быть удалена.
query_plan_max_set_size_for_projection_match
IN, при котором сопоставитель проекций вычисляет и сравнивает хеши содержимого, чтобы определить, равны ли два множества. Множества, размер которых превышает это значение, считаются несовпадающими, и проекция для них не используется. Ноль полностью отключает сравнение хешей содержимого: сопоставление проекций никогда не бывает успешным для узлов, содержащих множества в секциях IN.
Используется сопоставителем агрегирующей проекции (и любым будущим сопоставителем проекций, которому потребуется сравнивать множества в секциях IN). Вычисление хеша содержимого имеет сложность O(N log N) по числу элементов множества; эта настройка ограничивает затраты на этапе планирования, когда в запросе или проекции присутствует много секций IN.
query_plan_max_step_description_length
query_plan_merge_expressions
Это экспертная настройка, которую разработчикам следует использовать только для отладки. В будущем она может измениться несовместимым с предыдущими версиями образом или быть удалена.
- 0 - Отключить
- 1 - Включить
query_plan_merge_filter_into_join_condition
JOIN и преобразовывать CROSS JOIN в INNER.
query_plan_merge_filters
query_plan_min_columns_for_join_lazy_indexing
query_plan_optimize_join_order_algorithm
greedy— базовый жадный алгоритм: работает быстро, но может не обеспечить наилучший порядок JOINdpsize— реализует алгоритм DPsize, в настоящее время только для Inner JOIN, — перебирает все возможные порядки JOIN и находит оптимальный, но может работать медленно для запросов с большим количеством таблиц и предикатов JOINdphyp— реализует алгоритм DPhyp (Dynamic Programming via Hypergraph Partitioning), в настоящее время только для inner JOIN, — исследует то же пространство поиска, что иdpsize, но перебирает только пары связанных подграфов, что даёт меньше промежуточных JOIN в разреженных графах JOIN, но ценой того, что декартовы произведения не рассматриваются Можно указать несколько алгоритмов в виде списка, разделённого запятыми, напримерdphyp,greedy. Они применяются по порядку; если алгоритм не может обработать запрос (например, из-за outer JOIN или несвязанных компонентов), в качестве резервного варианта используется следующий.
query_plan_optimize_join_order_limit
query_plan_optimize_join_order_max_searched_plans
query_plan_optimize_join_order_algorithm.
Это детерминированно ограничивает время оптимизации (независимо от реального времени) на плотных графах JOIN, таких как клики или звезды, где пространство поиска растет экспоненциально.
Установите 0, чтобы отключить ограничение. Не влияет на значение по умолчанию query_plan_optimize_join_order_limit, при котором поиск всегда остается значительно ниже этого предела.
query_plan_optimize_join_order_randomize
query_plan_optimize_lazy_final
query_plan_optimize_lazy_materialization
query_plan_optimize_prewhere
query_plan_push_down_limit
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем настройка может измениться несовместимым с предыдущими версиями образом или быть удалена.
- 0 - Отключить
- 1 - Включить
query_plan_push_limit_by_into_sort
ORDER BY ... LIMIT BY. Когда столбцы LIMIT BY являются префиксом предложения ORDER BY, каждый параллельный отсортированный поток применяет LIMIT BY до слияния потоков в один, что уменьшает число строк, обрабатываемых на этапе окончательного слияния и последующих этапах конвейера. Ускоряет запросы, в которых LIMIT BY отбрасывает значительную часть строк.
Действует только если значение настройки query_plan_enable_optimizations равно 1.
Возможные значения:
- 0 - Отключить
- 1 - Включить
query_plan_read_in_order
query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем она может измениться несовместимым с предыдущими версиями образом или быть удалена.
- 0 - Отключить
- 1 - Включить
query_plan_read_in_order_through_join
query_plan_remove_redundant_distinct
query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем она может измениться обратно несовместимым образом или быть удалена.
- 0 - Отключить
- 1 - Включить
query_plan_remove_redundant_sorting
query_plan_enable_optimizations равно 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем она может измениться несовместимым с предыдущими версиями образом или быть удалена.
- 0 - Отключить
- 1 - Включить
query_plan_remove_unused_columns
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем эта настройка может измениться несовместимым с предыдущими версиями образом или быть удалена.
- 0 - Отключить
- 1 - Включить
query_plan_reuse_storage_ordering_for_window_functions
optimize_read_in_window_order
Включает или отключает оптимизацию на уровне плана запроса, которая использует порядок сортировки в хранилище при сортировке для оконных функций.
Имеет эффект только при значении 1 для настройки query_plan_enable_optimizations.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем эта настройка может измениться обратно несовместимым образом или быть удалена.
- 0 - Отключено
- 1 - Включено
query_plan_split_filter
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем она может измениться несовместимым с предыдущими версиями образом или быть удалена.
- 0 - Отключено
- 1 - Включено
query_plan_text_index_add_hint
query_plan_top_k_through_join
ORDER BY ... LIMIT n через JOIN, если ключ сортировки ссылается только на столбцы сохраняемой стороны JOIN (LEFT/RIGHT). Ограничивает количество строк, которое должен вернуть вход сохраняемой стороны до выполнения JOIN.
Действует только при значении 1 для настройки query_plan_enable_optimizations.
Возможные значения:
- 0 - Отключить
- 1 - Включить
query_plan_try_use_vector_search
query_plan_enable_optimizations установлено значение 1.
Это настройка экспертного уровня, которую разработчикам следует использовать только для отладки. В будущем она может измениться несовместимым с предыдущими версиями образом или быть удалена.
- 0 - Отключить
- 1 - Включить
query_profiler_cpu_time_period_ns
-
Положительное целое число наносекунд.
Рекомендуемые значения:
- 10000000 (100 раз в секунду) наносекунд и более для отдельных запросов.
- 1000000000 (один раз в секунду) для профилирования в масштабе всего cluster.
- 0, чтобы отключить таймер.
- Системная таблица trace_log
query_profiler_real_time_period_ns
-
Положительное целое число в наносекундах.
Рекомендуемые значения:
- 10000000 (100 раз в секунду) наносекунд и меньше для отдельных запросов.
- 1000000000 (один раз в секунду) для профилирования всего кластера.
- 0 для отключения таймера.
- Системная таблица trace_log
3000000000.
queue_max_wait_ms
rabbitmq_max_wait_ms
read_backoff_max_throughput
read_backoff_min_concurrency
read_backoff_min_events
read_backoff_min_interval_between_events_ms
read_backoff_min_latency_ms
read_from_distributed_cache_if_exists_otherwise_bypass_cache
read_from_filesystem_cache_if_exists_otherwise_bypass_cache
read_from_page_cache_if_exists_otherwise_bypass_cache
read_in_order_two_level_merge_threshold
read_in_order_use_buffering
read_in_order_use_virtual_row
read_in_order_use_virtual_row_per_block
read_in_order_use_virtual_row, после чтения каждого блока выдается виртуальная строка (а не только в начале каждой части).
Это позволяет MergingSortedTransform чаще переприоритизировать источники, что полезно, когда последующие фильтры отбрасывают много строк, а данные распределены по частям неравномерно.
Обратите внимание, что при этом отключается оптимизация read_in_order_use_buffering и предварительное слияние (read_in_order_two_level_merge_threshold) при чтении.
read_overflow_mode
read_overflow_mode_leaf
throw: сгенерировать исключение (по умолчанию).break: остановить выполнение запроса и вернуть частичный результат.
read_priority
threadpool — с удалённой файловой системой.
read_through_distributed_cache
readonly
receive_data_timeout_ms
receive_timeout
send_timeout.
recursive_cte_max_steps_in_type_inference
getLeastSupertype к нерекурсивной и рекурсивной частям UNION ALL до достижения сходимости. Установите значение 0, чтобы отключить расширение типов и использовать только типы из нерекурсивной части.
regexp_dict_allow_hyperscan
regexp_dict_flag_case_insensitive
regexp_dict_flag_dotall
regexp_max_matches_per_row
- Положительное целое число.
reject_expensive_hyperscan_regexps
remerge_sort_lowered_memory_bytes_ratio
remote_filesystem_read_method
remote_filesystem_read_prefetch
remote_fs_read_backoff_max_tries
remote_fs_read_max_backoff_ms
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
replace_running_query
0 (по умолчанию) – сгенерировать исключение (не разрешать выполнение запроса, если запрос с тем же ‘query_id’ уже выполняется).
1 – отменить старый запрос и запустить новый.
Установите значение этого параметра равным 1, чтобы реализовать подсказки для условий сегментации. После ввода следующего символа, если старый запрос ещё не завершился, его следует отменить.
replace_running_query_max_wait_ms
query_id, когда активна настройка replace_running_query.
Возможные значения:
- Положительное целое число.
- 0 — генерировать исключение и не запускать новый запрос, если сервер уже выполняет запрос с тем же
query_id.
replication_wait_for_inactive_replica_timeout
ALTER, OPTIMIZE или TRUNCATE.
Возможные значения:
0— Не ждать.- Отрицательное целое число — Ждать неограниченно долго.
- Положительное целое число — Количество секунд ожидания.
restore_replace_external_dictionary_source_to_null
restore_replace_external_engines_to_null
restore_replace_external_table_functions_to_null
1.
result_overflow_mode
throw
Определяет, что делать, если объём результата превышает одно из ограничений.
Возможные значения:
throw: сгенерировать исключение (по умолчанию).break: остановить выполнение запроса и вернуть частичный результат, как если бы исходные данные закончились.
Break прерывает выполнение только на
уровне блока. Это означает, что количество возвращаемых строк будет больше, чем
max_result_rows, будет кратно max_block_size
и будет зависеть от max_threads.
Пример
Query
Result
rewrite_count_distinct_if_with_count_distinct_implementation
countDistcintIf в соответствии с настройкой count_distinct_implementation.
Возможные значения:
- true — Разрешить.
- false — Запретить.
rewrite_in_to_join
rows_before_aggregation
s3_allow_multipart_copy
s3_allow_parallel_part_upload
s3_check_objects_after_upload
s3_connect_timeout_ms
s3_create_new_file_on_insert
data.Parquet.gz -> data.1.Parquet.gz -> data.2.Parquet.gz и т. д.
Возможные значения:
- 0 — запрос
INSERTсоздаёт новый файл или завершается ошибкой, если файл уже существует иs3_truncate_on_insertне задан. - 1 — запрос
INSERTсоздаёт новый файл при каждой вставке, используя суффикс (начиная со второй вставки), еслиs3_truncate_on_insertне задан.
s3_disable_checksum
s3_ignore_file_doesnt_exist
- 1 —
SELECTвозвращает пустой результат. - 0 —
SELECTгенерирует исключение.
s3_list_object_keys_size
s3_max_connections
s3_max_get_burst
s3_max_get_rps
s3_max_get_rps
s3_max_inflight_parts_for_one_file
s3_max_part_number
s3_max_put_burst
s3_max_put_rps
s3_max_put_rps
s3_max_single_operation_copy_size
s3_max_single_part_upload_size
s3_max_single_read_retries
s3_max_unexpected_write_error_retries
s3_max_upload_part_size
s3_min_upload_part_size
s3_path_filter_limit
_path, которые можно извлечь из фильтров запроса и использовать для перебора файлов
вместо листинга по glob-шаблону. 0 означает, что параметр отключён.
s3_request_timeout_ms
s3_skip_empty_files
- 0 —
SELECTгенерирует исключение, если пустой файл несовместим с запрошенным форматом. - 1 —
SELECTвозвращает пустой результат для пустого файла.
s3_slow_all_threads_after_network_error
true, все потоки, выполняющие запросы S3 к одной и той же конечной точке резервного копирования, замедляются
после того, как любой отдельный запрос S3 сталкивается с сетевой ошибкой, допускающей повторную попытку, например тайм-аутом сокета.
Если установлено значение false, каждый поток обрабатывает задержку запросов S3 независимо от остальных.
s3_strict_upload_part_size
s3_throw_on_zero_files_match
s3_truncate_on_insert
- 0 — запрос
INSERTсоздаёт новый файл или завершается ошибкой, если файл уже существует и параметрs3_create_new_file_on_insertне задан. - 1 — запрос
INSERTзаменяет существующее содержимое файла новыми данными.
s3_upload_part_size_multiply_factor
s3_upload_part_size_multiply_parts_count_threshold
s3_uri_style
s3_use_adaptive_timeouts
true, то для всех запросов к S3 первые две попытки выполняются с короткими тайм-аутами отправки и получения.
Если установлено значение false, то все попытки выполняются с одинаковыми тайм-аутами.
s3_validate_request_settings
- 1 — проверять настройки.
- 0 — не проверять настройки.
s3queue_default_zookeeper_path
s3queue_enable_logging_to_s3queue_log
s3queue_keeper_fault_injection_probability
s3queue_migrate_old_metadata_to_buckets
schema_inference_cache_require_modification_time_for_url
schema_inference_use_cache_for_azure
schema_inference_use_cache_for_file
schema_inference_use_cache_for_hdfs
schema_inference_use_cache_for_s3
schema_inference_use_cache_for_url
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 могут записываться в разные наборы реплик, образующих кворум, поэтому нет гарантии, что какая-либо одна реплика получит все записи.
См. также:
send_logs_level
send_logs_source_regexp
send_profile_events
- 0 — Отключено.
- 1 — Включено.
send_progress_in_http_headers
X-ClickHouse-Progress в ответах clickhouse-server.
Дополнительную информацию см. в описании HTTP interface.
Possible values:
- 0 — Отключено.
- 1 — Включено.
send_table_structure_on_insert_with_inline_data
send_timeout
receive_timeout.
serialize_query_plan
serialize_string_in_memory_with_zero_byte
session_timezone
timeZone() и serverTimeZone().
Возможные значения:
- Любое имя часового пояса из
system.time_zones, напримерEurope/Berlin,UTCилиZulu
toDateTime()без явно указанного часового пояса, используемая в первом запросеSELECT, учитывает настройкуsession_timezoneи глобальный часовой пояс.- Во втором запросе значение DateTime разбирается из String и наследует тип и часовой пояс существующего столбца
d. Поэтому настройкаsession_timezoneи глобальный часовой пояс не учитываются.
set_overflow_mode
throw: сгенерировать исключение (по умолчанию).break: остановить выполнение запроса и вернуть частичный результат, как если бы исходные данные закончились.
select_sequential_consistency с SharedMergeTree. Доступно только в ClickHouse Cloud.
Максимальная задержка в миллисекундах перед повторной попыткой обновления частей при использовании select_sequential_consistency с SharedMergeTree. Доступно только в ClickHouse Cloud.
Максимальное количество повторных попыток обновления частей при использовании select_sequential_consistency с SharedMergeTree. Доступно только в ClickHouse Cloud.
Автоматически синхронизирует набор частей данных после операций MOVE|REPLACE|ATTACH с партициями в таблицах SMT. Только в ClickHouse Cloud
short_circuit_function_evaluation
enable— Включает вычисление функций с коротким замыканием для функций, к которым оно применимо (которые могут сгенерировать исключение или требуют больших вычислительных затрат).force_enable— Включает вычисление функций с коротким замыканием для всех функций.disable— Отключает вычисление функций с коротким замыканием.
short_circuit_function_evaluation_for_nulls
short_circuit_function_evaluation_for_nulls_threshold
show_processlist_include_internal
SHOW PROCESSLIST.
К внутренним процессам относятся перезагрузка словарей, перезагрузка refreshable materialized view, вспомогательные SELECT, выполняемые в запросах SHOW ..., вспомогательные запросы CREATE DATABASE ..., которые выполняются внутри системы для обработки повреждённых таблиц, и многое другое.
show_remote_databases_in_system_tables
show_data_lake_catalogs_in_system_tables
Включает отображение удалённых баз данных (каталогов озёр данных, MySQL, PostgreSQL) в системных таблицах.
show_table_uuid_in_table_create_query_if_not_nil
SHOW TABLE.
Возможные значения:
- 0 — запрос отображается без UUID таблицы.
- 1 — запрос отображается с UUID таблицы.
single_join_prefer_left_table
skip_redundant_aliases_in_udf
- 1 — Псевдонимы пропускаются (подставляются) в UDF.
- 0 — Псевдонимы не пропускаются (не подставляются) в UDF.
- ClickHouse не может подключиться к реплике по любой причине. При подключении к реплике ClickHouse выполняет несколько попыток. Если все они завершаются неудачей, реплика считается недоступной.
-
Реплику не удается разрешить через DNS.
Если имя хоста реплики не удается разрешить через DNS, это может указывать на одну из следующих ситуаций:
- У хоста реплики отсутствует DNS-запись. Это может происходить в системах с динамическим DNS, например, Kubernetes, где во время простоя узлы могут не разрешаться, и это не считается ошибкой.
- Ошибка конфигурации. В файле конфигурации ClickHouse указано неверное имя хоста.
- 1 — пропуск включен. Если сегмент недоступен, ClickHouse возвращает результат на основе частичных данных и не сообщает о проблемах с доступностью узлов.
- 0 — пропуск отключен. Если сегмент недоступен, ClickHouse генерирует исключение.
sleep_after_receiving_query_ms
sleep_in_send_data_ms
sleep_in_send_tables_status_ms
sort_overflow_mode
throw: сгенерировать исключение.break: остановить выполнение запроса и вернуть частичный результат.
split_intersecting_parts_ranges_into_layers_final
split_parts_ranges_into_intersecting_and_non_intersecting_final
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 view без обновления по расписанию.
storage_file_read_method
read, pread, mmap. Метод mmap не используется в clickhouse-server (он предназначен для clickhouse-local).
storage_system_stack_trace_pipe_read_timeout_ms
system.stack_trace. Эта настройка используется только в целях тестирования и не предназначена для изменения пользователями.
stream_flush_interval_ms
stream_like_engine_allow_direct_select
stream_like_engine_insert_queue
stream_poll_timeout_ms
system_events_show_zero_values
system.events.
Некоторые системы мониторинга требуют передавать им все значения метрик для каждой контрольной точки, даже если значение метрики равно нулю.
Возможные значения:
- 0 — Отключено.
- 1 — Включено.
system_metric_log_show_zero_values_in_histograms
histograms таблицы system.metric_log.
По умолчанию гистограммы, у которых общее число наблюдений count равно нулю, пропускаются, а в каждой записываемой гистограмме из map histogram также исключаются записи бакетов без наблюдений. Включите эту настройку, чтобы записывать каждую гистограмму и каждый бакет независимо от значения count — это полезно для систем мониторинга, которым требуется, чтобы каждая метрика присутствовала в каждой контрольной точке.
Возможные значения:
- 0 — Отключено. Гистограммы с
count = 0не записываются; записанные гистограммы включают только те бакеты, в которые попало хотя бы одно наблюдение. - 1 — Включено. Записываются все гистограммы, и в
histogramприсутствует каждая граница бакета.
table_engine_read_through_distributed_cache
table_function_remote_max_addresses
- Положительное целое число.
tcp_keep_alive_timeout
temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds
temporary_files_buffer_size
temporary_files_codec
- LZ4 — применяется сжатие LZ4.
- NONE — сжатие не применяется.
text_index_density_threshold
text_index_hint_max_selectivity
text_index_like_max_postings_to_read
use_text_index_like_evaluation_by_dictionary_scan.
text_index_like_min_pattern_length
use_text_index_like_evaluation_by_dictionary_scan был включен.
text_index_posting_list_apply_mode
throw_if_no_data_to_insert
clickhouse-client или gRPC-интерфейс.
throw_on_error_from_cache_on_write_operations
throw_on_max_partitions_per_insert_block
max_partitions_per_insert_block.
Возможные значения:
true- Когда блок вставки достигаетmax_partitions_per_insert_block, генерируется исключение.false- При достиженииmax_partitions_per_insert_blockв журнал записывается предупреждение.
throw_on_unsupported_query_inside_transaction
timeout_before_checking_execution_speed
min_execution_speed), после истечения указанного времени в секундах.
timeout_overflow_mode
max_execution_time или
оценочное время выполнения превышает max_estimated_execution_time.
Возможные значения:
throw: сгенерировать исключение (по умолчанию).break: остановить выполнение запроса и вернуть частичный результат, как если бы исходные данные были исчерпаны.
timeout_overflow_mode_leaf
max_execution_time_leaf.
Возможные значения:
throw: сгенерировать исключение (по умолчанию).break: остановить выполнение запроса и вернуть частичный результат, как если бы исходные данные были исчерпаны.
totals_auto_threshold
totals_mode = 'auto'.
См. раздел «Модификатор WITH TOTALS».
totals_mode
trace_profile_events
- 1 — трассировка profile events включена.
- 0 — трассировка profile events отключена.
trace_profile_events_list
trace_profile_events включена, трассировка ограничивается указанным списком имен, разделенных запятыми.
Если trace_profile_events_list — пустая строка (по умолчанию), трассируются все profile events.
Пример значения: ‘DiskS3ReadMicroseconds,DiskS3ReadRequestsCount,SelectQueryTimeMicroseconds,ReadBufferFromS3Bytes’
Эта настройка позволяет точнее собирать данные для большого числа запросов, поскольку в противном случае огромный объем событий может переполнить очередь внутреннего системного журнала, и часть из них будет отброшена.
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
update_parallel_mode
UPDATE.
Возможные значения:
sync- выполнять все запросыUPDATEпоследовательно.auto- выполнять последовательно только те запросыUPDATE, в которых есть зависимости между столбцами, обновляемыми в одном запросе, и столбцами, используемыми в выражениях другого запроса.async- не синхронизировать запросыUPDATE.
update_sequential_consistency
url_base
- URL, относительный к пути (например,
data.csv): объединяется с путём базового URL согласно RFC 3986. Всё после последнего/в базовом пути заменяется относительным URL, поэтому завершающий слеш имеет значение:https://example.com/dir/+data.csv=https://example.com/dir/data.csv, аhttps://example.com/dir+data.csv=https://example.com/data.csv. Если у базового URL нет пути (например,https://example.com), вставляется/:https://example.com/data.csv. Сегменты (./и../) в относительном URL нормализуются:https://example.com/dir/+../a.csv=https://example.com/a.csv. - URL, относительный к хосту (например,
/test/data.csv): разрешается относительно схемы и хоста базового URL. - URL, относительный к схеме (например,
//other.com/test/data.csv): разрешается с использованием схемы базового URL. - Ссылка, содержащая только строку запроса (например,
?x=1): добавляется к пути базового URL (заменяя существующие строку запроса и фрагмент). - Ссылка, содержащая только фрагмент (например,
#frag): добавляется к базовому URL с сохранением строки запроса (заменяя существующий фрагмент). - Пустая ссылка: возвращает базовый URL без фрагмента.
url_base имеет значение https://example.com/def/, то:
data.csvразрешается вhttps://example.com/def/data.csv/test/data.csvразрешается вhttps://example.com/test/data.csv//other.com/test/data.csvразрешается вhttps://other.com/test/data.csv
use_async_executor_for_materialized_views
use_cache_for_count_from_files
file/s3/url/hdfs/azureBlobStorage.
Включено по умолчанию.
use_client_time_zone
use_compact_format_in_distributed_parts_names
distributed_foreground_insert) операции INSERT в таблицы с движком Distributed.
Возможные значения:
- 0 — Использует формат каталога
user[:password]@host:port#default_database. - 1 — Использует формат каталога
[shard{shard_index}[_replica{replica_index}]].
- при
use_compact_format_in_distributed_parts_names=0изменения в определении кластера не будут применяться к фоновой операции INSERT. - при
use_compact_format_in_distributed_parts_names=1изменение порядка узлов в определении кластера приведёт к изменениюshard_index/replica_index, имейте это в виду.
use_concurrency_control
concurrent_threads_soft_limit_num и concurrent_threads_soft_limit_ratio_to_cores). Если отключено, позволяет использовать большее число потоков даже при перегрузке сервера (не рекомендуется для обычного использования и в основном требуется для тестов).
Значение по умолчанию в Cloud: 0.
use_hash_table_stats_for_join_reordering
use_hedged_requests
hedged_connection_timeout
или если в течение receive_data_timeout не были получены данные. Запрос использует первое соединение, которое отправляет непустой пакет Прогресс (или пакет данных, если allow_changing_replica_until_first_data_packet);
остальные соединения отменяются. Поддерживаются запросы с max_parallel_replicas > 1.
Включено по умолчанию.
Значение по умолчанию в Cloud: 0.
use_hive_partitioning
/name=value/) в движках таблиц, работающих с файлами: File/S3/URL/HDFS/AzureBlobStorage, и позволяет использовать столбцы партиций как виртуальные столбцы в запросе. Эти виртуальные столбцы будут иметь те же имена, что и в пути секционирования, но с префиксом _.
use_iceberg_metadata_files_cache
- 0 - Отключено
- 1 - Включено
use_iceberg_partition_pruning
use_index_for_in_with_subqueries
use_index_for_in_with_subqueries_max_values
use_join_disjunctions_push_down
use_legacy_to_time
use_lightweight_primary_key_index_analysis
MergeTree с длинным первичным ключом.
Если настройка включена, время выполнения анализа индекса в основном зависит от сложности фильтра запроса (то есть от того, какие столбцы ключа он фактически использует), а не от длины первичного ключа. Поэтому расширение ключа сортировки почти не добавляет накладных расходов при анализе индекса для запросов, которые фильтруют только по нескольким его столбцам.
Возможные значения:
- 0 — Отключено. При анализе индекса обрабатываются все столбцы первичного ключа.
- 1 — Включено.
use_page_cache_for_disks_without_file_cache
use_page_cache_for_local_disks
local_filesystem_read_method = 'pread' или 'read'. Не отключает кэш страниц ОС; для этого можно использовать min_bytes_to_use_direct_io. Влияет только на обычные таблицы, но не на табличную функцию file() и не на движок таблицы File().
use_page_cache_for_object_storage
use_page_cache_with_distributed_cache
use_paimon_partition_pruning
use_parquet_metadata_cache
- 0 - Отключено
- 1 - Включено
use_partition_pruning
use_partition_key
Использовать ключ партиционирования для отсечения партиций при выполнении запроса в таблицах MergeTree.
Возможные значения:
- 0 — Отключено.
- 1 — Включено.
use_primary_key
- 0 — Отключено.
- 1 — Включено.
use_query_cache
SELECT могут использовать кэш запросов. Параметры enable_reads_from_query_cache
и enable_writes_to_query_cache более точно определяют, как используется кэш.
Возможные значения:
- 0 - Отключено
- 1 - Включено
use_query_condition_cache
WHERE,
и использует эту информацию как эфемерный индекс для последующих запросов.
Возможные значения:
- 0 - Отключено
- 1 - Включено
use_reader_executor
ReaderExecutor вместо устаревшей матрёшки буферов чтения. Для конфигураций, которые исполнитель пока не поддерживает, используется устаревший путь.
use_roaring_bitmap_iceberg_positional_deletes
use_skip_indexes
- 0 — Отключено.
- 1 — Включено.
use_skip_indexes_for_disjunctions
- 0 — Отключено.
- 1 — Включено.
use_skip_indexes_for_top_k
ORDER BY <column> LIMIT n для столбца существует minmax-индекс пропуска данных, оптимизатор попытается использовать его, чтобы пропускать гранулы, не влияющие на итоговый результат. Это может снизить задержку запроса.
Возможные значения:
- 0 — Отключено.
- 1 — Включено.
use_skip_indexes_if_final
- 0 — Отключено.
- 1 — Включено.
use_skip_indexes_if_final_exact_mode
- 0 — Отключено.
- 1 — Включено.
use_skip_indexes_on_data_read
- 0 — Отключено.
- 1 — Включено.
use_statistics
use_statistics_cache
use_statistics_for_part_pruning
- 0 — Отключено.
- 1 — Включено.
use_strict_insert_block_limits
- Минимальные пороги (AND): достигнуты оба порога — min_insert_block_size_rows AND min_insert_block_size_bytes.
- Максимальные пороги (OR): достигнут либо max_insert_block_size_rows, либо max_insert_block_size_bytes.
- Минимальные пороги (OR): достигнут либо min_insert_block_size_rows, либо min_insert_block_size_bytes.
use_structure_from_insertion_table_in_table_functions
use_text_index_header_cache
use_text_index_like_evaluation_by_dictionary_scan
use_text_index_postings_cache
use_text_index_tokens_cache
use_top_k_dynamic_filtering
ORDER BY <column> LIMIT n.
Если настройка включена, исполнитель запроса будет пытаться пропускать гранулы и строки, которые не попадут в итоговый набор строк top N. Эта оптимизация носит динамический характер, и снижение задержки зависит от распределения данных и наличия в запросе других предикатов.
Возможные значения:
- 0 — Отключено.
- 1 — Включено.
use_top_k_dynamic_filtering_for_variable_length_types
use_top_k_dynamic_filtering, когда столбец сортировки имеет тип данных переменной длины (например, String, Array, Map, Tuple, содержащий элементы переменной длины).
Для таких типов сравнение с порогом для каждой строки, выполняемое динамическим фильтром, может свести на нет получаемую выгоду, если в столбце преобладает лексикографический минимум (например, в основном пустые строки) и удаётся пропустить лишь небольшое число гранул. В таком случае динамический фильтр не уменьшает, а увеличивает задержку запроса.
Когда этот параметр равен 0, динамическая фильтрация ограничивается столбцами, значения которых имеют фиксированный максимальный размер в памяти (числа, Date, DateTime, FixedString, Enum, Nullable таких типов, Tuple таких типов). Если задано значение 1, динамическая фильтрация также применяется к типам переменной длины.
Возможные значения:
- 0 — Отключено.
- 1 — Включено.
use_uncompressed_cache
use_variant_as_common_type
Variant в качестве типа результата для функций if/multiIf/array/map, если для типов аргументов нет общего типа.
Пример:
use_variant_default_implementation_for_comparisons
use_with_fill_by_sorting_prefix
validate_enum_literals_in_operators
IN, NOT IN, ==, !=, проверяются на соответствие типу enum; если литерал не является допустимым значением enum, будет сгенерировано исключение.
validate_mutation_query
validate_polygons
- 0 — Генерирование исключения отключено.
pointInPolygonпринимает некорректные полигоны и может возвращать для них неверные результаты. - 1 — Генерирование исключения включено.
variant_throw_on_type_mismatch
true(по умолчанию) — сгенерировать исключение.false— вместо этого возвращатьNULLдля этих строк.
vector_search_filter_strategy
- ‘auto’ - Постфильтрация (точная семантика может измениться в будущем).
- ‘postfilter’ - Использовать индекс векторного сходства для определения ближайших соседей, затем применить другие фильтры
- ‘prefilter’ - Сначала применить другие фильтры, затем выполнить полный перебор для определения соседей.
vector_search_index_fetch_multiplier
vector_search_postfilter_multiplier
Умножает количество получаемых ближайших соседей из индекса векторного сходства на это число. Применяется только при постфильтрации с другими предикатами или если включена настройка ‘vector_search_with_rescoring = 1’.
vector_search_with_rescoring
wait_changes_become_visible_after_commit_mode
wait_for_async_insert
wait_for_async_insert_timeout
wait_for_part_commit_in_dependent_materialized_views
JOIN, видел часть, записанную этим sink.
Гарантия действует для каждого экземпляра sink отдельно — части, записанные другими потоками sink того же INSERT, могут быть ещё не видны. Эта настройка не обеспечивает межпоточный порядок коммитов.
Не влияет на вставки в таблицы без зависимых materialized views.
wait_for_window_view_fire_signal_timeout
webassembly_udf_max_fuel
webassembly_udf_max_fuel = 1 соответствует примерно 1024 единицам fuel. Установите 0, чтобы убрать конечное ограничение. Применяется только к функциям, для которых настройка webassembly_udf_enable_fuel на уровне функции имеет значение true, которое используется по умолчанию.