Перейти к основному содержимому
Перейти к основному содержимому

Настройки Сессии

Все нижеприведенные настройки также доступны в таблице system.settings. Эти настройки автоматически генерируются из source.

add_http_cors_header

Добавить заголовок http CORS.

additional_result_filter

Дополнительное выражение фильтра для применения к результату запроса SELECT. Эта настройка не применяется к подзапросам.

Пример

additional_table_filters

Дополнительное выражение фильтра, которое применяется после чтения из указанной таблицы.

Пример

aggregate_functions_null_for_empty

Включает или отключает переписывание всех агрегатных функций в запросе, добавляя суффикс -OrNull к ним. Включите это для совместимости со стандартом SQL. Это реализовано через переписывание запроса (аналогично настройке count_distinct_implementation), чтобы получить согласованные результаты для распределенных запросов.

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

  • 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

Количество потоков, используемых для слияния промежуточных результатов агрегации в режиме эффективного использования памяти. Чем больше значение, тем больше потребляется памяти. 0 означает — то же самое, что и 'max_threads'.

allow_aggregate_partitions_independently

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

allow_archive_path_syntax

Файлы/движки S3/табличная функция будут разбирать пути с '::' как <archive> :: <file>, если архив имеет правильное расширение.

allow_asynchronous_read_from_io_pool_for_merge_tree

Использовать пул фонового ввода-вывода для чтения из таблиц MergeTree. Эта настройка может увеличить производительность для запросов, зависящих от ввода-вывода.

allow_changing_replica_until_first_data_packet

Если включено, в хеджированных запросах мы можем начать новое соединение до получения первого пакета данных, даже если мы уже сделали некоторые успехи (но прогресс не был обновлен в течение времени receive_data_timeout), в противном случае мы отключаем изменение реплики после того, как впервые достигли прогресса.

allow_create_index_without_type

Разрешить запрос CREATE INDEX без TYPE. Запрос будет игнорироваться. Сделано для тестов совместимости SQL.

allow_custom_error_code_in_throwif

Включить пользовательский код ошибки в функции throwIf(). Если это истинно, выброшенные исключения могут иметь неожиданные коды ошибок.

allow_ddl

Если установка установлена на истину, пользователю разрешается выполнять DDL запросы.

allow_deprecated_database_ordinary

Разрешить создание баз данных с устаревшим обычным движком.

allow_deprecated_error_prone_window_functions

Разрешить использование устаревших оконных функций, подверженных ошибкам (neighbor, runningAccumulate, runningDifferenceStartingWithFirstValue, runningDifference).

allow_deprecated_snowflake_conversion_functions

Функции snowflakeToDateTime, snowflakeToDateTime64, dateTimeToSnowflake и dateTime64ToSnowflake устарели и по умолчанию отключены. Пожалуйста, используйте функции snowflakeIDToDateTime, snowflakeIDToDateTime64, dateTimeToSnowflakeID и dateTime64ToSnowflakeID вместо них.

Чтобы повторно включить устаревшие функции (например, в переходный период), установите эту настройку в true.

allow_deprecated_syntax_for_merge_tree

Разрешить создание *MergeTree таблиц с устаревшим синтаксисом определения движка.

allow_distributed_ddl

Если установка установлена на истину, пользователю разрешается выполнять распределенные DDL запросы.

allow_drop_detached

Разрешить запросы ALTER TABLE ... DROP DETACHED PART[ITION] ...

allow_execute_multiif_columnar

Разрешить выполнение функции multiIf в столбцовом формате.

allow_experimental_analyzer

Разрешить новый анализатор запросов.

allow_experimental_codecs

Experimental feature. Learn more.

Если установка установлена на истину, разрешите указывать экспериментальные кодеки сжатия (но у нас их еще нет, и эта опция ничего не делает).

allow_experimental_correlated_subqueries

Experimental feature. Learn more.

Разрешить выполнение коррелированных подзапросов.

allow_experimental_database_glue_catalog

Experimental feature. Learn more.

Разрешить экспериментальный движок базы данных DataLakeCatalog с catalog_type = 'glue'.

allow_experimental_database_hms_catalog

Experimental feature. Learn more.

Разрешить экспериментальный движок базы данных DataLakeCatalog с catalog_type = 'hms'.

allow_experimental_database_iceberg

Experimental feature. Learn more.

Разрешить экспериментальный движок базы данных DataLakeCatalog с catalog_type = 'iceberg'.

allow_experimental_database_materialized_postgresql

Experimental feature. Learn more.

Разрешить создание базы данных с Engine=MaterializedPostgreSQL(...).

allow_experimental_database_unity_catalog

Experimental feature. Learn more.

Разрешить экспериментальный движок базы данных DataLakeCatalog с catalog_type = 'unity'.

allow_experimental_delta_kernel_rs

Beta feature. Learn more.

Разрешить экспериментальную реализацию delta-kernel-rs.

allow_experimental_dynamic_type

Разрешает создание Dynamic типа данных.

allow_experimental_full_text_index

Experimental feature. Learn more.

Если это установлено на истину, разрешить использовать экспериментальный полнотекстовый индекс.

allow_experimental_funnel_functions

Experimental feature. Learn more.

Включить экспериментальные функции для анализа воронок.

allow_experimental_hash_functions

Experimental feature. Learn more.

Включить экспериментальные хеш-функции.

allow_experimental_inverted_index

Experimental feature. Learn more.

Если это установлено на истину, разрешить использовать экспериментальный разреженный индекс.

allow_experimental_join_condition

Experimental feature. Learn more.

Поддержка соединения с неравенствующими условиями, которые включают столбцы из обеих таблиц слева и справа. например, t1.y < t2.y.

allow_experimental_join_right_table_sorting

Experimental feature. Learn more.

Если это установлено на истину, и условия join_to_sort_minimum_perkey_rows и join_to_sort_maximum_table_rows выполнены, изменить порядок правой таблицы по ключу для улучшения производительности в левых или внутренних хэш-соединениях.

allow_experimental_json_type

Разрешает создание JSON типа данных.

allow_experimental_kafka_offsets_storage_in_keeper

Experimental feature. Learn more.

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

allow_experimental_kusto_dialect

Experimental feature. Learn more.

Включить язык запросов Kusto (KQL) - альтернативу SQL.

allow_experimental_lightweight_update

Experimental feature. Learn more.

Разрешить использовать легковесные обновления.

allow_experimental_live_view

Experimental feature. Learn more.

Разрешает создание устаревшего LIVE VIEW.

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

  • 0 — Работы с live-представлениями отключены.
  • 1 — Работы с live-представлениями включены.

allow_experimental_materialized_postgresql_table

Experimental feature. Learn more.

Разрешает использовать движок таблицы MaterializedPostgreSQL. Отключено по умолчанию, так как эта функция является экспериментальной.

allow_experimental_nlp_functions

Experimental feature. Learn more.

Включить экспериментальные функции для обработки естественного языка.

allow_experimental_object_type

Experimental feature. Learn more.

Разрешить устаревший тип данных Object.

allow_experimental_parallel_reading_from_replicas

Beta feature. Learn more.

Использовать до max_parallel_replicas количество реплик из каждой шард для выполнения запроса SELECT. Чтение будет параллелизировано и координировано динамически. 0 - отключено, 1 - включено, безмолвно отключите в случае ошибки, 2 - включено, выбросить исключение в случае ошибки.

allow_experimental_prql_dialect

Experimental feature. Learn more.

Включить PRQL - альтернативу SQL.

allow_experimental_query_deduplication

Experimental feature. Learn more.

Экспериментальная дедупликация данных для запросов SELECT на основе UUID частей.

allow_experimental_statistics

Experimental feature. Learn more.

Позволяет определять столбцы с статистикой и управлять статистикой.

allow_experimental_time_series_table

Experimental feature. Learn more.

Разрешает создание таблиц с движком таблицы TimeSeries. Возможные значения:

  • 0 — движок таблицы TimeSeries отключен.
  • 1 — движок таблицы TimeSeries включен.

allow_experimental_ts_to_grid_aggregate_function

Experimental feature. Learn more.

Экспериментальная агрегатная функция tsToGrid для повторной выборки временных рядов, подобно Prometheus. Только для облака.

allow_experimental_variant_type

Разрешает создание Variant типа данных.

allow_experimental_vector_similarity_index

Experimental feature. Learn more.

Разрешить экспериментальный индекс векторного сходства.

allow_experimental_window_view

Experimental feature. Learn more.

Включить VIEW ОКНА. Недостаточно зрелый.

allow_general_join_planning

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

allow_get_client_http_header

Разрешить использовать функцию getClientHTTPHeader, которая позволяет получить значение заголовка текущего HTTP-запроса. Он по умолчанию не включен по соображениям безопасности, так как некоторые заголовки, такие как Cookie, могут содержать конфиденциальную информацию. Обратите внимание, что заголовки X-ClickHouse-* и Authentication всегда ограничены и не могут быть получены с помощью этой функции.

allow_hyperscan

Разрешить функции, использующие библиотеку Hyperscan. Отключите, чтобы избежать потенциально длительного времени компиляции и чрезмерного использования ресурсов.

allow_introspection_functions

Включает или отключает функции интроспекции для профилирования запросов.

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

  • 1 — функции интроспекции включены.
  • 0 — функции интроспекции отключены.

См. также

allow_materialized_view_with_bad_select

Разрешить CREATE MATERIALIZED VIEW с запросом SELECT, который ссылается на несуществующие таблицы или столбцы. Он все равно должен быть синтаксически корректным. Не применяется к обновляемым MV. Не применяется, если схему MV необходимо выдвинуть из запроса SELECT (т.е. если CREATE не содержит списка столбцов и не содержит TO таблицы). Может использоваться для создания MV до ее исходной таблицы.

allow_named_collection_override_by_default

Разрешить переопределение полей именованных коллекций по умолчанию.

allow_non_metadata_alters

Разрешить выполнять изменения, которые влияют не только на метаданные таблиц, но и на данные на диске.

allow_nonconst_timezone_arguments

Разрешить неконстантные аргументы временной зоны в определенных временных функциях, таких как toTimeZone(), fromUnixTimestamp*(), snowflakeToDateTime*().

allow_nondeterministic_mutations

Настройка на уровне пользователя, которая позволяет мутациям в реплицируемых таблицах использовать нерешающие функции, такие как dictGet.

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

Пример

allow_nondeterministic_optimize_skip_unused_shards

Разрешить нерешающие (такие как rand или dictGet, поскольку позже у последней есть некоторые подвохи с обновлениями) функции в ключе шардирования.

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

  • 0 — Запрещено.
  • 1 — Разрешено.

allow_not_comparable_types_in_comparison_functions

Разрешает или ограничивает использование несравнимых типов (таких как JSON/Object/AggregateFunction) в функциях сравнения equal/less/greater/etc.

allow_not_comparable_types_in_order_by

Разрешает или ограничивает использование несравнимых типов (таких как JSON/Object/AggregateFunction) в ключах ORDER BY.

allow_prefetched_read_pool_for_local_filesystem

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

allow_prefetched_read_pool_for_remote_filesystem

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

allow_push_predicate_ast_for_distributed_subqueries

Разрешить применение предиката на уровне AST для распределенных подзапросов с включенным анализатором.

allow_push_predicate_when_subquery_contains_with

Разрешить применение предиката, когда подзапрос содержит оператор WITH.

allow_reorder_prewhere_conditions

При перемещении условий из WHERE в PREWHERE разрешить их переупорядочение для оптимизации фильтрации.

allow_settings_after_format_in_insert

Контролировать, разрешены ли SETTINGS после FORMAT в INSERT запросах или нет. Не рекомендуется использовать это, так как это может интерпретировать часть SETTINGS как значения.

Пример:

Но следующий запрос будет работать только с allow_settings_after_format_in_insert:

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

  • 0 — Запрещено.
  • 1 — Разрешено.
примечание

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

allow_simdjson

Разрешить использование библиотеки simdjson в функциях 'JSON*', если доступны инструкции AVX2. Если отключено, будет использован rapidjson.

allow_statistics_optimize

Experimental feature. Learn more.

Позволяет использовать статистику для оптимизации запросов.

allow_suspicious_codecs

Если это установлено на истину, разрешить указывать незначимые кодеки сжатия.

allow_suspicious_fixed_string_types

В операторе CREATE TABLE позволяет создавать столбцы типа FixedString(n) с n > 256. FixedString с длиной >= 256 является подозрительным и, скорее всего, указывает на неправильное использование.

allow_suspicious_indices

Отклонять первичные/вторичные индексы и ключи сортировки с идентичными выражениями.

allow_suspicious_low_cardinality_types

Позволяет или ограничивает использование LowCardinality с типами данных фиксированного размера 8 байт или меньше: числовыми типами данных и FixedString(8_bytes_or_less).

Для небольших фиксированных значений использование LowCardinality обычно неэффективно, поскольку ClickHouse хранит числовой индекс для каждой строки. В результате:

  • Использование дискового пространства может возрасти.
  • Потребление ОЗУ может быть выше, в зависимости от размера словаря.
  • Некоторые функции могут работать медленнее из-за дополнительных операций кодирования/декодирования.

Время слияния в таблицах с движком MergeTree может увеличиваться по всем указанным выше причинам.

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

  • 1 — Использование LowCardinality не ограничено.
  • 0 — Использование LowCardinality ограничено.

allow_suspicious_primary_key

Разрешить подозрительные PRIMARY KEY/ORDER BY для MergeTree (т.е. SimpleAggregateFunction).

allow_suspicious_ttl_expressions

Отклонить TTL-выражения, которые не зависят от каких-либо столбцов таблицы. Это чаще всего указывает на ошибку пользователя.

allow_suspicious_types_in_group_by

Позволяет или ограничивает использование Variant и Dynamic типов в ключах GROUP BY.

allow_suspicious_types_in_order_by

Позволяет или ограничивает использование Variant и Dynamic типов в ключах ORDER BY.

allow_suspicious_variant_types

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

allow_unrestricted_reads_from_keeper

Позволяет неограниченные (без условия на путь) чтения из системной таблицы zookeeper, что может быть удобно, но не безопасно для zookeeper.

alter_move_to_space_execute_async

Выполнять ALTER TABLE MOVE ... TO [DISK|VOLUME] асинхронно.

alter_partition_verbose_result

Включает или отключает отображение информации о частях, к которым успешно применены операции манипуляции с партициями и частями. Применимо к ATTACH PARTITION|PART и к FREEZE PARTITION.

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

  • 0 — отключить подробный вывод.
  • 1 — включить подробный вывод.

Пример

alter_sync

Позволяет настраивать ожидание выполнения действий на репликах с помощью ALTER, OPTIMIZE или TRUNCATE запросов.

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

  • 0 — Не ждать.
  • 1 — Ждать своего выполнения.
  • 2 — Ждать всех.

Облачное значение по умолчанию: 0.

примечание

alter_sync применим только к Replicated таблицам, он ничего не делает для изменений не Replicated таблиц.

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_join_using_top_level_identifier

Принудительно разрешать идентификатор в JOIN USING из проекции (например, в SELECT a + 1 AS b FROM t1 JOIN t2 USING (b) соединение будет выполнено по t1.a + 1 = t2.b, а не t1.b = t2.b).

any_join_distinct_right_table_keys

Включает поведение устаревшего сервера ClickHouse в операциях ANY INNER|LEFT JOIN.

примечание

Используйте эту настройку только для обратной совместимости, если ваши сценарии зависят от устаревшего поведения JOIN.

Когда устаревшее поведение включено:

  • Результаты операций t1 ANY LEFT JOIN t2 и t2 ANY RIGHT JOIN t1 не равны, поскольку ClickHouse использует логику с отображением ключей таблиц от многих к одному слева направо.
  • Результаты операций ANY INNER JOIN содержат все строки из левой таблицы, как и операции SEMI LEFT JOIN.

Когда устаревшее поведение отключено:

  • Результаты операций t1 ANY LEFT JOIN t2 и t2 ANY RIGHT JOIN t1 равны, поскольку ClickHouse использует логику, которая обеспечивает отображение ключей от одного к многим в операциях ANY RIGHT JOIN.
  • Результаты операций ANY INNER JOIN содержат одну строку на ключ из обеих левых и правых таблиц.

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

  • 0 — Устаревшее поведение отключено.
  • 1 — Устаревшее поведение включено.

См. также:

apply_deleted_mask

Включает фильтрацию строк, удаленных с помощью легковесного DELETE. Если отключено, запрос сможет читать эти строки. Это полезно для отладки и сценариев «восстановления».

apply_mutations_on_fly

Если истинно, мутации (UPDATE и DELETE), которые не материализованы в части данных, будут применяться к SELECT.

apply_patch_parts

Если истинно, части патчей (представляющие легковесные обновления) применяются к SELECT.

apply_settings_from_server

Должен ли клиент принимать настройки с сервера.

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

Обычно эту настройку следует устанавливать в профиле пользователя (users.xml или запросы типа ALTER USER), а не через клиент (аргументы командной строки клиента, запрос SET или раздел SETTINGS запроса SELECT). Через клиент она может быть изменена на false, но не может быть изменена на true (поскольку сервер не отправит настройки, если в профиле пользователя установлено apply_settings_from_server = false).

Обратите внимание, что изначально (24.12) существовала серверная настройка (send_settings_to_client), но позднее она была заменена этой настройкой клиента для лучшей удобства.

asterisk_include_alias_columns

Включить ALIAS колонки для запроса с подстановочным знаком (SELECT *).

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

  • 0 - отключено
  • 1 - включено

asterisk_include_materialized_columns

Включить MATERIALIZED колонки для запроса с подстановочным знаком (SELECT *).

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

  • 0 - отключено
  • 1 - включено

async_insert

Если истинно, данные из запроса INSERT хранятся в очереди, а затем сбрасываются в таблицу в фоновом режиме. Если wait_for_async_insert ложна, запрос INSERT обрабатывается почти мгновенно, в противном случае клиент будет ждать, пока данные не будут сброшены в таблицу.

async_insert_busy_timeout_decrease_rate

Экспоненциальная скорость уменьшения, с которой уменьшается время ожидания асинхронных вставок.

async_insert_busy_timeout_increase_rate

Экспоненциальная скорость увеличения, с которой увеличивается время ожидания асинхронных вставок.

async_insert_busy_timeout_max_ms

Максимальное время ожидания перед выгрузкой собранных данных за запрос с момента появления первых данных.

async_insert_busy_timeout_min_ms

Если автонастройка включена через async_insert_use_adaptive_busy_timeout, минимальное время ожидания перед выгрузкой собранных данных за запрос с момента появления первых данных. Оно также служит в качестве начального значения для адаптивного алгоритма.

async_insert_deduplicate

Для асинхронных запросов INSERT в реплицируемую таблицу указывает, что должна быть выполнена дедупликация вставляемых блоков.

async_insert_max_data_size

Максимальный размер в байтах непарсенных данных, собранных за запрос перед вставкой.

async_insert_max_query_number

Максимальное количество запросов вставки перед вставкой.

async_insert_poll_timeout_ms

Таймаут для опроса данных из очереди асинхронной вставки.

async_insert_use_adaptive_busy_timeout

Если установлено в true, использовать адаптивный тайм-аут для асинхронных вставок.

async_query_sending_for_remote

Включает создание асинхронных соединений и отправку запросов при выполнении удаленного запроса.

Включено по умолчанию.

async_socket_for_remote

Включает асинхронное чтение из сокета при выполнении удаленного запроса.

Включено по умолчанию.

azure_allow_parallel_part_upload

Использовать несколько потоков для многослойной загрузки в Azure.

azure_check_objects_after_upload

Проверять каждый загруженный объект в Azure Blob Storage, чтобы убедиться, что загрузка была успешной.

azure_create_new_file_on_insert

Включает или отключает создание нового файла при каждом вставлении в таблицы движка Azure.

azure_ignore_file_doesnt_exist

Игнорировать отсутствие файла, если он не существует при чтении определенных ключей.

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

  • 1 — SELECT возвращает пустой результат.
  • 0 — SELECT выбрасывает исключение.

azure_list_object_keys_size

Максимальное количество файлов, которые могут быть возвращены в пакете по запросу ListObject.

azure_max_blocks_in_multipart_upload

Максимальное количество блоков в многослойной загрузке для Azure.

azure_max_inflight_parts_for_one_file

Максимальное количество одновременно загруженных частей в запросе многослойной загрузки. 0 означает неограниченно.

azure_max_single_part_copy_size

Максимальный размер объекта для копирования с использованием одномоментного копирования в Azure Blob Storage.

azure_max_single_part_upload_size

Максимальный размер объекта для загрузки с использованием одномоментной загрузки в Azure Blob Storage.

azure_max_single_read_retries

Максимальное количество повторных попыток во время единичного считывания из Azure Blob Storage.

azure_max_unexpected_write_error_retries

Максимальное количество повторных попыток в случае неожиданных ошибок во время записи в Azure Blob Storage.

azure_max_upload_part_size

Максимальный размер части для загрузки во время многослойной загрузки в Azure Blob Storage.

azure_min_upload_part_size

Минимальный размер части для загрузки во время многослойной загрузки в Azure Blob Storage.

azure_sdk_max_retries

Максимальное количество повторных попыток в Azure SDK.

azure_sdk_retry_initial_backoff_ms

Минимальная задержка между повторными попытками в Azure SDK.

azure_sdk_retry_max_backoff_ms

Максимальная задержка между повторными попытками в Azure SDK.

azure_skip_empty_files

Включает или отключает пропуск пустых файлов в движке S3.

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

  • 0 — SELECT выбрасывает исключение, если пустой файл не совместим с запрашиваемым форматом.
  • 1 — SELECT возвращает пустой результат для пустого файла.

azure_strict_upload_part_size

Точный размер части для загрузки во время многослойной загрузки в Azure Blob Storage.

azure_throw_on_zero_files_match

Выбросить ошибку, если совпадает ноль файлов согласно правилам расширения glob.

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

  • 1 — SELECT выбрасывает исключение.
  • 0 — SELECT возвращает пустой результат.

azure_truncate_on_insert

Включает или отключает обрезку перед вставкой в таблицы движка Azure.

azure_upload_part_size_multiply_factor

Умножить azure_min_upload_part_size на этот множитель каждый раз, когда azure_multiply_parts_count_threshold частей была загружена из одного запроса к Azure Blob Storage.

azure_upload_part_size_multiply_parts_count_threshold

Каждый раз, когда это число частей было загружено в Azure Blob Storage, azure_min_upload_part_size умножается на azure_upload_part_size_multiply_factor.

backup_restore_batch_size_for_keeper_multi

Максимальный размер пакета для многократного запроса к [Zoo]Keeper во время резервного копирования или восстановления.

backup_restore_batch_size_for_keeper_multiread

Максимальный размер пакета для многократного чтения из [Zoo]Keeper во время резервного копирования или восстановления.

backup_restore_failure_after_host_disconnected_for_seconds

Если хост во время операции BACKUP ON CLUSTER или RESTORE ON CLUSTER не воссоздает свой эфемерный узел 'alive' в ZooKeeper в течение этого времени, то вся операция резервного копирования или восстановления считается неудачной. Это значение должно быть больше любого разумного времени, необходимого хосту для переподключения к ZooKeeper после сбоя. Ноль означает неограниченно.

backup_restore_finish_timeout_after_error_sec

Сколько времени инициатор должен ждать, чтобы другие хосты отреагировали на узел 'error' и остановили свою работу по текущей операции BACKUP ON CLUSTER или RESTORE ON CLUSTER.

backup_restore_keeper_fault_injection_probability

Приблизительная вероятность сбоя для запроса к Keeper во время резервного копирования или восстановления. Допустимое значение находится в интервале [0.0f, 1.0f].

backup_restore_keeper_fault_injection_seed

0 - случайный семя, в противном случае значение настройки.

backup_restore_keeper_max_retries

Максимальное количество повторных попыток для операций [Zoo]Keeper во время выполнения операции BACKUP или RESTORE. Должно быть достаточно большим, чтобы вся операция не завершилась неудачей из-за временной ошибки [Zoo]Keeper.

backup_restore_keeper_max_retries_while_handling_error

Максимальное количество повторных попыток для операций [Zoo]Keeper во время обработки ошибки операции BACKUP ON CLUSTER или RESTORE ON CLUSTER.

backup_restore_keeper_max_retries_while_initializing

Максимальное количество повторных попыток для операций [Zoo]Keeper во время инициализации операции BACKUP ON CLUSTER или RESTORE ON CLUSTER.

backup_restore_keeper_retry_initial_backoff_ms

Начальная задержка для операций [Zoo]Keeper во время резервного копирования или восстановления.

backup_restore_keeper_retry_max_backoff_ms

Максимальная задержка для операций [Zoo]Keeper во время резервного копирования или восстановления.

backup_restore_keeper_value_max_size

Максимальный размер данных узла [Zoo]Keeper во время резервного копирования.

backup_restore_s3_retry_attempts

Настройка для Aws::Client::RetryStrategy, Aws::Client делает повторные попытки самостоятельно, 0 означает отсутствие повторных попыток. Это происходит только для резервного копирования/восстановления.

cache_warmer_threads

ClickHouse Cloud only

Имеет эффект только в ClickHouse Cloud. Количество фоновых потоков для спекулятивной загрузки новых частей данных в кэш файлов, когда включен cache_populated_by_fetch. Ноль для отключения.

calculate_text_stack_trace

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

cancel_http_readonly_queries_on_client_close

Отменяет HTTP-запросы только для чтения (например, SELECT), когда клиент закрывает соединение, не дождавшись ответа.

Значение по умолчанию в облаке: 1.

cast_ipv4_ipv6_default_on_conversion_error

Оператор CAST для IPv4, оператор CAST для типа IPV6, функции toIPv4, toIPv6 будут возвращать значение по умолчанию вместо выбрасывания исключения при ошибке преобразования.

cast_keep_nullable

Включает или отключает сохранение типа данных Nullable в операциях CAST.

Когда настройка включена и аргумент функции CAST является Nullable, результат также преобразуется в тип Nullable. Когда настройка отключена, результат всегда имеет точно указанный целевой тип.

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

  • 0 — Результат CAST имеет именно указанный целевой тип.
  • 1 — Если аргумент типа Nullable, результат CAST преобразуется в Nullable(DestinationDataType).

Примеры

Следующий запрос возвращает точно указанный целевой тип данных:

Результат:

Следующий запрос возвращает модификацию Nullable для целевого типа данных:

Результат:

См. Также

  • CAST функция

cast_string_to_dynamic_use_inference

Использовать вывод типов во время преобразования строки в динамический тип.

cast_string_to_variant_use_inference

Использовать вывод типов во время преобразования строки в вариант.

check_query_single_value_result

Определяет уровень детализации результата запроса CHECK TABLE для движков семейства MergeTree.

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

  • 0 — запрос показывает статус проверки для каждой отдельной части данных таблицы.
  • 1 — запрос показывает общий статус проверки таблицы.

check_referential_table_dependencies

Проверяет, что DDL-запрос (например, DROP TABLE или RENAME) не нарушит ссылочные зависимости.

check_table_dependencies

Проверяет, что DDL-запрос (например, DROP TABLE или RENAME) не нарушит зависимости.

checksum_on_read

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

cloud_mode

Режим облака.

cloud_mode_database_engine

Движок базы данных, разрешенный в облаке. 1 — переписывать DDL для использования реплицированной базы данных, 2 — переписывать DDL для использования общей базы данных.

cloud_mode_engine

Семейство движков, разрешенное в облаке.

  • 0 — разрешить всё
  • 1 — переписывать DDL для использования *ReplicatedMergeTree
  • 2 — переписывать DDL для использования SharedMergeTree
  • 3 — переписывать DDL для использования SharedMergeTree, если явно не указан удаленный диск

UInt64 для минимизации публичной части.

cluster_for_parallel_replicas

Beta feature. Learn more.

Кластер для шардирования, в котором расположен текущий сервер.

collect_hash_table_stats_during_aggregation

Включает сбор статистики хеш-таблицы для оптимизации распределения памяти.

collect_hash_table_stats_during_joins

Включает сбор статистики хеш-таблицы для оптимизации распределения памяти.

compatibility

Настройка compatibility заставляет ClickHouse использовать настройки по умолчанию предыдущей версии ClickHouse, где предыдущая версия указывается как настройка.

Если настройки установлены на не-значения по умолчанию, то эти настройки учитываются (только настройки, которые не были изменены, подлежат воздействию настройки compatibility).

Эта настройка принимает номер версии ClickHouse в виде строки, например 22.3, 22.8. Пустое значение означает, что эта настройка отключена.

Отключено по умолчанию.

примечание

В ClickHouse Cloud настройка совместимости должна быть установлена поддержкой ClickHouse Cloud. Пожалуйста, откройте запрос для ее установки.

compatibility_ignore_auto_increment_in_create_table

Игнорировать ключевое слово AUTO_INCREMENT в объявлении колонки, если true, иначе возвращать ошибку. Это упрощает миграцию с MySQL.

compatibility_ignore_collation_in_create_table

Совместимость игнорирует сортировку при создании таблицы.

compile_aggregate_expressions

Включает или отключает JIT-компиляцию агрегатных функций в нативный код. Включение этой настройки может улучшить производительность.

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

  • 0 — Агегация выполняется без JIT-компиляции.
  • 1 — Агрегация выполняется с использованием JIT-компиляции.

См. Также

compile_expressions

Компилирует некоторые скалярные функции и операторы в нативный код.

compile_sort_description

Компилирует описание сортировки в нативный код.

connect_timeout

Тайм-аут подключения, если нет реплик.

connect_timeout_with_failover_ms

Тайм-аут в миллисекундах для подключения к удаленному серверу для движка распределенной таблицы, если в определении кластера используются секции 'shard' и 'replica'. Если неудачно, несколько попыток производятся для подключения к различным репликам.

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 для объяснения).

Например, обратите внимание, как следующий запрос SELECT не изменен (дефолтное поведение):

Результат:

Давайте установим convert_query_to_cnf в true и посмотрим, что изменится:

Обратите внимание, что оператор WHERE переписан в CNF, но набор результатов идентичен — логика булева условия осталась без изменений:

Возможные значения: true, false.

count_distinct_implementation

Указывает, какая из функций uniq* должна использоваться для выполнения конструкции COUNT(DISTINCT ...).

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

count_distinct_optimization

Переписывает count distinct в подзапрос по группировке.

create_if_not_exists

Включает IF NOT EXISTS для оператора CREATE по умолчанию. Если эта настройка или IF NOT EXISTS указана, и таблица с указанным именем уже существует, исключение не будет выброшено.

create_index_ignore_unique

Игнорировать ключевое слово UNIQUE при создании уникального индекса. Сделано для тестов совместимости SQL.

create_replicated_merge_tree_fault_injection_probability

Вероятность ошибки инъекции при создании таблицы после создания метаданных в ZooKeeper.

create_table_empty_primary_key_by_default

Разрешить создание *MergeTree таблиц с пустым первичным ключом, когда ORDER BY и PRIMARY KEY не указаны.

cross_join_min_bytes_to_compress

Минимальный размер блока для сжатия в CROSS JOIN. Нулевое значение отключает этот порог. Этот блок сжимается, когда достигается один из двух порогов (по строкам или по байтам).

cross_join_min_rows_to_compress

Минимальное количество строк для сжатия блока в CROSS JOIN. Нулевое значение отключает этот порог. Этот блок сжимается, когда достигается один из двух порогов (по строкам или по байтам).

data_type_default_nullable

Позволяет типам данных без явных модификаторов NULL или NOT NULL в определении колонки быть Nullable.

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

  • 1 — Типы данных в определениях столбцов по умолчанию устанавливаются как Nullable.
  • 0 — Типы данных в определениях столбцов по умолчанию устанавливаются как не Nullable.

database_atomic_wait_for_drop_and_detach_synchronously

Добавляет модификатор SYNC к всем запросам DROP и DETACH.

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

  • 0 — Запросы будут выполняться с задержкой.
  • 1 — Запросы будут выполняться без задержки.

database_replicated_allow_explicit_uuid

0 - Не разрешать явно указывать UUID для таблиц в реплицированных базах данных. 1 - Разрешить. 2 - Разрешить, но игнорировать указанный UUID и вместо этого генерировать случайный.

database_replicated_allow_heavy_create

Разрешить долго выполняющиеся DDL запросы (CREATE AS SELECT и POPULATE) в реплицированном движке базы данных. Обратите внимание, что это может блокировать очередь DDL на длительное время.

database_replicated_allow_only_replicated_engine

Разрешить создание только реплицированных таблиц в базе данных с движком Replicated.

database_replicated_allow_replicated_engine_arguments

0 - Не разрешать явно указывать путь ZooKeeper и имя реплики для *MergeTree таблиц в реплицированных базах данных. 1 - Разрешить. 2 - Разрешить, но игнорировать указанный путь и использовать вместо этого путь по умолчанию. 3 - Разрешить и не записывать предупреждение в журнал.

database_replicated_always_detach_permanently

Выполнять DETACH TABLE как DETACH TABLE PERMANENTLY, если движок базы данных — Replicated.

database_replicated_enforce_synchronous_settings

Принудительно дожидаться некоторых запросов (также см. database_atomic_wait_for_drop_and_detach_synchronously, mutations_sync, alter_sync). Не рекомендуется включать эти настройки.

database_replicated_initial_query_timeout_sec

Устанавливает, как долго начальный DDL-запрос должен ждать, чтобы реплицированная база данных обработала предыдущие записи в очереди DDL в секундах.

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

  • Положительное целое число.
  • 0 — Неограниченно.

decimal_check_overflow

Проверка переполнения десятичных арифметических/сравнительных операций.

deduplicate_blocks_in_dependent_materialized_views

Включает или отключает проверку дедупликации для материализованных представлений, которые получают данные из таблиц типа Replicated*.

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

0 — Отключено. 1 — Включено.

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

По умолчанию дедупликация не выполняется для материализованных представлений, но выполняется на верхнем уровне, в исходной таблице. Если вставленный блок пропускается из-за дедупликации в исходной таблице, вставка в прикрепленные материализованные представления не произойдет. Это поведение существует, чтобы разрешить вставку сильно агрегированных данных в материализованные представления, в случаях, когда вставленные блоки одинаковы после агрегации в материализованном представлении, но происходят из разных вставок в исходную таблицу. В то же время, это поведение "ломает" идемпотентность INSERT. Если INSERT в основную таблицу был успешен, а INSERT в материализованное представление не удался (например, из-за сбоя связи с ClickHouse Keeper), клиент получит ошибку и может повторить операцию. Однако материализованное представление не получит второй вставки, потому что она будет отклонена дедупликацией в главной (исходной) таблице. Настройка deduplicate_blocks_in_dependent_materialized_views позволяет изменить это поведение. При повторной попытке материализованное представление получит повторную вставку и выполнит проверку дедупликации самостоятельно, игнорируя результат проверки для исходной таблицы и вставляя строки, потерянные из-за первого сбоя.

default_materialized_view_sql_security

Позволяет установить значение по умолчанию для параметра SQL SECURITY при создании материализованного представления. Подробнее о безопасности SQL.

Значение по умолчанию — DEFINER.

default_max_bytes_in_join

Максимальный размер правой таблицы, если требуется ограничение, но max_bytes_in_join не установлен.

default_normal_view_sql_security

Позволяет установить значение по умолчанию для параметра SQL SECURITY при создании обычного представления. Подробнее о безопасности SQL.

Значение по умолчанию — INVOKER.

default_reader_bucket_count

Experimental feature. Learn more.

Число задач для параллельного чтения в распределенном запросе по умолчанию. Задачи распределяются между репликами.

default_shuffle_join_bucket_count

Experimental feature. Learn more.

Число ведер для распределенного shuffle-hash-join по умолчанию.

default_table_engine

Движок таблицы по умолчанию, который будет использоваться, когда ENGINE не установлен в операторе CREATE.

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

  • строка, представляющая любое допустимое имя движка таблицы.

Значение по умолчанию в облаке: SharedMergeTree.

Пример

Запрос:

Результат:

В этом примере любая новая таблица, которая не указывает Engine, будет использовать движок таблицы Log:

Запрос:

Результат:

default_temporary_table_engine

То же, что и default_table_engine, но для временных таблиц.

В этом примере любая новая временная таблица, которая не указывает Engine, будет использовать движок таблицы Log:

Запрос:

Результат:

default_view_definer

Позволяет установить значение по умолчанию для параметра DEFINER при создании представления. Подробнее о безопасности SQL.

Значение по умолчанию — CURRENT_USER.

describe_compact_output

Если true, включает только имена колонок и типы в результате запроса DESCRIBE.

describe_extend_object_types

Выводит конкретный тип колонок типа Object в запросе DESCRIBE.

describe_include_subcolumns

Включает описание подколонок для запроса DESCRIBE. Например, члены Tuple или подколонки типа Map, Nullable или Array.

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

  • 0 — Подколонки не включены в запросы DESCRIBE.
  • 1 — Подколонки включены в запросы DESCRIBE.

Пример

Смотрите пример для оператора DESCRIBE.

describe_include_virtual_columns

Если true, виртуальные колонки таблицы будут включены в результат запроса DESCRIBE.

dialect

Какой диалект будет использован для разбора запроса.

dictionary_validate_primary_key_type

Проверка типа первичного ключа для словарей. По умолчанию тип id для простых компоновок будет неявно преобразован в UInt64.

distinct_overflow_mode

Устанавливает, что происходит, когда объем данных превышает один из лимитов.

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

  • throw: выбросить исключение (по умолчанию).
  • break: остановить выполнение запроса и вернуть частичный результат, как если бы исходные данные закончились.

distributed_aggregation_memory_efficient

Включен ли режим экономии памяти для распределенной агрегации.

distributed_background_insert_batch

Включает/выключает отправку вставленных данных в пакетах.

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

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

  • 1 — Включено.
  • 0 — Отключено.

distributed_background_insert_max_sleep_time_ms

Максимальный интервал для движка таблицы Distributed, чтобы отправить данные. Ограничивает экспоненциальный прирост интервала, установленного в настройке distributed_background_insert_sleep_time_ms.

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

  • Положительное целое число миллисекунд.

distributed_background_insert_sleep_time_ms

Базовый интервал для движка таблицы Distributed для отправки данных. Фактический интервал растет экспоненциально в случае ошибок.

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

  • Положительное целое число миллисекунд.

distributed_background_insert_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_sync. Нулевое значение означает отсутствие таймаута.

distributed_cache_bypass_connection_pool

ClickHouse Cloud only

Эта настройка имеет эффект только в ClickHouse Cloud. Позволяет обходить пул соединений к распределенному кэшу.

distributed_cache_connect_max_tries

ClickHouse Cloud only

Эта настройка имеет эффект только в ClickHouse Cloud. Количество попыток подключения к распределенному кэшу в случае неудачи.

distributed_cache_data_packet_ack_window

ClickHouse Cloud only

Эта настройка имеет эффект только в ClickHouse Cloud. Окно для отправки ACK для последовательности DataPacket в одном запросе чтения распределенного кэша.

distributed_cache_discard_connection_if_unread_data

ClickHouse Cloud only

Эта настройка имеет эффект только в ClickHouse Cloud. Отклоняет соединение, если некоторые данные не прочитаны.

distributed_cache_fetch_metrics_only_from_current_az

ClickHouse Cloud only

Эта настройка имеет эффект только в ClickHouse Cloud. Получает метрики только из текущей зоны доступности в system.distributed_cache_metrics, system.distributed_cache_events.

distributed_cache_log_mode

ClickHouse Cloud only

Эта настройка имеет эффект только в ClickHouse Cloud. Режим записи в system.distributed_cache_log.

distributed_cache_max_unacked_inflight_packets

ClickHouse Cloud only

Эта настройка имеет эффект только в ClickHouse Cloud. Максимальное количество неподтвержденных пакетов, находящихся в пути, в одном запросе чтения распределенного кэша.

distributed_cache_min_bytes_for_seek

ClickHouse Cloud only

Эта настройка имеет эффект только в ClickHouse Cloud. Минимальное количество байт для выполнения поиска в распределенном кэше.

distributed_cache_pool_behaviour_on_limit

ClickHouse Cloud only

Эта настройка имеет эффект только в ClickHouse Cloud. Определяет поведение соединения к распределенному кэшу при достижении лимита пула.

distributed_cache_read_alignment

ClickHouse Cloud only

Эта настройка имеет эффект только в ClickHouse Cloud. Настройка для тестирования, не изменяйте ее.

distributed_cache_read_only_from_current_az

ClickHouse Cloud only

Эта настройка имеет эффект только в ClickHouse Cloud. Разрешает читать только из текущей зоны доступности. Если отключено, будет произведено чтение со всех серверов кэша во всех зонах доступности.

distributed_cache_read_request_max_tries

ClickHouse Cloud only

Эта настройка имеет эффект только в ClickHouse Cloud. Количество попыток выполнения запроса к распределенному кэшу в случае неудачи.

distributed_cache_receive_response_wait_milliseconds

ClickHouse Cloud only

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

distributed_cache_receive_timeout_milliseconds

ClickHouse Cloud only

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

distributed_cache_throw_on_error

ClickHouse Cloud only

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

distributed_cache_wait_connection_from_pool_milliseconds

ClickHouse Cloud only

Эта настройка имеет эффект только в ClickHouse Cloud. Время ожидания в миллисекундах для получения соединения из пула соединений, если distributed_cache_pool_behaviour_on_limit равно wait.

distributed_connections_pool_size

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

distributed_ddl_entry_format_version

Совместимость версии распределенных DDL (ON CLUSTER) запросов.

distributed_ddl_output_mode

Устанавливает формат результата запроса распределенного DDL.

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

  • 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, но не ожидает неактивные реплики базы данных Replicated.
  • throw_only_active — похоже на throw, но не ожидает неактивные реплики базы данных Replicated.

Облачное значение по умолчанию: none.

distributed_ddl_task_timeout

Устанавливает таймаут для ответов на DDL запросы со всех хостов в кластере. Если DDL запрос не был выполнен на всех хостах, ответ будет содержать ошибку таймаута, и запрос будет выполнен в асинхронном режиме. Отрицательное значение означает бесконечный таймаут.

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

  • Положительное целое число.
  • 0 — Асинхронный режим.
  • Отрицательное целое число — бесконечный таймаут.

distributed_foreground_insert

Включает или отключает синхронную вставку данных в таблицу Distributed.

По умолчанию, при вставке данных в таблицу Distributed, сервер ClickHouse отправляет данные на узлы кластера в фоновом режиме. Когда distributed_foreground_insert=1, данные обрабатываются синхронно, и операция INSERT завершается успешно только после того, как все данные будут сохранены на всех шарах (по крайней мере одна реплика для каждого шара, если internal_replication истинно).

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

  • 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_insert_skip_read_only_replicas

Включает пропуск реплик только для чтения для запросов INSERT в Distributed.

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

  • 0 — INSERT выполнялся как обычно, если он попадет на только для чтения реплику, он завершится с ошибкой.
  • 1 — Инициатор пропустит только для чтения реплики перед отправкой данных на шарды.

distributed_product_mode

Изменяет поведение распределенных подзапросов.

ClickHouse применяет эту настройку, когда запрос содержит произведение распределенных таблиц, т.е. когда запрос для распределенной таблицы содержит не-GLOBAL подзапрос для распределенной таблицы.

Ограничения:

  • Применяется только для подзапросов IN и JOIN.
  • Только если секция FROM использует распределенную таблицу, содержащую более одного шара.
  • Если подзапрос касается распределенной таблицы, содержащей более одного шара.
  • Не используется для функции табличного типа remote.

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

  • deny — Значение по умолчанию. Запрещает использование таких типов подзапросов (возвращает исключение "Double-distributed in/JOIN subqueries is denied").
  • local — Заменяет базу данных и таблицу в подзапросе на локальные для целевого сервера (шара), оставляя нормальный IN/JOIN.
  • global — Заменяет запрос IN/JOIN на GLOBAL IN/GLOBAL JOIN.
  • allow — Разрешает использование таких типов подзапросов.

distributed_push_down_limit

Включает или отключает применение LIMIT на каждом шаре отдельно.

Это позволит избежать:

  • Отправки лишних строк по сети;
  • Обработки строк после лимита на инициаторе.

Начиная с версии 21.9, вы больше не можете получить неточные результаты, так как distributed_push_down_limit изменяет выполнение запроса только если выполнено хотя бы одно из условий:

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

  • 0 — Отключено.
  • 1 — Включено.

Смотрите также:

distributed_replica_error_cap

  • Тип: неотрицательное целое число
  • Значение по умолчанию: 1000

Количество ошибок каждой реплики ограничено этим значением, предотвращая накопление слишком большого количества ошибок в одной реплике.

Смотрите также:

distributed_replica_error_half_life

  • Тип: секунды
  • Значение по умолчанию: 60 секунд

Контролирует, насколько быстро ошибки в распределенных таблицах обнуляются. Если реплика недоступна в течение некоторого времени, накапливает 5 ошибок, и distributed_replica_error_half_life установлен на 1 секунду, то реплика считается нормальной через 3 секунды после последней ошибки.

Смотрите также:

distributed_replica_max_ignored_errors

  • Тип: неотрицательное целое число
  • Значение по умолчанию: 0

Количество ошибок, которые будут проигнорированы при выборе реплик (в соответствии с алгоритмом load_balancing).

Смотрите также:

do_not_merge_across_partitions_select_final

Объединять части только в одной партиции при select final.

empty_result_for_aggregation_by_constant_keys_on_empty_set

Возвращает пустой результат при агрегировании по постоянным ключам на пустом наборе.

empty_result_for_aggregation_by_empty_set

Возвращает пустой результат при агрегировании без ключей на пустом наборе.

enable_adaptive_memory_spill_scheduler

Experimental feature. Learn more.

Запускает процессор для сброса данных в внешнее хранилище адаптивно. Поддерживается grace join в настоящее время.

enable_blob_storage_log

Записывает информацию о операциях с блоб-хранилищем в таблицу system.blob_storage_log.

enable_deflate_qpl_codec

Если включено, кодек DEFLATE_QPL может быть использован для сжатия колонок.

enable_early_constant_folding

Включает оптимизацию запросов, где мы анализируем результаты функций и подзапросов и переписываем запрос, если в них есть константы.

enable_extended_results_for_datetime_functions

Включает или отключает возврат результатов типа:

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

  • 0 — Функции возвращают Date или DateTime для всех типов аргументов.
  • 1 — Функции возвращают Date32 или DateTime64 для аргументов Date32 или DateTime64 и Date или DateTime в противном случае.

enable_filesystem_cache

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

enable_filesystem_cache_log

Позволяет записывать журнал кэширования файловой системы для каждого запроса.

enable_filesystem_cache_on_write_operations

Записывать в кэш во время операций записи. Для того чтобы эта настройка работала, она также должна быть добавлена в конфигурацию диска.

enable_filesystem_read_prefetches_log

Записывать в журнал system.filesystem предзагрузку во время запроса. Следует использовать только для тестирования или отладки, не рекомендуется включать по умолчанию.

enable_global_with_statement

Распространять WITH операторы на запросы UNION и все подзапросы.

enable_hdfs_pread

Включает или отключает pread для файлов HDFS. По умолчанию используется hdfsPread. Если отключено, будут использоваться hdfsRead и hdfsSeek для чтения файлов hdfs.

enable_http_compression

Включает или отключает сжатие данных в ответе на HTTP-запрос.

Для получения дополнительной информации читайте описание HTTP интерфейса.

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

  • 0 — Отключено.
  • 1 — Включено.

enable_job_stack_trace

Выводить стек трейс создателя задачи, когда задача завершилась с исключением.

enable_lightweight_delete

Включить легковесные мутации удаления для таблиц mergetree.

enable_memory_bound_merging_of_aggregation_results

Включить стратегию слияния, ограниченную памятью, для агрегирования.

enable_multiple_prewhere_read_steps

Перевести больше условий из WHERE в PREWHERE и выполнять чтения с диска и фильтрацию в нескольких этапах, если есть несколько условий, объединенных с AND.

enable_named_columns_in_function_tuple

Генерировать именованные кортежи в функции tuple() когда все имена уникальны и могут рассматриваться как нецитируемые идентификаторы.

enable_optimize_predicate_expression

Включает продвижение предикатов в запросах SELECT.

Продвижение предикатов может значительно снизить сетевой трафик для распределенных запросов.

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

  • 0 — Отключено.
  • 1 — Включено.

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

Рассмотрим следующие запросы:

  1. SELECT count() FROM test_table WHERE date = '2018-10-10'
  2. 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_parsing_to_custom_serialization

Если включено, данные могут быть разобраны напрямую в колонки с пользовательским сериализацией (например, Sparse) в соответствии с подсказками для сериализации, полученными из таблицы.

enable_positional_arguments

Включает или отключает поддержку позиционных аргументов для операторов GROUP BY, LIMIT BY, ORDER BY.

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

  • 0 — Позиционные аргументы не поддерживаются.
  • 1 — Позиционные аргументы поддерживаются: номера колонок могут использоваться вместо имен колонок.

Пример

Запрос:

Результат:

enable_reads_from_query_cache

Если установлено в true, результаты запросов SELECT извлекаются из кэша запросов.

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

  • 0 - Отключено
  • 1 - Включено

enable_s3_requests_logging

Включите явное логирование запросов S3. Имеет смысл только для отладки.

enable_scalar_subquery_optimization

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

enable_sharing_sets_for_mutations

Разрешает совместное использование объектов множества, созданных для подзапросов IN, между разными задачами одной мутации. Это снижает использование памяти и загрузку CPU.

enable_software_prefetch_in_aggregation

Включает использование программного предзагрузки в агрегации.

enable_unaligned_array_join

Разрешает ARRAY JOIN с несколькими массивами, которые имеют разный размер. Когда эта настройка включена, массивы будут изменены на размер самого длинного.

enable_url_encoding

Разрешает включение/отключение декодирования/кодирования пути в uri в таблицах с движком URL.

Отключено по умолчанию.

enable_vertical_final

Если включено, удаляет дублированные строки во время FINАL, помечая строки как удаленные и фильтруя их позже, вместо объединения строк.

enable_writes_to_query_cache

Если включено, результаты запросов SELECT сохраняются в кэше запросов.

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

  • 0 - Отключено
  • 1 - Включено

enable_zstd_qat_codec

Если включено, кодек ZSTD_QAT может использоваться для сжатия колонок.

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

Разрешает или запрещает пропуск пустых файлов в таблицах с движком File.

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

  • 0 — SELECT вызывает исключение, если пустой файл несовместим с запрашиваемым форматом.
  • 1 — SELECT возвращает пустой результат для пустого файла.

engine_file_truncate_on_insert

Разрешает или запрещает усечение перед вставкой в таблицы с движком File.

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

  • 0 — запрос INSERT добавляет новые данные в конец файла.
  • 1 — запрос INSERT заменяет существующее содержимое файла новыми данными.

engine_url_skip_empty_files

Разрешает или запрещает пропуск пустых файлов в таблицах с движком URL.

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

  • 0 — SELECT вызывает исключение, если пустой файл несовместим с запрашиваемым форматом.
  • 1 — SELECT возвращает пустой результат для пустого файла.

except_default_mode

Установите режим по умолчанию в запросе EXCEPT. Возможные значения: пустая строка, 'ALL', 'DISTINCT'. Если пустая, запрос без режима вызовет исключение.

execute_distributed_plan_locally

Experimental feature. Learn more.

Запускает все задачи плана распределенного запроса локально. Полезно для тестирования и отладки.

external_storage_connect_timeout_sec

Таймаут подключения в секундах. В настоящее время поддерживается только для MySQL.

external_storage_max_read_bytes

Ограничивает максимальное количество байт, когда таблица с внешним движком должна сбрасывать исторические данные. В настоящее время поддерживается только для движка таблиц MySQL, движка базы данных и словаря. Если равно 0, эта настройка отключена.

external_storage_max_read_rows

Ограничивает максимальное количество строк, когда таблица с внешним движком должна сбрасывать исторические данные. В настоящее время поддерживается только для движка таблиц MySQL, движка базы данных и словаря. Если равно 0, эта настройка отключена.

external_storage_rw_timeout_sec

Таймаут чтения/записи в секундах. В настоящее время поддерживается только для MySQL.

external_table_functions_use_nulls

Определяет, как функции mysql, postgresql и odbc обрабатывают Nullable колонки.

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

  • 0 — Табличная функция явно использует Nullable колонки.
  • 1 — Табличная функция неявно использует Nullable колонки.

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

Если настройка установлена в 0, табличная функция не создает Nullable колонки и вставляет значения по умолчанию вместо NULL. Это также относится к значению NULL внутри массивов.

external_table_strict_query

Если установлено в true, запрещает преобразование выражений в локальные фильтры для запросов к внешним таблицам.

extract_key_value_pairs_max_pairs_per_row

Максимальное количество пар, которые может производить функция extractKeyValuePairs. Используется как предохранитель для предотвращения чрезмерного потребления памяти.

extremes

Указывает, следует ли подсчитывать крайние значения (минимумы и максимумы в столбцах результата запроса). Принимает 0 или 1. По умолчанию 0 (отключено). Более подробную информацию см. в разделе "Крайние значения".

fallback_to_stale_replicas_for_distributed_queries

Принуждает запрос к устаревшей реплике, если обновленные данные недоступны. См. Репликация.

ClickHouse выбирает наиболее подходящую из устаревших реплик таблицы.

Используется при выполнении SELECT из распределенной таблицы, которая указывает на реплицированные таблицы.

По умолчанию 1 (включено).

filesystem_cache_boundary_alignment

Выравнивание границы кэша файловой системы. Эта настройка применяется только к чтению, не связанному с диском (например, для кэша удаленных движков таблиц / табличных функций, но не для конфигурации хранения таблиц MergeTree). Значение 0 означает, что выравнивания нет.

filesystem_cache_enable_background_download_during_fetch

ClickHouse Cloud only

Имеет эффект только в ClickHouse Cloud. Время ожидания, чтобы заблокировать кэш для резервирования пространства в кэше файловой системы.

filesystem_cache_enable_background_download_for_metadata_files_in_packed_storage

ClickHouse Cloud only

Имеет эффект только в ClickHouse Cloud. Время ожидания, чтобы заблокировать кэш для резервирования пространства в кэше файловой системы.

filesystem_cache_max_download_size

Максимальный размер кэша удаленной файловой системы, который может быть загружен одним запросом.

filesystem_cache_name

Имя кэша файловой системы, используемое для статeless движков таблиц или озер данных.

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

Пропуск загрузки из удаленной файловой системы, если превышен размер кэша запросов.

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

Автоматически применяет модификатор FINAL ко всем таблицам в запросе, к таблицам, где FINAL применим, включая объединенные таблицы и таблицы в подзапросах, и распределенные таблицы.

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

  • 0 - отключено
  • 1 - включено

Пример:

flatten_nested

Устанавливает формат данных вложенных (nested) колонок.

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

  • 1 — Вложенная колонка упрощается в отдельные массивы.
  • 0 — Вложенная колонка остается единым массивом кортежей.

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

Если настройка установлена в 0, можно использовать произвольный уровень вложенности.

Примеры

Запрос:

Результат:

Запрос:

Результат:

force_aggregate_partitions_independently

Принуждает использовать оптимизацию, когда это применимо, но эвристика решила не использовать ее.

force_aggregation_in_order

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

force_data_skipping_indices

Отключает выполнение запросов, если переданные индексы пропуска данных не были использованы.

Рассмотрим следующий пример:

force_exchange_kind

Experimental feature. Learn more.

Принуждает указанный вид операторов обмена между этапами распределенного запроса.

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

  • '' - не принуждать никакой вид операторов обмена, позвольте оптимизатору выбрать,
  • 'Persisted' - использовать временные файлы в объектном хранилище,
  • 'Streaming' - потоковый обмен данными по сети.

force_grouping_standard_compatibility

Заставляет функцию GROUPING возвращать 1, если аргумент не используется в качестве ключа агрегации.

force_index_by_date

Отключает выполнение запросов, если индекс не может быть использован по дате.

Работает с таблицами семейства MergeTree.

Если force_index_by_date=1, 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

Включает или отключает выполнение запросов, если 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

Отключает выполнение запросов, если индексирование по первичному ключу невозможно.

Работает с таблицами семейства MergeTree.

Если force_primary_key=1, ClickHouse проверяет, имеет ли запрос условие первичного ключа, которое можно использовать для ограничения диапазонов данных. Если нет подходящего условия, вызывается исключение. Однако он не проверяет, сокращает ли условие объем данных для чтения. Более подробную информацию о диапазонах данных в таблицах MergeTree см. в MergeTree.

force_remove_data_recursively_on_drop

Рекурсивно удаляет данные при выполнении запроса DROP. Избегает ошибки 'Каталог не пуст', но может тихо удалить отсоединенные данные.

formatdatetime_e_with_space_padding

Форматировщик '%e' в функции 'formatDateTime' печатает однозначные дни с ведущим пробелом, например ' 2' вместо '2'.

formatdatetime_f_prints_scale_number_of_digits

Форматировщик '%f' в функции 'formatDateTime' печатает только количество знаков масштаба для DateTime64 вместо фиксированных 6 цифр.

formatdatetime_f_prints_single_zero

Форматировщик '%f' в функции 'formatDateTime' печатает единственный ноль вместо шести нулей, если отформатированное значение не имеет дробных секунд.

formatdatetime_format_without_leading_zeros

Форматировщики '%c', '%l' и '%k' в функции 'formatDateTime' печатают месяцы и часы без ведущих нулей.

formatdatetime_parsedatetime_m_is_month_name

Форматировщик '%M' в функциях 'formatDateTime' и 'parseDateTime' печатает/анализирует название месяца вместо минут.

fsync_metadata

Включает или отключает fsync при записи файлов .sql. Включено по умолчанию.

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

function_implementation

Выберите реализацию функции для определенной цели или варианта (экспериментальный). Если пусто, включите все из них.

function_json_value_return_type_allow_complex

Контролирует, разрешать ли возвращать сложный тип (например, структура, массив, map) для функции json_value.

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

  • true — Разрешить.
  • false — Запретить.

function_json_value_return_type_allow_nullable

Контролирует, разрешать ли возвращать NULL, когда значение не существует для функции JSON_VALUE.

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

  • true — Разрешить.
  • false — Запретить.

function_locate_has_mysql_compatible_argument_order

Контролирует порядок аргументов в функции locate.

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

  • 0 — Функция locate принимает аргументы (haystack, needle[, start_pos]).
  • 1 — Функция locate принимает аргументы (needle, haystack[, start_pos]) (совместимое с MySQL поведение).

function_range_max_elements_in_block

Устанавливает предельный порог для объема данных, генерируемых функцией range. Определяет максимальное количество значений, генерируемых функцией на блок данных (сумма размеров массивов для каждой строки в блоке).

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

  • Положительное целое число.

См. также

function_sleep_max_microseconds_per_block

Максимальное количество микросекунд, которое функция sleep может спать для каждого блока. Если пользователь вызывает ее с большим значением, она вызывает исключение. Это порог безопасности.

function_visible_width_behavior

Версия поведения visibleWidth. 0 - только считайте количество кодовых точек; 1 - правильно считайте нулевую ширину и комбинирующие символы, считайте полноширинные символы за два, оцените ширину табуляции, считайте символы удаления.

geo_distance_returns_float64_on_float64_arguments

Если все четыре аргумента для функций geoDistance, greatCircleDistance, greatCircleAngle являются Float64, возвращайте Float64 и используйте двойную точность для внутренних вычислений. В предыдущих версиях ClickHouse эти функции всегда возвращали Float32.

geotoh3_lon_lat_input_order

Функция 'geoToH3' принимает (lon, lat), если это верно, иначе (lat, lon).

glob_expansion_max_elements

Максимальное количество допустимых адресов (для внешних хранилищ, табличных функций и т.д.).

grace_hash_join_initial_buckets

Experimental feature. Learn more.

Начальное количество бакетов для grace hash join.

grace_hash_join_max_buckets

Experimental feature. Learn more.

Лимит на количество бакетов для grace hash join.

group_by_overflow_mode

Устанавливает, что происходит, когда количество уникальных ключей для агрегации превышает лимит:

  • throw: генерировать исключение
  • break: остановить выполнение запроса и вернуть частичный результат
  • any: продолжать агрегацию для ключей, которые попали в набор, но не добавлять новые ключи в набор.

Использование значения 'any' позволяет запустить приближенную версию GROUP BY. Качество этой аппроксимации зависит от статистической природы данных.

group_by_two_level_threshold

С какого количества ключей начинается двухуровневая агрегация. 0 - порог не установлен.

group_by_two_level_threshold_bytes

С какого размера состояния агрегации в байтах начинается двухуровневая агрегация. 0 - порог не установлен. Двухуровневая агрегация используется, когда хотя бы один из порогов срабатывает.

group_by_use_nulls

Изменяет способ, которым GROUP BY clause обрабатывает типы агрегирующих ключей. Когда используются спецификаторы ROLLUP, CUBE или GROUPING SETS, некоторые ключи агрегации могут не использоваться для получения некоторых строк результата. Столбцы для этих ключей заполняются либо значением по умолчанию, либо NULL в соответствующих строках в зависимости от этой настройки.

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

  • 0 — для типа ключа агрегации используется значение по умолчанию для получения недостающих значений.
  • 1 — ClickHouse выполняет GROUP BY так же, как это описывается в SQL стандарте. Типы ключей агрегации преобразуются в Nullable. Столбцы для соответствующих ключей агрегации заполняются NULL для строк, которые его не использовали.

См. также:

h3togeo_lon_lat_result_order

Функция 'h3ToGeo' возвращает (lon, lat), если это верно, иначе (lat, lon).

handshake_timeout_ms

Тайм-аут в миллисекундах для получения пакета Hello от реплик во время рукопожатия.

hdfs_create_new_file_on_insert

Включает или отключает создание нового файла при каждой вставке в таблицы HDFS. Если включено, при каждой вставке будет создан новый HDFS файл с именем, аналогичным следующему шаблону:

initial: 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 файла.

hdfs_skip_empty_files

Включает или отключает пропуск пустых файлов в HDFS таблицах.

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

  • 0 — SELECT генерирует исключение, если пустой файл несовместим с запрашиваемым форматом.
  • 1 — SELECT возвращает пустой результат для пустого файла.

hdfs_throw_on_zero_files_match

Генерировать ошибку, если совпадает ноль файлов согласно правилам glob-расширения.

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

  • 1 — SELECT генерирует исключение.
  • 0 — SELECT возвращает пустой результат.

hdfs_truncate_on_insert

Включает или отключает обрезку перед вставкой в таблицы hdfs. Если отключено, будет сгенерировано исключение при попытке вставить, если файл в HDFS уже существует.

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

  • 0 — запрос INSERT добавляет новые данные в конец файла.
  • 1 — запрос INSERT заменяет существующее содержимое файла новыми данными.

hedged_connection_timeout_ms

Тайм-аут соединения для установки соединения с репликой для хеджируемых запросов.

Beta feature. Learn more.

Размер динамического списка кандидатов при поиске в индексе векторной схожести, также известным как 'ef_search'.

hsts_max_age

Срок действия для HSTS. 0 означает отключение HSTS.

http_connection_timeout

Тайм-аут HTTP соединения (в секундах).

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

  • Любое положительное целое число.
  • 0 - Отключено (бесконечный тайм-аут).

http_headers_progress_interval_ms

Не отправлять HTTP заголовки X-ClickHouse-Progress более часто, чем на каждом указанном интервале.

http_make_head_request

Настройка http_make_head_request позволяет выполнять запрос HEAD при чтении данных с HTTP для получения информации о файле для чтения, такой как его размер. Поскольку это включено по умолчанию, может быть целесообразно отключить эту настройку в тех случаях, когда сервер не поддерживает запросы HEAD.

http_max_field_name_size

Максимальная длина имени поля в HTTP заголовке.

http_max_field_value_size

Максимальная длина значения поля в HTTP заголовке.

http_max_fields

Максимальное количество полей в HTTP заголовке.

http_max_multipart_form_data_size

Лимит на размер содержимого multipart/form-data. Эта настройка не может быть разобрана из параметров URL и должна быть установлена в пользовательском профиле. Обратите внимание, что содержимое разбирается, и внешние таблицы создаются в памяти перед началом выполнения запроса. И это единственный лимит, который влияет на этот этап (лимиты на максимальное использование памяти и максимальное время выполнения не влияют при чтении данных формы HTTP).

http_max_request_param_data_size

Лимит на размер данных запроса, используемого в качестве параметра запроса в предопределенных HTTP запросах.

http_max_tries

Максимальное количество попыток чтения через HTTP.

http_max_uri_size

Устанавливает максимальную длину URI в HTTP запросе.

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

  • Положительное целое число.

http_native_compression_disable_checksumming_on_decompress

Включает или отключает проверку контрольной суммы при декомпрессии данных POST HTTP от клиента. Используется только для родного формата сжатия ClickHouse (не используется с gzip или deflate).

Для получения дополнительной информации прочитайте описание HTTP интерфейса.

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

  • 0 — Отключено.
  • 1 — Включено.

http_receive_timeout

Тайм-аут получения данных по HTTP (в секундах).

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

  • Любое положительное целое число.
  • 0 - Отключено (бесконечный тайм-аут).

http_response_buffer_size

Количество байт для буфера в памяти сервера перед отправкой HTTP ответа клиенту или сбросом на диск (когда http_wait_end_of_query включен).

http_response_headers

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

Если заголовок уже установлен по умолчанию, предоставленное значение переопределит его. Если заголовок не был установлен по умолчанию, он будет добавлен в список заголовков. Заголовки, установленные сервером по умолчанию и не переопределенные этой настройкой, останутся.

Настройка позволяет установить заголовок на постоянное значение. В настоящее время нет способа установить заголовок на динамически вычисляемое значение.

Ни имена, ни значения не могут содержать управляющие символы ASCII.

Если вы реализуете UI приложение, которое позволяет пользователям изменять настройки, но в то же время принимает решения на основе возвращенных заголовков, рекомендуется ограничить эту настройку только для чтения.

Пример: SET http_response_headers = '{"Content-Type": "image/png"}'

http_retry_initial_backoff_ms

Минимальные миллисекунды для времени ожидания при повторной попытке чтения через HTTP.

http_retry_max_backoff_ms

Максимальные миллисекунды для времени ожидания при повторной попытке чтения через HTTP.

http_send_timeout

Тайм-аут отправки HTTP запроса (в секундах).

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

  • Любое положительное целое число.
  • 0 - Отключено (бесконечный тайм-аут).
примечание

Это применимо только к профилю по умолчанию. Требуется перезагрузка сервера, чтобы изменения вступили в силу.

http_skip_not_found_url_for_globs

Пропускать URL для glob с ошибкой HTTP_NOT_FOUND.

http_wait_end_of_query

Включить буферизацию HTTP ответа на стороне сервера.

http_write_exception_in_output_format

Записать исключение в формате вывода для получения корректного результата. Работает с форматами JSON и XML.

http_zlib_compression_level

Устанавливает уровень сжатия данных в ответе на HTTP запрос, если enable_http_compression = 1.

Возможные значения: Числа от 1 до 9.

iceberg_snapshot_id

Запрос таблицы Iceberg, используя конкретный идентификатор снимка.

iceberg_timestamp_ms

Запрос таблицы Iceberg, используя снимок, который был актуален в конкретный момент времени.

idle_connection_timeout

Тайм-аут закрытия неактивных TCP соединений после указанного количества секунд.

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

  • Положительное целое число (0 - закрыть немедленно, через 0 секунд).

ignore_cold_parts_seconds

ClickHouse Cloud only

Имеет значение только в ClickHouse Cloud. Исключает новые части данных из SELECT запросов, пока они не будут предварительно разогреты (см. cache_populated_by_fetch) или не станут старше указанного количества секунд. Только для Replicated-/SharedMergeTree.

ignore_data_skipping_indices

Игнорирует индексы пропуска, указанные, если они используются в запросе.

Рассмотрим следующий пример:

Запрос без игнорирования каких-либо индексов:

Игнорирование индекса xy_idx:

Работает с таблицами семейства MergeTree.

ignore_drop_queries_probability

Если включено, сервер будет игнорировать все запросы DROP таблиц с заданной вероятностью (для Memory и JOIN движков это заменит DROP на TRUNCATE). Используется в тестовых целях.

ignore_materialized_views_with_dropped_target_table

Игнорировать МП с удаленной целевой таблицей во время вставки в представления.

ignore_on_cluster_for_replicated_access_entities_queries

Игнорировать ON CLUSTER клаузу для запросов управления реплицируемыми сущностями.

ignore_on_cluster_for_replicated_named_collections_queries

Игнорировать ON CLUSTER клаузу для запросов управления реплицируемыми именованными коллекциями.

ignore_on_cluster_for_replicated_udf_queries

Игнорировать ON CLUSTER клаузу для запросов управления реплицируемыми UDF.

implicit_select

Разрешить написание простых SELECT запросов без ведущего ключевого слова SELECT, что делает это простым для использования в калькуляторном стиле, например, 1 + 2 становится допустимым запросом.

В clickhouse-local это включено по умолчанию и может быть явно отключено.

implicit_table_at_top_level

Если не пусто, запросы без FROM на верхнем уровне будут считываться из этой таблицы вместо system.one.

Это используется в clickhouse-local для обработки входных данных. Настройка может быть явно задана пользователем, но не предназначена для этого типа использования.

Подзапросы не затрагиваются этой настройкой (ни скалярные, ни FROM, ни IN подзапросы). SELECT на верхнем уровне объединений, пересечений, исключений обрабатываются одинаково и затрагиваются этой настройкой, независимо от их группировки в скобках. Не указано, как эта настройка влияет на представления и распределенные запросы.

Настройка принимает имя таблицы (тогда таблица разрешается из текущей базы данных) или квалифицированное имя в форме 'database.table'. Имена базы данных и таблиц должны быть без кавычек - разрешены только простые идентификаторы.

implicit_transaction

Experimental feature. Learn more.

Если включено и еще не внутри транзакции, оборачивает запрос внутри полной транзакции (begin + commit или rollback).

input_format_parallel_parsing

Включает или отключает порядок-сохраняющий параллельный анализ форматов данных. Поддерживается только для TSV, TSKV, CSV и JSONEachRow форматов.

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

  • 1 — Включено.
  • 0 — Отключено.

insert_allow_materialized_columns

Если настройка включена, разрешает использование материализованных колонок в INSERT.

insert_deduplicate

Включает или отключает блоковую дедупликацию для INSERT (для таблиц Replicated*).

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

  • 0 — Отключено.
  • 1 — Включено.

По умолчанию блоки, вставляемые в реплицируемые таблицы с помощью оператора INSERT, являются дедуплицированными (см. Репликация данных). Для реплицируемых таблиц по умолчанию дедуплицируются только 100 самых последних блоков для каждой партиции (см. replicated_deduplication_window, replicated_deduplication_window_seconds). Для не реплицируемых таблиц см. non_replicated_deduplication_window.

insert_deduplication_token

Настройка позволяет пользователю предоставить собственную семантику дедупликации в MergeTree/ReplicatedMergeTree. Например, предоставив уникальное значение для настройки в каждой операции INSERT, пользователь может избежать дедупликации одинаковых вставленных данных.

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

  • Любая строка

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

Приблизительная вероятность ошибки для запроса Keeper во время вставки. Допустимое значение находится в интервале [0.0f, 1.0f].

insert_keeper_fault_injection_seed

0 - случайный сид, иначе значение настройки.

insert_keeper_max_retries

Настройка устанавливает максимальное количество повторных попыток для запросов ClickHouse Keeper (или ZooKeeper) во время вставки в реплицируемый MergeTree. Учитываются только запросы Keeper, которые не удались из-за сетевой ошибки, таймаута сессии Keeper или таймаута запроса.

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

  • Положительное целое число.
  • 0 — Повторные попытки отключены.

Значение по умолчанию для Cloud: 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

Начальный тайм-аут (в миллисекундах) для повторной попытки запроса Keeper, который завершился неудачно во время выполнения INSERT.

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

  • Положительное целое число.
  • 0 — Без тайм-аута.

insert_keeper_retry_max_backoff_ms

Максимальный тайм-аут (в миллисекундах) для повторной попытки запроса Keeper, который завершился неудачно во время выполнения INSERT.

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

  • Положительное целое число.
  • 0 — Максимальный тайм-аут не ограничен.

insert_null_as_default

Включает или отключает вставку значений по умолчанию вместо NULL в столбцы с не nullable типами данных. Если тип столбца не является nullable и эта настройка отключена, то вставка NULL вызывает исключение. Если тип столбца является nullable, то значения NULL вставляются как есть, независимо от этой настройки.

Эта настройка применима к запросам INSERT ... SELECT. Обратите внимание, что подзапросы SELECT могут быть объединены с помощью оператора UNION ALL.

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

  • 0 — Вставка NULL в неналично допускающий столбец приводит к исключению.
  • 1 — Вместо NULL вставляется значение по умолчанию для столбца.

insert_quorum

примечание

Эта настройка не применяется к SharedMergeTree, см. Консистентность SharedMergeTree для получения дополнительной информации.

Включает записи с кворумом.

  • Если 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 с кворумом. Если включено, дополнительные запросы INSERT могут быть отправлены, пока предыдущие запросы еще не завершились. Если отключено, дополнительные записи в ту же таблицу будут отклонены.

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

  • 0 — Отключено.
  • 1 — Включено.

См. также:

insert_quorum_timeout

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

См. также:

insert_shard_id

Если не 0, указывает шард Distributed таблицы, в который данные будут вставлены синхронно.

Если значение insert_shard_id неверно, сервер выбросит исключение.

Чтобы получить количество шардов на requested_cluster, вы можете проверить конфигурацию сервера или использовать этот запрос:

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

  • 0 — Отключено.
  • Любое число от 1 до shards_num соответствующей Distributed таблицы.

Пример

Запрос:

Результат:

interactive_delay

Интервал в микросекундах для проверки того, было ли отменено выполнение запроса, и отправка информации о прогрессе.

intersect_default_mode

Устанавливает режим по умолчанию в запросе INTERSECT. Возможные значения: пустая строка, 'ALL', 'DISTINCT'. Если пустая строка, запрос без режима вызовет исключение.

join_algorithm

Указывает, какой алгоритм JOIN используется.

Можно указать несколько алгоритмов, и для конкретного запроса будет выбран доступный, исходя из типа/строгости и движка таблицы.

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

  • grace_hash

Grace hash join используется. Grace hash предоставляет вариант алгоритма, который обеспечивает производительность сложных соединений, ограничивая при этом использование памяти.

Первая фаза соединения grace читает правую таблицу и разбивает ее на N ведер в зависимости от хеш-значения ключевых колонок (в начале N равно 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 соединения, которая разбивает данные на ведра и строит несколько хеш-таблиц одновременно, чтобы ускорить этот процесс.

При использовании алгоритма parallel_hash правая часть JOIN загружается в оперативную память.

  • partial_merge

Вариация сортировочного алгоритма слияния, где только правая таблица полностью отсортирована.

RIGHT JOIN и FULL JOIN поддерживаются только с ALL строгостью (SEMI, ANTI, ANY и ASOF не поддерживаются).

При использовании алгоритма partial_merge ClickHouse сортирует данные и сбрасывает их на диск. Алгоритм partial_merge в ClickHouse немного отличается от классической реализации. Сначала ClickHouse сортирует правую таблицу по ключам соединения в блоках и создает минимальный-максимальный индекс для отсортированных блоков. Затем он сортирует части левой таблицы по join key и соединяет их с правой таблицей. Минимально-максимальный индекс также используется для пропуска ненужных блоков правой таблицы.

  • direct

Этот алгоритм можно применить, когда хранилище для правой таблицы поддерживает запросы ключ-значение.

Алгоритм direct выполняет поиск в правой таблице, используя строки из левой таблицы в качестве ключей. Он поддерживается только специальным хранилищем, таким как Dictionary или EmbeddedRocksDB и только для LEFT и INNER JOIN.

  • auto

При установке auto, сначала пробуется hash соединение, и алгоритм переключается на лету на другой алгоритм, если нарушен лимит памяти.

  • full_sorting_merge

Алгоритм сортировочного слияния с полной сортировкой объединённых таблиц перед соединением.

  • prefer_partial_merge

ClickHouse всегда пытается использовать partial_merge соединение, если это возможно, в противном случае используется hash. Устарело, аналогично partial_merge,hash.

  • default (устаревший)

Устаревшее значение, пожалуйста, больше не используйте. Аналогично direct,hash, т.е. старайтесь использовать прямое соединение и хеш-соединение (в этом порядке).

join_any_take_last_row

Изменяет поведение операций соединения с ANY строгой.

примечание

Эта настройка применяется только к JOIN операциям с таблицами Join движков.

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

  • 0 — Если правая таблица имеет более одной подходящей строки, соединяется только первая найденная.
  • 1 — Если правая таблица имеет более одной подходящей строки, соединяется только последняя найденная.

См. также:

join_default_strictness

Устанавливает строгую по умолчанию для JOIN клаузул.

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

  • ALL — Если у правой таблицы несколько подходящих строк, ClickHouse создает декартово произведение подходящих строк. Это обычное поведение JOIN в стандартном SQL.
  • ANY — Если у правой таблицы несколько подходящих строк, соединяется только первая найденная. Если у правой таблицы только одна подходящая строка, результаты ANY и ALL одинаковы.
  • ASOF — Для соединения последовательностей с неопределённым совпадением.
  • Пустая строка — Если ALL или ANY не указаны в запросе, ClickHouse выбрасывает исключение.

join_on_disk_max_files_to_merge

Ограничивает количество файлов, разрешённых для параллельной сортировки в MergeJoin операциях, когда они выполняются на диске.

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

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

  • Любое положительное целое число, начиная с 2.

join_output_by_rowlist_perkey_rows_threshold

Нижний предел среднего количества строк по ключу в правой таблице, чтобы определить, следует ли выводить по списку строк в хеш-соединении.

join_overflow_mode

Определяет, какое действие ClickHouse выполняет, когда одно из следующих ограничений соединения достигается:

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

  • THROW — ClickHouse выбрасывает исключение и прерывает операцию.
  • BREAK — ClickHouse прерывает операцию и не выбрасывает исключение.

Значение по умолчанию: THROW.

См. также

join_to_sort_maximum_table_rows

Experimental feature. Learn more.

Максимальное количество строк в правой таблице для определения, следует ли переставить правую таблицу по ключу в левом или внутреннем соединении.

join_to_sort_minimum_perkey_rows

Experimental feature. Learn more.

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

join_use_nulls

Устанавливает тип поведения JOIN. При объединении таблиц могут появляться пустые ячейки. ClickHouse заполняет их по-разному в зависимости от этой настройки.

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

  • 0 — Пустые ячейки заполняются значением по умолчанию соответствующего типа поля.
  • 1 — JOIN ведет себя так же, как в стандартном SQL. Тип соответствующего поля конвертируется в Nullable, и пустые ячейки заполняются NULL.

joined_subquery_requires_alias

Принуждает объединенные подзапросы и табличные функции иметь псевдонимы для корректной квалификации имен.

kafka_disable_num_consumers_limit

Отключить лимит на kafka_num_consumers, который зависит от числа доступных ядер CPU.

kafka_max_wait_ms

Время ожидания в миллисекундах для чтения сообщений из Kafka перед повторной попыткой.

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

  • Положительное целое число.
  • 0 — Бесконечное время ожидания.

См. также:

keeper_map_strict_mode

Принуждает к дополнительным проверкам во время операций на KeeperMap. Например, выбрасывает исключение при вставке уже существующего ключа.

keeper_max_retries

Максимальное количество повторных попыток для общих операций keeper.

keeper_retry_initial_backoff_ms

Начальное время ожидания для общих операций keeper.

keeper_retry_max_backoff_ms

Максимальное время ожидания для общих операций keeper.

least_greatest_legacy_null_behavior

Если включено, функции 'least' и 'greatest' возвращают NULL, если один из их аргументов равен NULL.

legacy_column_name_of_tuple_literal

Список всех имен элементов больших литералов кортежей в их именах колонок вместо хешей. Эта настройка существует только по причинам совместимости. Имеет смысл установить на 'true', пока выполняется поэтапное обновление кластера с версии ниже 21.7 до более высокой.

lightweight_delete_mode

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

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

  • alter_update - выполнить запрос ALTER UPDATE, который создаёт тяжёлую мутацию.
  • lightweight_update - выполнить легковесное обновление, если это возможно, в противном случае выполнить ALTER UPDATE.
  • lightweight_update_force - выполнить легковесное обновление, если это возможно, в противном случае выбросить исключение.

lightweight_deletes_sync

То же, что и mutations_sync, но контролирует только выполнение легковесных удалений.

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

  • 0 - Мутации выполняются асинхронно.
  • 1 - Запрос ждет завершения легковесных удалений на текущем сервере.
  • 2 - Запрос ждет завершения легковесных удалений на всех репликах (если они существуют).

См. также

limit

Устанавливает максимальное количество строк, которые необходимо получить из результата запроса. Это значение корректирует значение, установленное клаузулой LIMIT, так что лимит, указанный в запросе, не может превышать лимит, установленный этой настройкой.

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

  • 0 — Количество строк не ограничено.
  • Положительное целое число.

live_view_heartbeat_interval

Experimental feature. Learn more.

Интервал отправки сигнала о «живом» запросе в секундах, чтобы указать, что запрос активен.

load_balancing

Указывает алгоритм выбора реплик, который используется для распределенной обработки запросов.

ClickHouse поддерживает следующие алгоритмы выбора реплик:

См. также:

Случайный (по умолчанию)

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

Недостатки: Близость сервера не учитывается; если у реплик разные данные, вы также получите разные данные.

Ближайшее имя хоста

Количество ошибок учитывается для каждой реплики. Каждые 5 минут количество ошибок делится на 2. Таким образом, количество ошибок подсчитывается за недавний период с экспоненциальным сглаживанием. Если существует одна реплика с минимальным количеством ошибок (т.е. ошибки произошли недавно на других репликах), запрос отправляется на неё. Если есть несколько реплик с одинаковым минимальным количеством ошибок, запрос отправляется на реплику с именем хоста, наиболее похожим на имя хоста сервера в конфигурационном файле (по количеству различных символов в идентичных позициях, до минимальной длины обоих имён хостов).

Например, example01-01-1 и example01-01-2 отличаются в одной позиции, в то время как example01-01-1 и example01-02-2 различаются в двух местах. Этот метод может показаться примитивным, но он не требует внешних данных о топологии сети и не сравнивает IP-адреса, что было бы сложно для наших IPv6 адресов.

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

Расстояние Левенштейна имени хоста

Точно так же, как nearest_hostname, но сравнивает имя хоста на основе расстояния Левенштейна. Например:

По порядку

Реплики с одинаковым количеством ошибок используется в том порядке, в котором они указаны в конфигурации. Этот метод подходит, когда точно известно, какая реплика предпочтительнее.

Первый или случайный

Этот алгоритм выбирает первую реплику в наборе или случайную реплику, если первая недоступна. Он эффективен в конфигурациях с перекрестной репликацией, но бесполезен в других конфигурациях.

Алгоритм first_or_random решает проблему алгоритма in_order. С in_order при отказе одной реплики следующая получает двойную нагрузку, в то время как остальные реплики обрабатывают обычное количество трафика. При использовании алгоритма first_or_random нагрузка равномерно распределяется между остающимися доступными репликами.

Можно явно определить, какая реплика будет первой, с помощью настройки load_balancing_first_offset. Это обеспечивает больший контроль за балансировкой нагрузки от запросов между репликами.

По кругу

Этот алгоритм использует политику круговой балансировки между репликами с одинаковым количеством ошибок (учитываются только запросы с политикой round_robin).

load_balancing_first_offset

На какую реплику предпочтительно отправить запрос, когда используется стратегия балансировки нагрузки FIRST_OR_RANDOM.

load_marks_asynchronously

Асинхронно загружать метки MergeTree.

local_filesystem_read_method

Метод чтения данных с локальной файловой системы, один из: read, pread, mmap, io_uring, pread_threadpool.

Метод 'io_uring' является экспериментальным и не работает для Log, TinyLog, StripeLog, File, Set и Join, а также других таблиц с добавляемыми файлами при наличии конкурентных операций чтения и записи. Если вы читаете различные статьи о 'io_uring' в Интернете, не поддавайтесь на их обман. Это не лучший метод чтения файлов, за исключением случая большого количества мелких запросов ввода-вывода, чего нет в ClickHouse. Нет причин включать 'io_uring'.

local_filesystem_read_prefetch

Следует ли использовать предварительную выборку при чтении данных с локальной файловой системы.

lock_acquire_timeout

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

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

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

  • Положительное целое число (в секундах).
  • 0 — Нет времени ожидания блокировки.

log_comment

Указывает значение для поля log_comment таблицы system.query_log и текст комментария для журнала сервера.

Это может быть использовано для улучшения читаемости журналов сервера. Кроме того, это помогает выбрать запросы, относящиеся к тесту, из system.query_log после выполнения clickhouse-test.

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

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

Пример

Запрос:

Результат:

log_formatted_queries

Позволяет записывать отформатированные запросы в системную таблицу system.query_log (заполняет колонку formatted_query в system.query_log).

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

  • 0 — Отформатированные запросы не записываются в системную таблицу.
  • 1 — Отформатированные запросы записываются в системную таблицу.

log_processors_profiles

Записывать время, которое процессор провел во время выполнения/ожидания данных в таблицу system.processors_profile_log.

См. также:

log_profile_events

Записывать статистику производительности запросов в query_log, query_thread_log и query_views_log.

log_queries

Настройка ведения журнала запросов.

Запросы, отправленные в ClickHouse с этой настройкой, записываются в соответствии с правилами конфигурационного параметра сервера query_log.

Пример:

log_queries_cut_to_length

Если длина запроса превышает заданный предел (в байтах), то обрезать запрос при записи в журнaл запросов. Также ограничить длину напечатанного запроса в обычном текстовом журнале.

log_queries_min_query_duration_ms

Если включено (не нулевое), запросы быстрее, чем значение этой настройки, не будут записываться в журнал (вы можете подумать об этом как о long_query_time для журнала медленных запросов MySQL), и это, в основном, означает, что вы не найдете их в следующих таблицах:

  • system.query_log
  • system.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

Позволяет пользователю записывать в системы таблицы query_log, query_thread_log и query_views_log только выборку запросов, выбранных случайным образом, с заданной вероятностью. Это помогает уменьшить нагрузку при большом объеме запросов за секунду.

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

  • 0 — Запросы не записываются в системные таблицы.
  • Положительное число с плавающей точкой в диапазоне [0..1]. Например, если значение настройки равно 0.5, примерно половина запросов будет записываться в системные таблицы.
  • 1 — Все запросы записываются в системные таблицы.

log_query_settings

Записывать настройки запросов в query_log и журнал спана OpenTelemetry.

log_query_threads

Настройка ведения журнала потоков запросов.

Потоки запросов записываются в таблицу system.query_thread_log. Эта настройка действует только тогда, когда log_queries истинно. Потоки запросов, выполняемые ClickHouse с этой настройкой, записываются в соответствии с правилами конфигурационного параметра сервера query_thread_log.

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

  • 0 — Отключено.
  • 1 — Включено.

Пример

log_query_views

Настройка ведения журнала представлений запросов.

Когда запрос, выполняемый ClickHouse с этой настройкой, имеет связанные представления (материализованные или live-представления), они записываются в конфигурационный параметр сервера query_views_log.

Пример:

low_cardinality_allow_in_native_format

Разрешает или ограничивает использование типа данных LowCardinality с форматом Native.

Если использование LowCardinality ограничено, сервер ClickHouse конвертирует колонки типа LowCardinality в обычные для запросов SELECT, и конвертирует обычные колонки в колонки типа LowCardinality для запросов INSERT.

Эта настройка необходима в основном для сторонних клиентов, которые не поддерживают тип данных LowCardinality.

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

  • 1 — Использование LowCardinality не ограничено.
  • 0 — Использование LowCardinality ограничено.

low_cardinality_max_dictionary_size

Устанавливает максимальный размер в строках разделяемого глобального словаря для типа данных LowCardinality, который может быть записан в файловую систему хранения. Эта настройка предотвращает проблемы с оперативной памятью в случае неограниченного роста словаря. Все данные, которые не могут быть закодированы из-за ограничения максимального размера словаря, ClickHouse записывает обычным способом.

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

  • Любое положительное целое число.

low_cardinality_use_single_dictionary_for_part

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

По умолчанию сервер ClickHouse отслеживает размер словарей, и если словарь переполняется, сервер начинает записывать следующий. Чтобы запретить создание нескольких словарей, установите low_cardinality_use_single_dictionary_for_part = 1.

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

  • 1 — Запрещает создание нескольких словарей для части данных.
  • 0 — Создание нескольких словарей для части данных не запрещено.

low_priority_query_wait_time_ms

Beta feature. Learn more.

Когда механизм приоритизации запросов используется (см. настройку priority), запросы с низким приоритетом ждут завершения более приоритетных запросов. Эта настройка указывает продолжительность ожидания.

make_distributed_plan

Experimental feature. Learn more.

Создаёт распределённый план запроса.

materialize_skip_indexes_on_insert

Если INSERT создаёт и сохраняет индексы пропуска. Если отключено, индексы пропуска будут созданы и сохранены во время слияний или явного MATERIALIZE INDEX.

materialize_statistics_on_insert

Если INSERT создаёт и вставляет статистику. Если отключено, статистика будет построена и сохранена во время слияний или явного MATERIALIZE STATISTICS.

materialize_ttl_after_modify

Применяет TTL для старых данных после запроса ALTER MODIFY TTL.

materialized_views_ignore_errors

Позволяет игнорировать ошибки для MATERIALIZED VIEW и передавать оригинальный блок в таблицу независимо от MVs.

max_analyze_depth

Максимальное количество анализов, выполняемых интерпретатором.

max_ast_depth

Максимальная глубина вложенности синтаксического дерева запроса. При превышении выбрасывается исключение.

примечание

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

max_ast_elements

Максимальное количество элементов в синтаксическом дереве запроса. При превышении выбрасывается исключение.

примечание

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

max_autoincrement_series

Ограничение на количество серий, создаваемых функцией generateSeriesID.

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

max_backup_bandwidth

Максимальная скорость чтения в байтах в секунду для конкретной резервной копии на сервере. Ноль означает неограниченное.

max_block_size

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

Настройка max_block_size указывает рекомендуемое максимальное количество строк, которое следует включить в один блок при загрузке данных из таблиц. Блоки размером max_block_size не всегда загружаются из таблицы: если ClickHouse определяет, что нужно извлечь меньше данных, обрабатывается меньший блок.

Размер блока не должен быть слишком маленьким, чтобы избежать заметных затрат при обработке каждого блока. Он также не должен быть слишком большим, чтобы обеспечить быструю реализацию запросов с LIMIT после обработки первого блока. При установке max_block_size цель должна заключаться в том, чтобы избежать чрезмерного потребления памяти при извлечении большого количества колонок в нескольких потоках и сохранить хотя бы некоторую локальность кэша.

max_bytes_before_external_group_by

Облачное значение по умолчанию: половина объема памяти на реплику.

Включает или отключает выполнение операторов GROUP BY в внешней памяти. (См. GROUP BY в внешней памяти)

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

  • Максимальный объем ОЗУ (в байтах), который может быть использован для одной операции GROUP BY.
  • 0GROUP BY в внешней памяти отключен.
примечание

Если использование памяти во время операций GROUP BY превышает этот порог в байтах, активируйте режим 'внешней агрегации' (spill data to disk).

Рекомендуемое значение — половина доступной системной памяти.

max_bytes_before_external_sort

Облачное значение по умолчанию: половина объема памяти на реплику.

Включает или отключает выполнение операторов ORDER BY в внешней памяти. См. Подробности реализации ORDER BY. Если использование памяти во время операции ORDER BY превышает этот порог в байтах, активируется режим 'внешней сортировки' (spill data to disk).

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

  • Максимальный объем ОЗУ (в байтах), который может быть использован для одной операции ORDER BY. Рекомендуемое значение — половина доступной системной памяти.
  • 0ORDER BY в внешней памяти отключен.

max_bytes_before_remerge_sort

В случае ORDER BY с LIMIT, когда использование памяти выше указанного порога, выполняются дополнительные шаги слияния блоков перед финальным слиянием, чтобы сохранить только верхние строки LIMIT.

max_bytes_in_distinct

Максимальное количество байт состояния (в распакованных байтах) в памяти, которое используется хеш-таблицей при использовании DISTINCT.

max_bytes_in_join

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

Эта настройка применяется к операциям SELECT ... JOIN и Join table engine.

Если запрос содержит соединения, ClickHouse проверяет эту настройку для каждого промежуточного результата.

ClickHouse может предпринять различные действия, когда предел достигается. Используйте настройки join_overflow_mode, чтобы выбрать действие.

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

  • Положительное целое число.
  • 0 — Контроль памяти отключен.

max_bytes_in_set

Максимальное количество байт (незапакованных данных), используемое множеством в операторе IN, созданным из подзапроса.

max_bytes_ratio_before_external_group_by

Соотношение доступной памяти, разрешенное для GROUP BY. После достижения этого порога используется внешняя память для агрегации.

Например, если установлено значение 0.6, GROUP BY разрешит использовать 60% доступной памяти (для сервера/пользователя/слияний) в начале выполнения, после чего начнётся внешняя агрегация.

max_bytes_ratio_before_external_sort

Соотношение доступной памяти, разрешенное для ORDER BY. После достижения этого порога используется внешняя сортировка.

Например, если установлено значение 0.6, ORDER BY разрешит использовать 60% доступной памяти (для сервера/пользователя/слияний) в начале выполнения, после чего начнётся внешняя сортировка.

max_bytes_to_read

Максимальное количество байт (незапакованных данных), которые могут быть прочитаны из таблицы при выполнении запроса. Ограничение проверяется для каждого обработанного блока данных, применяется только к самому глубокому выражению таблицы и при чтении с удаленного сервера, проверяется только на удалённом сервере.

max_bytes_to_read_leaf

Максимальное количество байт (незапакованных данных), которые могут быть прочитаны из локальной таблицы на узле-листе при выполнении распределённого запроса. В то время как распределенные запросы могут выдавать несколько подзапросов каждому шард (листьев) - этот лимит будет проверяться только на этапе чтения на узлах-листах и будет игнорироваться на этапе слияния результатов на корневом узле.

Например, если кластер состоит из 2 шардов, и каждый шард содержит таблицу с 100 байт данных. Распределённый запрос, который предполагает читать все данные из обеих таблиц с настройкой max_bytes_to_read=150, потерпит неудачу, так как в общем это будет 200 байт. Запрос с max_bytes_to_read_leaf=150 будет успешным, так как узлы-листья прочитают максимум 100 байт.

Ограничение проверяется для каждого обработанного блока данных.

примечание

Эта настройка нестабильна с prefer_localhost_replica=1.

max_bytes_to_sort

Максимальное количество байт перед сортировкой. Если необходимо обработать больше указанного количества незапакованных байтов для операции ORDER BY, поведение будет определяться параметром sort_overflow_mode, который по умолчанию установлен в throw.

max_bytes_to_transfer

Максимальное количество байт (незапакованных данных), которые могут быть переданы удалённому серверу или сохранены во временной таблице, когда выполняется секция GLOBAL IN/JOIN.

max_columns_to_read

Максимальное количество колонок, которые могут быть прочитаны из таблицы в одном запросе. Если запрос требует чтения большего количества колонок, выбрасывается исключение.

подсказка

Эта настройка полезна для предотвращения слишком сложных запросов.

Значение 0 означает неограниченное количество.

max_compress_block_size

Максимальный размер блоков незапакованных данных перед сжатием для записи в таблицу. По умолчанию — 1,048,576 (1 МБ). Указание меньшего размера блока обычно приводит к слегка снижению коэффициента сжатия, скорость сжатия и распаковки немного увеличивается из-за локальности кэша, а потребление памяти уменьшается.

примечание

Это настройка уровня эксперта, и вам не следует её изменять, если вы только начинаете работать с ClickHouse.

Не путайте блоки для сжатия (кучу памяти, состоящую из байтов) с блоками для обработки запросов (набор строк из таблицы).

max_concurrent_queries_for_all_users

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

Пример: max_concurrent_queries_for_all_users можно установить на 99 для всех пользователей, а администратор базы данных может установить его на 100 для себя, чтобы выполнять запросы для расследования даже когда сервер перегружен.

Изменение настройки для одного запроса или пользователя не затрагивает другие запросы.

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

  • Положительное целое число.
  • 0 — Без ограничений.

Пример

См. Также

max_concurrent_queries_for_user

Максимальное количество одновременно обрабатываемых запросов на пользователя.

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

  • Положительное целое число.
  • 0 — Без ограничений.

Пример

max_distributed_connections

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

Следующие параметры используются только при создании распределенных таблиц (и при запуске сервера), поэтому нет необходимости изменять их во время выполнения.

max_distributed_depth

Ограничивает максимальную глубину рекурсивных запросов для таблиц Distributed.

Если значение превышено, сервер выбрасывает исключение.

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

  • Положительное целое число.
  • 0 — Неограниченная глубина.

max_download_buffer_size

Максимальный размер буфера для параллельной загрузки (например, для URL engine) на каждый поток.

max_download_threads

Максимальное количество потоков для загрузки данных (например, для URL engine).

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

Максимальное количество разрешённых пересылок HTTP GET. Обеспечивает дополнительные меры безопасности, предотвращающие возможность перенаправления вашего запроса на неожиданные сервисы зловредным сервером.

Это происходит, когда внешний сервер перенаправляет на другой адрес, но этот адрес походит на внутренний адрес инфраструктуры компании, и, послав HTTP-запрос к внутреннему серверу, вы можете запросить внутренний API из внутренней сети, минуя аутентификацию, или даже запросить другие сервисы, такие как Redis или Memcached. Когда у вас нет внутренней инфраструктуры (включая что-то, работащее на вашем локальном хосте) или вы доверяете серверу, безопасно позволить пересылки. Хотя имейте в виду, что если URL использует HTTP вместо HTTPS, вам придется доверять не только удалённому серверу, но и вашему интернет-провайдеру и каждой сети посередине.

max_hyperscan_regexp_length

Определяет максимальную длину каждого регулярного выражения в гиперсканирующих функциях множественного совпадения.

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

  • Положительное целое число.
  • 0 - Длина не ограничена.

Пример

Запрос:

Результат:

Запрос:

Результат:

См. Также

max_hyperscan_regexp_total_length

Устанавливает максимальную общую длину всех регулярных выражений в каждой гиперсканирующей функции множественного совпадения.

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

  • Положительное целое число.
  • 0 - Длина не ограничена.

Пример

Запрос:

Результат:

Запрос:

Результат:

См. Также

max_insert_block_size

Размер блоков (в количестве строк), формируемых для вставки в таблицу. Эта настройка применяется только в случаях, когда сервер формирует блоки. Например, для INSERT через HTTP интерфейс сервер разбирает формат данных и формирует блоки указанного размера. Но при использовании clickhouse-client клиент разбирает данные самостоятельно, и настройка 'max_insert_block_size' на сервере не влияет на размер вставляемых блоков. Эта настройка также не имеет назначения при использовании INSERT SELECT, так как данные вставляются с использованием тех же блоков, которые формируются после SELECT.

По умолчанию немного больше, чем max_block_size. Причина в том, что определённые движки таблиц (*MergeTree) формируют часть данных на диске для каждого вставленного блока, что является довольно крупной сущностью. Аналогично, таблицы *MergeTree сортируют данные во время вставки, и достаточно большой размер блока позволяет сортировать больше данных в ОЗУ.

max_insert_delayed_streams_for_parallel_write

Максимальное количество потоков (колонок) для задержки окончательной выгрузки части. По умолчанию - авто (100 в случае, если основной хранилище поддерживает параллельную запись, например S3 и отключено в противном случае).

max_insert_threads

Максимальное количество потоков для выполнения запроса INSERT SELECT.

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

  • 0 (или 1) — INSERT SELECT без параллельного выполнения.
  • Положительное целое число. Больше 1.

Облачное значение по умолчанию: от 2 до 4, в зависимости от размера сервиса.

Параллельный INSERT SELECT имеет эффект только если часть SELECT выполняется параллельно, см. настройку max_threads. Более высокие значения приведут к большему использованию памяти.

max_joined_block_size_rows

Максимальный размер блока для результата JOIN (если алгоритм соединения поддерживает это). 0 означает неограниченное.

max_limit_for_vector_search_queries

Beta feature. Learn more.

Запросы SELECT с LIMIT, превышающим эту настройку, не могут использовать векторные индексы схожести. Это помогает предотвращать переполнение памяти в векторных индексах схожести.

max_live_view_insert_blocks_before_refresh

Experimental feature. Learn more.

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

max_local_read_bandwidth

Максимальная скорость локальных чтений в байтах в секунду.

max_local_write_bandwidth

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

max_memory_usage

Облачное значение по умолчанию: зависит от объема ОЗУ на реплике.

Максимальное количество RAM, которое можно использовать для выполнения запроса на одном сервере. Значение 0 означает неограниченное.

Эта настройка не учитывает объем доступной памяти или общий объем памяти на машине. Ограничение применяется к одному запросу в пределах одного сервера.

Вы можете использовать SHOW PROCESSLIST, чтобы увидеть текущее потребление памяти для каждого запроса. Пиковое потребление памяти отслеживается для каждого запроса и записывается в лог.

Использование памяти полностью не отслеживается для состояний следующих агрегатных функций с аргументами String и Array:

  • min
  • max
  • any
  • anyLast
  • argMin
  • argMax

Потребление памяти также ограничено параметрами max_memory_usage_for_user и max_server_memory_usage.

max_memory_usage_for_user

Максимальное количество RAM, которое можно использовать для выполнения запросов пользователя на одном сервере. Ноль означает неограниченное.

По умолчанию объем не ограничен (max_memory_usage_for_user = 0).

Также смотрите описание max_memory_usage.

Например, если вы хотите установить max_memory_usage_for_user на 1000 байт для пользователя с именем clickhouse_read, вы можете использовать команду

Вы можете проверить, что это сработало, выйдя из своей клиентской сессии, войдя снова, а затем используя функцию 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

Максимальное соотношение между временем ожидания CPU ОС (метрика OSCPUWaitMicroseconds) и занятым временем (метрика OSCPUVirtualTimeMicroseconds), чтобы рассмотреть возможность отклонения запросов. Линейная интерполяция между минимальным и максимальным соотношением используется для вычисления вероятности, при этом вероятность равна 1 в этой точке.

max_parallel_replicas

Максимальное количество реплик для каждого шарда при выполнении запроса.

Допустимые значения:

  • Положительное целое число.

Дополнительная информация

Эта опция будет давать разные результаты в зависимости от использованных настроек.

примечание

Эта настройка будет приводить к некорректным результатам, если участвуют соединения или подзапросы, и не все таблицы соответствуют определённым требованиям. См. Распределенные подзапросы и max_parallel_replicas для получения дополнительных сведений.

Параллельная обработка с использованием SAMPLE ключа

Запрос может обрабатываться быстрее, если он выполняется на нескольких серверах параллельно. Однако производительность запроса может ухудшиться в следующих случаях:

  • Позиция ключа выборки в ключе партиционирования не позволяет эффективно сканировать диапазоны.
  • Добавление ключа выборки в таблицу делает фильтрацию по другим колонкам менее эффективной.
  • Ключ выборки является выражением, вычисление которого требует значительных затрат.
  • Распределение латентности кластера имеет длинный хвост, из-за чего выполнение запроса на большем количестве серверов увеличивает общую латентность запроса.

Параллельная обработка с использованием parallel_replicas_custom_key

Эта настройка полезна для любых реплицируемых таблиц.

max_parser_backtracks

Максимальное количество обратных переходов парсера (сколько раз он пробует различные альтернативы в процессе рекурсивного спуска).

max_parser_depth

Ограничивает максимальную глубину рекурсии в парсере рекурсивного спуска. Позволяет контролировать размер стека.

Допустимые значения:

  • Положительное целое число.
  • 0 — Глубина рекурсии не ограничена.

max_parsing_threads

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

max_partition_size_to_drop

Ограничение на удаление партиций во время выполнения запроса. Значение 0 означает, что вы можете удалять партиции без каких-либо ограничений.

Облачное значение по умолчанию: 1 ТБ.

примечание

Эта настройка запроса перекрывает её эквивалент серверной настройки, см. max_partition_size_to_drop

max_partitions_per_insert_block

Ограничивает максимальное количество партиций в одном вставляемом блоке и выбрасывает исключение, если блок содержит слишком много партиций.

  • Положительное целое число.
  • 0 — Неограниченное количество партиций.

Подробности

При вставке данных ClickHouse вычисляет количество партиций в вставляемом блоке. Если количество партиций превышает 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_query_size

Максимальное количество байт в строке запроса, которое может быть обработано парсером SQL. Данные в операторе VALUES запросов INSERT обрабатываются отдельным парсером потоков (который использует O(1) ОЗУ) и не подвержены этому ограничению.

примечание

max_query_size не может быть установлен в рамках SQL-запроса (например, SELECT now() SETTINGS max_query_size=10000), потому что ClickHouse необходимо выделить буфер для разбора запроса, и размер этого буфера определяется настройкой max_query_size, которая должна быть настроена до выполнения запроса.

max_read_buffer_size

Максимальный размер буфера для чтения из файловой системы.

max_read_buffer_size_local_fs

Максимальный размер буфера для чтения из локальной файловой системы. Если установить 0, то будет использоваться max_read_buffer_size.

max_read_buffer_size_remote_fs

Максимальный размер буфера для чтения из удалённой файловой системы. Если установить 0, то будет использоваться max_read_buffer_size.

max_recursive_cte_evaluation_depth

Максимальный лимит на глубину оценки рекурсивных CTE.

max_remote_read_network_bandwidth

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

max_remote_write_network_bandwidth

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

max_replica_delay_for_distributed_queries

Отключает отстающие реплики для распределенных запросов. См. Репликация.

Устанавливает время в секундах. Если задержка реплики больше или равна заданному значению, эта реплика не используется.

Допустимые значения:

  • Положительное целое число.
  • 0 — Задержки реплик не проверяются.

Чтобы предотвратить использование любой реплики с ненулевой задержкой, установите этот параметр в 1.

Используется при выполнении SELECT из распределенной таблицы, указывающей на реплицируемые таблицы.

max_result_bytes

Ограничивает размер результата в байтах (несжатый). Запрос остановится после обработки блока данных, если порог будет достигнут, но он не обрежет последний блок результата, поэтому размер результата может быть больше порога.

Замечания

Размер результата в памяти учитывается для этого порога. Даже если размер результата мал, он может ссылаться на более крупные структуры данных в памяти, представляющие словари колонок LowCardinality и Arenas колонок AggregateFunction, поэтому порог может быть превышен, несмотря на малый размер результата.

осторожно

Настройка является достаточно низким уровнем и должна использоваться с осторожностью.

max_result_rows

Облачное значение по умолчанию: 0.

Ограничивает количество строк в результате. Также проверяется для подзапросов и на удаленных серверах при выполнении частей распределённого запроса. Нет лимита, когда значение равно 0.

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

max_rows_in_distinct

Максимальное количество различных строк при использовании DISTINCT.

max_rows_in_join

Ограничивает количество строк в хеш-таблице, используемой при соединении таблиц.

Эта настройка применяется к операциям SELECT ... JOIN и движку таблиц Join.

Если запрос содержит несколько соединений, ClickHouse проверяет эту настройку для каждого промежуточного результата.

ClickHouse может проводить различные действия, когда лимит достигнут. Используйте join_overflow_mode настройку, чтобы выбрать действие.

Допустимые значения:

  • Положительное целое число.
  • 0 — Неограниченное количество строк.

max_rows_in_set

Максимальное количество строк для набора данных в операторе IN, созданном из подзапроса.

max_rows_in_set_to_optimize_join

Максимальный размер набора для фильтрации соединённых таблиц по наборам строк друг друга перед соединением.

Допустимые значения:

  • 0 — Отключено.
  • Любое положительное целое число.

max_rows_to_group_by

Максимальное количество уникальных ключей, полученных из агрегации. Эта настройка позволяет ограничить потребление памяти при агрегации.

Если агрегация во время GROUP BY генерирует более указанного количества строк (уникальных ключей GROUP BY), поведение будет определено настройкой 'group_by_overflow_mode', которая по умолчанию равна throw, но также может быть переключена в режим приблизительной агрегации GROUP BY.

max_rows_to_read

Максимальное количество строк, которые могут быть прочитаны из таблицы при выполнении запроса. Ограничение проверяется для каждого обработанного фрагмента данных, применяется только к глубочайшему выражению таблицы и при чтении с удалённого сервера проверяется только на удалённом сервере.

max_rows_to_read_leaf

Максимальное количество строк, которые могут быть прочитаны из локальной таблицы на узле-листе при выполнении распределенного запроса. Хотя распределённые запросы могут выдавать несколько подзапросов каждому шард (листьев) — этот лимит будет проверяться только на стадии чтения на листовых узлах и игнорироваться на стадии объединения результатов на корневом узле.

Например, кластер состоит из 2 шардов, и каждый шард содержит таблицу с 100 строками. Распределённый запрос, который предполагает чтение всех данных из обоих таблиц с настройкой max_rows_to_read=150, потерпит неудачу, так как в общей сложности будет 200 строк. Запрос с max_rows_to_read_leaf=150 будет успешным, так как листовые узлы подустят максимум 100 строк.

Ограничение проверяется для каждого обработанного фрагмента данных.

примечание

Эта настройка нестабильна с prefer_localhost_replica=1.

max_rows_to_sort

Максимальное количество строк перед сортировкой. Это позволяет ограничить потребление памяти во время сортировки. Если необходимо обработать больше указанного количества записей для операции ORDER BY, поведение будет определено настройкой sort_overflow_mode, которая по умолчанию установлена на throw.

max_rows_to_transfer

Максимальный размер (в строках), который может быть передан на удалённый сервер или сохранён в временной таблице, когда выполняется секция GLOBAL IN/JOIN.

max_sessions_for_user

Максимальное количество одновременных сессий для каждого аутентифицированного пользователя на сервере ClickHouse.

Пример:

Допустимые значения:

  • Положительное целое число
  • 0 - бесконечное количество одновременных сессий (по умолчанию)

max_size_to_preallocate_for_aggregation

На сколько элементов разрешено предварительно выделить место во всех хеш-таблицах в общей сложности перед агрегацией.

max_size_to_preallocate_for_joins

На сколько элементов разрешено предварительно выделить место во всех хеш-таблицах в общей сложности перед соединением.

max_streams_for_merge_tree_reading

Если не равен нулю, ограничьте количество потоков чтения для таблицы MergeTree.

max_streams_multiplier_for_merge_tables

Запрашивать больше потоков при чтении из таблицы Merge. Потоки будут распределены по таблицам, которые таблица Merge будет использовать. Это позволяет более равномерно распределить работу по потокам и особенно полезно, когда объединяемые таблицы различаются по размеру.

max_streams_to_max_threads_ratio

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

max_subquery_depth

Если запрос содержит больше указанного числа вложенных подзапросов, выдает исключение.

подсказка

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

max_table_size_to_drop

Ограничение на удаление таблиц во время выполнения запроса. Значение 0 означает, что вы можете удалять все таблицы без каких-либо ограничений.

Облачное значение по умолчанию: 1 ТБ.

примечание

Эта настройка запроса перекрывает её эквивалент серверной настройки, см. 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

Максимальное количество потоков для обработки запросов, исключая потоки для извлечения данных из удалённых серверов (см. параметр 'max_distributed_connections').

Этот параметр применяется к потокам, которые выполняют одни и те же этапы обработки запроса параллельно. Например, при чтении из таблицы, если есть возможность оценивать выражения с функциями, фильтровать с помощью WHERE и предварительно агрегировать для GROUP BY параллельно с использованием как минимум 'max_threads' числа потоков, то используются 'max_threads'.

Для запросов, которые завершаются быстро из-за LIMIT, вы можете установить более низкое значение 'max_threads'. Например, если необходимое количество записей находится в каждом блоке и max_threads = 8, то будет извлечено 8 блоков, хотя было бы достаточно прочитать лишь один.

Чем меньше значение max_threads, тем меньше памяти потребляется.

max_threads_for_indexes

Максимальное количество потоков для обработки индексов.

max_untracked_memory

Небольшие выделения и освобождения группируются в локальную переменную потока и отслеживаются или профилируются только тогда, когда сумма (по абсолютному значению) становится больше указанного значения. Если значение больше чем 'memory_profiler_step', оно эффективно будет снижено до 'memory_profiler_step'.

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

Собирает случайные выделения и освобождения и записывает их в system.trace_log с трассировкой 'MemorySample'. Вероятность для каждого выделения/освобождения независимо от размера выделения (может быть изменена с помощью memory_profiler_sample_min_allocation_size и memory_profiler_sample_max_allocation_size). Обратите внимание, что выборка происходит только тогда, когда количество неотслеживаемой памяти превышает 'max_untracked_memory'. Вы можете установить 'max_untracked_memory' в 0 для более детальной выборки.

memory_profiler_step

Устанавливает шаг профилировщика памяти. Когда использование памяти запросом становится больше, чем каждый следующий шаг в байтах, профилировщик памяти будет собирать трассировку выделения и запишет её в trace_log.

Допустимые значения:

  • Положительное целое число в байтах.

  • 0 для отключения профилировщика памяти.

memory_tracker_fault_probability

Для тестирования безопасности исключений - выбрасывать исключение каждый раз, когда вы выделяете память с указанной вероятностью.

memory_usage_overcommit_max_wait_microseconds

Максимальное время, в течение которого поток будет ждать освобождения памяти в случае перерасчёта памяти на уровне пользователя. Если время ожидания исчерпано и память не освобождена, выбрасывается исключение. Узнайте больше о перерасчете памяти.

merge_table_max_tables_to_look_for_schema_inference

При создании таблицы Merge без явной схемы или при использовании табличной функции merge, выведите схему как объединение не более указанного числа совпадающих таблиц. Если таблиц больше, схема будет выведена из первых указанных таблиц.

merge_tree_coarse_index_granularity

При поиске данных ClickHouse проверяет метки данных в файле индекса. Если ClickHouse обнаружит, что необходимые ключи находятся в некотором диапазоне, он делит этот диапазон на merge_tree_coarse_index_granularity поддиапазонов и рекурсивно ищет необходимые ключи там.

Допустимые значения:

  • Любое положительное четное целое число.

merge_tree_compact_parts_min_granules_to_multibuffer_read

ClickHouse Cloud only

Эта настройка влияет только на ClickHouse Cloud. Число гранул в полосе компактной части таблиц MergeTree, для которых используется многобуферный считыватель, который поддерживает параллельное считывание и предзагрузку. В случае чтения из удалённой файловой системы использование многобуферного считывателя увеличивает количество запросов на чтение.

merge_tree_determine_task_size_by_prewhere_columns

Использовать только размер колонок prewhere, чтобы определить размер задачи чтения.

merge_tree_max_bytes_to_use_cache

Если ClickHouse должен читать более merge_tree_max_bytes_to_use_cache байт в одном запросе, он не использует кэш несжатых блоков.

Кэш несжатых блоков хранит данные, извлечённые для запросов. ClickHouse использует этот кэш для ускорения ответов на повторяющиеся небольшие запросы. Эта настройка защищает кэш от разрушения запросами, которые читают большой объём данных. Настройка сервера uncompressed_cache_size определяет размер кэша несжатых блоков.

Допустимые значения:

  • Любое положительное целое число.

merge_tree_max_rows_to_use_cache

Если ClickHouse должен читать более merge_tree_max_rows_to_use_cache строк в одном запросе, он не использует кэш несжатых блоков.

Кэш несжатых блоков хранит данные, извлечённые для запросов. ClickHouse использует этот кэш для ускорения ответов на повторяющиеся небольшие запросы. Эта настройка защищает кэш от разрушения запросами, которые читают большой объём данных. Настройка сервера uncompressed_cache_size определяет размер кэша несжатых блоков.

Допустимые значения:

  • Любое положительное целое число.

merge_tree_min_bytes_for_concurrent_read

Если количество байт, читаемых из одного файла таблицы с движком MergeTree, превышает merge_tree_min_bytes_for_concurrent_read, то ClickHouse пытается читать этот файл параллельно в несколько потоков.

Допустимые значения:

  • Положительное целое число.

merge_tree_min_bytes_for_concurrent_read_for_remote_filesystem

Минимальное количество байт, которое нужно прочитать из одного файла, прежде чем движок MergeTree сможет параллелизовать чтение, при чтении из удалённой файловой системы. Мы не рекомендуем использовать эту настройку.

Допустимые значения:

  • Положительное целое число.

merge_tree_min_bytes_for_seek

Если расстояние между двумя блоками данных, которые нужно прочитать в одном файле, меньше чем merge_tree_min_bytes_for_seek байт, тогда ClickHouse последовательно читает диапазон файла, содержащий оба блока, тем самым избегая дополнительного поиска.

Допустимые значения:

  • Любое положительное целое число.

merge_tree_min_bytes_per_task_for_remote_reading

Минимальное количество байт для чтения за задачу.

merge_tree_min_read_task_size

Жесткий нижний предел размера задачи (даже когда количество гранул низкое и количество доступных потоков высокое, мы не выделим меньшие задачи).

merge_tree_min_rows_for_concurrent_read

Если количество строк, которые нужно прочитать из файла таблицы с движком MergeTree, превышает merge_tree_min_rows_for_concurrent_read, то ClickHouse пытается выполнить параллельное чтение этого файла в несколько потоков.

Допустимые значения:

  • Положительное целое число.

merge_tree_min_rows_for_concurrent_read_for_remote_filesystem

Минимальное количество строк для чтения из одного файла перед тем, как движок MergeTree может параллелизировать чтение при чтении из удаленной файловой системы. Мы не рекомендуем использовать эту настройку.

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

  • Положительное целое число.

merge_tree_min_rows_for_seek

Если расстояние между двумя блоками данных для чтения в одном файле меньше merge_tree_min_rows_for_seek строк, то ClickHouse не ищет в файле, а читает данные последовательно.

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

  • Любое положительное целое число.

merge_tree_read_split_ranges_into_intersecting_and_non_intersecting_injection_probability

Для тестирования PartsSplitter - разбивайте диапазоны чтения на пересекающиеся и непересекающиеся каждый раз, когда вы читаете из MergeTree с заданной вероятностью.

merge_tree_use_const_size_tasks_for_remote_reading

Использовать ли задачи фиксированного размера для чтения из удаленной таблицы.

merge_tree_use_deserialization_prefixes_cache

Разрешает кэширование метаданных колонок из префиксов файла во время чтения из широких частей в MergeTree.

merge_tree_use_prefixes_deserialization_thread_pool

Разрешает использование пула потоков для параллельного чтения префиксов в широких частях в MergeTree. Размер этого пула потоков контролируется серверной настройкой max_prefixes_deserialization_thread_pool_size.

merge_tree_use_v1_object_and_dynamic_serialization

При включении будет использоваться версия сериализации V1 для типов JSON и Dynamic в MergeTree вместо V2. Изменение этой настройки вступает в силу только после перезапуска сервера.

metrics_perf_events_enabled

Если включено, некоторые события производительности будут измеряться во время выполнения запросов.

metrics_perf_events_list

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

min_bytes_to_use_direct_io

Минимальный объем данных, необходимый для использования прямого доступа I/O к диску хранения.

ClickHouse использует эту настройку при чтении данных из таблиц. Если общий объем хранения всех данных, которые необходимо прочитать, превышает min_bytes_to_use_direct_io байт, то ClickHouse читает данные с диска хранения с опцией O_DIRECT.

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

  • 0 — Прямой доступ I/O отключен.
  • Положительное целое число.

min_bytes_to_use_mmap_io

Это экспериментальная настройка. Устанавливает минимальное количество памяти для чтения больших файлов без копирования данных из ядра в пространство пользователя. Рекомендуемый порог составляет около 64 МБ, так как mmap/munmap медленны. Имеет смысл только для больших файлов и помогает только если данные находятся в кэше страниц.

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

  • Положительное целое число.
  • 0 — Большие файлы читаются только с копированием данных из ядра в пространство пользователя.

min_chunk_bytes_for_parallel_parsing

  • Тип: неотрицательное целое число
  • Значение по умолчанию: 1 МБ

Минимальный размер блока в байтах, который каждый поток будет парсить параллельно.

min_compress_block_size

Для MergeTree таблиц. С целью уменьшения задержки при обработке запросов блок сжимается при записи следующей метки, если его размер составляет не менее 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

Минимальное количество идентичных агрегатных выражений для начала JIT-компиляции. Работает только если включена настройка compile_aggregate_expressions.

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

  • Положительное целое число.
  • 0 — Идентичные агрегатные выражения всегда JIT-компилируются.

min_count_to_compile_expression

Минимальное количество выполнения одного и того же выражения перед его компиляцией.

min_count_to_compile_sort_description

Количество идентичных описаний сортировки перед их JIT-компиляцией.

min_execution_speed

Минимальная скорость выполнения в строках в секунду. Проверяется на каждом блоке данных, когда истекает timeout_before_checking_execution_speed. Если скорость выполнения ниже, выбрасывается исключение.

min_execution_speed_bytes

Минимальное количество байт выполнения в секунду. Проверяется на каждом блоке данных, когда истекает timeout_before_checking_execution_speed. Если скорость выполнения ниже, выбрасывается исключение.

min_external_sort_block_bytes

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

min_external_table_block_size_bytes

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

min_external_table_block_size_rows

Сжимать блоки, переданные во внешнюю таблицу, до указанного размера в строках, если блоки недостаточно большие.

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

Устанавливает минимальное количество байт в блоке, которое может быть вставлено в таблицу с помощью запроса INSERT. Блоки меньшего размера объединяются в более крупные.

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

  • Положительное целое число.
  • 0 — Объединение отключено.

min_insert_block_size_bytes_for_materialized_views

Устанавливает минимальное количество байт в блоке, который может быть вставлен в таблицу с помощью запроса INSERT. Блоки меньшего размера объединяются в более крупные. Эта настройка применяется только для блоков, вставляемых в материализованное представление. Настраивая эту настройку, вы контролируете объединение блоков при записи в материализованное представление и избегаете чрезмерного использования памяти.

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

  • Любое положительное целое число.
  • 0 — Объединение отключено.

См. также

min_insert_block_size_rows

Устанавливает минимальное количество строк в блоке, который может быть вставлен в таблицу с помощью запроса INSERT. Блоки меньшего размера объединяются в более крупные.

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

  • Положительное целое число.
  • 0 — Объединение отключено.

min_insert_block_size_rows_for_materialized_views

Устанавливает минимальное количество строк в блоке, который может быть вставлен в таблицу с помощью запроса INSERT. Блоки меньшего размера объединяются в более крупные. Эта настройка применяется только для блоков, вставляемых в материализованное представление. Настраивая эту настройку, вы контролируете объединение блоков при записи в материализованное представление и избегаете чрезмерного использования памяти.

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

  • Любое положительное целое число.
  • 0 — Объединение отключено.

См. также

min_joined_block_size_bytes

Минимальный размер блока для результата JOIN (если алгоритм соединения поддерживает это). 0 означает неограниченный.

min_os_cpu_wait_time_ratio_to_throw

Минимальное соотношение между временем ожидания CPU ОС (метрика OSCPUWaitMicroseconds) и временем занятости (метрика OSCPUVirtualTimeMicroseconds) для принятия решения о необходимости отклонения запросов. Линейная интерполяция между минимальным и максимальным соотношением используется для вычисления вероятности, вероятность на этом этапе равна 0.

mongodb_throw_on_unsupported_query

Если включено, таблицы MongoDB будут возвращать ошибку, когда запрос MongoDB не может быть построен. В противном случае ClickHouse читает всю таблицу и обрабатывает ее локально. Эта опция не применяется, когда 'allow_experimental_analyzer=0'.

move_all_conditions_to_prewhere

Переместить все жизнеспособные условия из WHERE в PREWHERE.

move_primary_key_columns_to_end_of_prewhere

Переместить условия PREWHERE, содержащие колонки первичного ключа, в конец цепочки AND. Скорее всего, эти условия учитываются при анализе первичного ключа и, таким образом, не будут добавлять много к фильтрации PREWHERE.

multiple_joins_try_to_keep_original_names

Не добавлять псевдонимы в список выражений верхнего уровня при переписывании нескольких соединений.

mutations_execute_nondeterministic_on_initiator

Если истинно, постоянные ненаправленные функции (например, функция now()) выполняются на инициаторе и заменяются литеральными значениями в запросах UPDATE и DELETE. Это помогает сохранять данные синхронизированными на репликах при выполнении мутаций с постоянными ненаправленными функциями. Значение по умолчанию: false.

mutations_execute_subqueries_on_initiator

Если истинно, скалярные подзапросы выполняются на инициаторе и заменяются литеральными значениями в запросах UPDATE и DELETE. Значение по умолчанию: false.

mutations_max_literal_size_to_replace

Максимальный размер сериализованной литералы в байтах для замены в запросах UPDATE и DELETE. Применяется только в том случае, если хотя бы одна из двух настроек выше включена. Значение по умолчанию: 16384 (16 КБ).

mutations_sync

Позволяет выполнять запросы ALTER TABLE ... UPDATE|DELETE|MATERIALIZE INDEX|MATERIALIZE PROJECTION|MATERIALIZE COLUMN|MATERIALIZE STATISTICS (мутации) синхронно.

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

  • 0 - Мутации выполняются асинхронно.
  • 1 - Запрос ожидает завершения всех мутаций на текущем сервере.
  • 2 - Запрос ожидает завершения всех мутаций на всех репликах (если они существуют).

mysql_datatypes_support_level

Определяет, как типы MySQL преобразуются в соответствующие типы ClickHouse. Список, разделенный запятыми, в любом сочетании decimal, datetime64, date2Date32 или date2String.

  • decimal: преобразовывать NUMERIC и DECIMAL типы в Decimal, когда точность это позволяет.
  • datetime64: преобразовывать DATETIME и TIMESTAMP типы в DateTime64, а не в DateTime, когда точность не равна 0.
  • date2Date32: преобразовывать DATE в Date32, а не в Date. Имеет приоритет над date2String.
  • date2String: преобразовывать DATE в String, а не в Date. Переопределяется datetime64.

mysql_map_fixed_string_to_text_in_show_columns

При включении, тип данных FixedString ClickHouse будет отображаться как TEXT в SHOW COLUMNS.

Действует только при подключении через MySQL протокол.

  • 0 - Использовать BLOB.
  • 1 - Использовать TEXT.

mysql_map_string_to_text_in_show_columns

При включении, тип данных String ClickHouse будет отображаться как TEXT в SHOW COLUMNS.

Действует только при подключении через MySQL протокол.

  • 0 - Использовать BLOB.
  • 1 - Использовать TEXT.

mysql_max_rows_to_insert

Максимальное количество строк в пакетной вставке MySQL для движка хранения MySQL.

network_compression_method

Устанавливает метод сжатия данных, используемый для связи между серверами и между сервером и clickhouse-client.

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

  • LZ4 — устанавливает метод сжатия LZ4.
  • ZSTD — устанавливает метод сжатия ZSTD.

См. также

network_zstd_compression_level

Настраивает уровень сжатия ZSTD. Используется только когда network_compression_method установлен на ZSTD.

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

  • Положительное целое число от 1 до 15.

normalize_function_names

Нормализовать имена функций до их канонических имен.

number_of_mutations_to_delay

Если измененная таблица содержит хотя бы столько же незаконченных мутаций, искусственно замедлить мутации таблицы. 0 - отключено.

number_of_mutations_to_throw

Если измененная таблица содержит хотя бы столько же незаконченных мутаций, выбрасывается исключение 'Слишком много мутаций ...'. 0 - отключено.

odbc_bridge_connection_pool_size

Размер пула соединений для каждой строки настроек соединения в ODBC мосту.

odbc_bridge_use_connection_pooling

Использовать пул соединений в ODBC мосту. Если установить в false, новое соединение создается каждый раз.

offset

Устанавливает количество строк, которые нужно пропустить, прежде чем начать возвращать строки из запроса. Это корректирует описание смещения, установленное с помощью OFFSET, так что эти два значения суммируются.

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

  • 0 — Не пропускаются строки.
  • Положительное целое число.

Пример

Входная таблица:

Запрос:

Результат:

opentelemetry_start_trace_probability

Устанавливает вероятность, что ClickHouse может начать трассировку для выполняемых запросов (если не предоставлен родительский контекст трассировки).

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

  • 0 — Трассировка для всех выполняемых запросов отключена (если не предоставлен родительский контекст трассировки).
  • Положительное дробное число в диапазоне [0..1]. Например, если значение настройки равно 0,5, ClickHouse может начинать трассировку в среднем для половины запросов.
  • 1 — Трассировка для всех выполняемых запросов включена.

opentelemetry_trace_processors

Собирать спаны OpenTelemetry для процессоров.

optimize_aggregation_in_order

Включает оптимизацию GROUP BY в запросах SELECT для агрегации данных в соответствующем порядке в таблицах MergeTree.

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

  • 0 — Оптимизация GROUP BY отключена.
  • 1 — Оптимизация GROUP BY включена.

См. также

optimize_aggregators_of_group_by_keys

Устраняет агрегаторы min/max/any/anyLast для ключей GROUP BY в разделе SELECT.

optimize_and_compare_chain

Пополняет постоянное сравнение в цепочках AND, чтобы улучшить возможность фильтрации. Поддерживает операторы <, <=, >, >=, = и их сочетания. Например, (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_count_from_files

Включает или отключает оптимизацию подсчета числа строк из файлов в различных входных форматах. Применяется к табличным функциям/движкам file/s3/url/hdfs/azureBlobStorage.

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

  • 0 — Оптимизация отключена.
  • 1 — Оптимизация включена.

optimize_distinct_in_order

Включает оптимизацию DISTINCT, если некоторые колонки в DISTINCT образуют префикс сортировки. Например, префикс сортировочного ключа в Merge Tree или операторе ORDER BY.

optimize_distributed_group_by_sharding_key

Оптимизация запросов GROUP BY sharding_key, избегая затратной агрегации на сервере инициаторе (что снизит использование памяти для запроса на сервере инициаторе).

Поддерживаются следующие типы запросов (и все их комбинации):

  • SELECT DISTINCT [..., ]sharding_key[, ...] FROM dist
  • SELECT ... FROM dist GROUP BY sharding_key[, ...]
  • SELECT ... FROM dist GROUP BY sharding_key[, ...] ORDER BY x
  • SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1
  • SELECT ... FROM dist GROUP BY sharding_key[, ...] LIMIT 1 BY x

Следующие типы запросов не поддерживаются (поддержка некоторых из них может быть добавлена позже):

  • SELECT ... GROUP BY sharding_key[, ...] WITH TOTALS
  • SELECT ... GROUP BY sharding_key[, ...] WITH ROLLUP
  • SELECT ... GROUP BY sharding_key[, ...] WITH CUBE
  • SELECT ... GROUP BY sharding_key[, ...] SETTINGS extremes=1

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

  • 0 — Отключено.
  • 1 — Включено.

См. также:

примечание

На данный момент это требует optimize_skip_unused_shards (причина в том, что когда-нибудь это может быть включено по умолчанию, и оно будет работать корректно только если данные были вставлены через распределенную таблицу, т.е. данные распределены в соответствии с ключом шардирования).

optimize_exchanges

Experimental feature. Learn more.

Удаляет ненужные обмены в плане распределенного запроса. Отключите ее для отладки.

optimize_extract_common_expressions

Позволяет извлечение общих выражений из дизъюнкций в выражениях WHERE, PREWHERE, ON, HAVING и QUALIFY. Логическое выражение вроде (A AND B) OR (A AND C) может быть переписано в A AND (B OR C), что может помочь использовать:

  • индексы в простых фильтрующих выражениях
  • оптимизацию соединения cross to inner join.

optimize_functions_to_subcolumns

Включает или отключает оптимизацию, преобразуя некоторые функции в чтение подколонок. Это уменьшает объем данных для чтения.

Эти функции могут быть преобразованы:

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

  • 0 — Оптимизация отключена.
  • 1 — Оптимизация включена.

optimize_group_by_constant_keys

Оптимизация GROUP BY, когда все ключи в блоке постоянные.

optimize_group_by_function_keys

Устраняет функции других ключей в разделе GROUP BY.

optimize_if_chain_to_multiif

Заменяет цепочки if(cond1, then1, if(cond2, ...)) на multiIf. В данный момент это не дает преимущества для числовых типов.

optimize_if_transform_strings_to_enum

Заменяет аргументы строкового типа в If и Transform на enum. Отключено по умолчанию, поскольку это может привести к несогласованным изменениям в распределенном запросе, что может привести к его сбою.

optimize_injective_functions_in_group_by

Заменяет инъективные функции на их аргументы в разделе GROUP BY.

optimize_injective_functions_inside_uniq

Удаляет инъективные функции с одним аргументом внутри функций uniq*().

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

Включает или отключает автоматическую оптимизацию PREWHERE в запросах SELECT.

Работает только для таблиц *MergeTree.

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

  • 0 — Автоматическая оптимизация PREWHERE отключена.
  • 1 — Автоматическая оптимизация PREWHERE включена.

optimize_move_to_prewhere_if_final

Включает или отключает автоматическую оптимизацию PREWHERE в запросах SELECT с модификатором FINAL.

Работает только для таблиц *MergeTree.

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

  • 0 — Автоматическая оптимизация PREWHERE в запросах SELECT с модификатором FINAL отключена.
  • 1 — Автоматическая оптимизация PREWHERE в запросах SELECT с модификатором FINAL включена.

См. также

optimize_multiif_to_if

Заменяет multiIf с единственным условием на if.

optimize_normalize_count_variants

Переписывание агрегатных функций, которые семантически равны count() как count().

optimize_on_insert

Включает или отключает преобразование данных перед вставкой, как если бы слияние было выполнено над этим блоком (в соответствии с движком таблицы).

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

  • 0 — Отключено.
  • 1 — Включено.

Пример

Разница между включенной и отключенной оптимизацией:

Запрос:

Результат:

Обратите внимание, что эта настройка влияет на поведение материализованных представлений.

optimize_or_like_chain

Оптимизирует множественные OR LIKE в multiMatchAny. Эта оптимизация не должна быть включена по умолчанию, поскольку она может нарушать анализ индексов в некоторых случаях.

optimize_read_in_order

Включает оптимизацию ORDER BY в запросах SELECT для чтения данных из таблиц MergeTree.

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

  • 0 — Оптимизация ORDER BY отключена.
  • 1 — Оптимизация ORDER BY включена.

См. также

optimize_read_in_window_order

Включает оптимизацию ORDER BY в оконной клаузе для чтения данных в соответствующем порядке в таблицах MergeTree.

optimize_redundant_functions_in_order_by

Удаляет функции из ORDER BY, если их аргументы также присутствуют в ORDER BY.

optimize_respect_aliases

Если установлено в true, будет уважаться псевдонимы в WHERE/GROUP BY/ORDER BY, что поможет с обрезкой партиций/вторичными индексами/оптимизацией агрегации в ORDER BY/оптимизацией чтения в порядке/оптимизацией тривиального подсчета.

optimize_rewrite_aggregate_function_with_if

Переписывание агрегатных функций с выражением if в качестве аргумента, когда логически эквивалентно. Например, avg(if(cond, col, null)) можно переписать как avgOrNullIf(cond, col). Это может улучшить производительность.

примечание

Поддерживается только с анализатором (enable_analyzer = 1).

optimize_rewrite_array_exists_to_has

Переписывание функций arrayExists() в has(), когда логически эквивалентно. Например, arrayExists(x -> x = 1, arr) можно переписать как has(arr, 1).

optimize_rewrite_sum_if_to_count_if

Переписывает функции sumIf() и sum(if()) в функцию countIf(), когда логически эквивалентно.

optimize_skip_merged_partitions

Включает или отключает оптимизацию для запроса OPTIMIZE TABLE ... FINAL, если есть только одна часть с уровнем > 0 и она не имеет истекшего TTL.

  • OPTIMIZE TABLE ... FINAL SETTINGS optimize_skip_merged_partitions=1

По умолчанию запрос OPTIMIZE TABLE ... FINAL переписывает одну часть, даже если есть только одна часть.

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

  • 1 — Включить оптимизацию.
  • 0 — Отключить оптимизацию.

optimize_skip_unused_shards

Включает или отключает пропуск неиспользуемых шардов для запросов SELECT, которые имеют условие ключа шардирования в 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

Включает объединение агрегатных функций с идентичным аргументом. Переписывает запрос, содержащий как минимум две агрегатные функции из sum, count или avg с идентичным аргументом в sumCount.

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

  • 0 — Функции с идентичным аргументом не объединяются.
  • 1 — Функции с идентичным аргументом объединяются.

Пример

Запрос:

Результат:

optimize_throw_if_noop

Включает или отключает выброс исключения, если запрос OPTIMIZE не выполнил слияние.

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

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

  • 1 — Выброс исключения включен.
  • 0 — Выброс исключения отключен.

optimize_time_filter_with_preimage

Оптимизация предикатов Date и DateTime путем преобразования функций в эквивалентные сравнения без преобразований (например, toYear(col) = 2023 -> col >= '2023-01-01' AND col <= '2023-12-31').

optimize_trivial_approximate_count_query

Использует приблизительное значение для тривиальных запросов подсчета для хранилищ, которые поддерживают такую оценку, например, EmbeddedRocksDB.

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

  • 0 — Оптимизация отключена.
  • 1 — Оптимизация включена.

optimize_trivial_count_query

Включает или отключает оптимизацию для тривиального запроса SELECT count() FROM table с использованием метаданных из MergeTree. Если вам нужно использовать безопасность на уровне строк, отключите эту настройку.

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

  • 0 — Оптимизация отключена.
  • 1 — Оптимизация включена.

См. также:

optimize_trivial_insert_select

Оптимизация тривиального запроса 'INSERT INTO table SELECT ... FROM TABLES'.

optimize_uniq_to_count

Переписывает uniq и его варианты (кроме uniqUpTo) в count, если подзапрос имеет distinct или group by клаузу.

optimize_use_implicit_projections

Автоматически выбирает неявные проекции для выполнения запроса SELECT.

optimize_use_projections

Включает или отключает оптимизацию проекций при обработке запросов SELECT.

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

  • 0 — Оптимизация проекций отключена.
  • 1 — Оптимизация проекций включена.

optimize_using_constraints

Использует ограничения для оптимизации запроса. По умолчанию false.

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

  • true, false.

os_thread_priority

Устанавливает приоритет ( nice ) для потоков, выполняющих запросы. Планировщик ОС учитывает этот приоритет при выборе следующего потока для выполнения на каждом доступном ядре CPU.

примечание

Чтобы использовать эту настройку, вам необходимо установить возможность CAP_SYS_NICE. Пакет clickhouse-server настраивает это во время установки. Некоторые виртуальные среды не позволяют устанавливать возможность CAP_SYS_NICE. В этом случае clickhouse-server выдает о этом сообщение в начале работы.

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

  • Вы можете задать значения в диапазоне [-20, 19].

Низкие значения означают более высокий приоритет. Потоки с низкими значениями приоритета nice выполняются чаще, чем потоки с высокими значениями. Высокие значения предпочтительны для длительных неинтерактивных запросов, поскольку это позволяет им быстро отказаться от ресурсов в пользу коротких интерактивных запросов, когда они приходят.

output_format_compression_level

Уровень сжатия по умолчанию, если вывод запроса сжат. Настройка применяется, когда запрос SELECT имеет INTO OUTFILE или при записи в табличные функции file, url, hdfs, s3 или azureBlobStorage.

Возможные значения: от 1 до 22.

output_format_compression_zstd_window_log

Может быть использовано, когда методом сжатия выходных данных является zstd. Если больше 0, эта настройка явно устанавливает размер окна сжатия (степень 2) и включает режим длительного сжатия для zstd. Это может помочь достичь лучшего коэффициента сжатия.

Возможные значения: неотрицательные числа. Обратите внимание, что если значение слишком мало или слишком велико, zstdlib вызовет исключение. Типичные значения составляют от 20 (размер окна = 1MB) до 30 (размер окна = 1GB).

output_format_parallel_formatting

Включает или отключает параллельное форматирование данных. Поддерживается только для форматов TSV, TSKV, CSV и JSONEachRow.

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

  • 1 — Включено.
  • 0 — Отключено.

page_cache_block_size

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

Эта настройка может быть настроена на уровне каждого запроса, но записи кэша с разными размерами блоков не могут быть повторно использованы. Изменение этой настройки фактически аннулирует существующие записи в кэше.

Большее значение, например, 1 MiB, подходит для высокопроизводительных запросов, а меньшее значение, например, 64 KiB, подходит для запросов с низкой задержкой.

page_cache_inject_eviction

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

page_cache_lookahead_blocks

При пропуске кэша страниц пользовательского пространства прочитать до этого количества последовательных блоков сразу из базового хранилища, если они также не находятся в кэше. Каждый блок является page_cache_block_size байт.

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

parallel_distributed_insert_select

Включает параллельный распределенный запрос INSERT ... SELECT.

Если мы выполняем запросы INSERT INTO distributed_table_a SELECT ... FROM distributed_table_b и обе таблицы используют один и тот же кластер и обе таблицы являются либо реплицированными, либо нереплицированными, то этот запрос обрабатывается локально на каждом шарде.

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

  • 0 — Отключено.
  • 1 — SELECT будет выполнен на каждом шарде из базовой таблицы распределенного движка.
  • 2 — SELECT и INSERT будут выполнены на каждом шарде из/в базовую таблицу распределенного движка.

parallel_hash_join_threshold

Когда применяется алгоритм соединения на основе хеширования, этот порог помогает решить, использовать hash или parallel_hash (только в случае, если оценка размера правой таблицы доступна). Первый используется, когда мы знаем, что размер правой таблицы ниже порога.

parallel_replica_offset

Beta feature. Learn more.

Это внутренняя настройка, которая не должна использоваться напрямую и представляет собой деталь реализации режима "параллельные реплики". Эта настройка будет автоматически настроена сервером-инициатором для распределенных запросов к индексу реплики, участвующей в обработке запроса среди параллельных реплик.

parallel_replicas_allow_in_with_subquery

Beta feature. Learn more.

Если true, подзапрос для IN будет выполняться на каждой последовательной реплике.

parallel_replicas_count

Beta feature. Learn more.

Это внутренняя настройка, которая не должна использоваться напрямую и представляет собой деталь реализации режима "параллельные реплики". Эта настройка будет автоматически настроена сервером-инициатором для распределенных запросов к количеству параллельных реплик, участвующих в обработке запроса.

parallel_replicas_custom_key

Beta feature. Learn more.

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

Предпочтительны простые выражения с использованием первичных ключей.

Если эта настройка используется в кластере, состоящем из одного шара с несколькими репликами, эти реплики будут преобразованы в виртуальные шарды. В противном случае она будет работать так же, как для ключа SAMPLE, будет использовать несколько реплик каждого шара.

parallel_replicas_custom_key_range_lower

Beta feature. Learn more.

Позволяет типу фильтра 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

Beta feature. Learn more.

Позволяет типу фильтра 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_for_cluster_engines

Заменяет движки табличных функций на альтернативы с кластером.

parallel_replicas_for_non_replicated_merge_tree

Beta feature. Learn more.

Если true, ClickHouse будет использовать алгоритм параллельных реплик также для нереплицированных таблиц MergeTree.

parallel_replicas_index_analysis_only_on_coordinator

Beta feature. Learn more.

Анализ индексов выполняется только на реплике-координаторе и пропускается на других репликах. Эффективно только при включенном parallel_replicas_local_plan.

parallel_replicas_insert_select_local_pipeline

Beta feature. Learn more.

Использовать локальный конвейер во время распределенного INSERT SELECT с параллельными репликами.

parallel_replicas_local_plan

Beta feature. Learn more.

Создать локальный план для локальной реплики.

parallel_replicas_mark_segment_size

Beta feature. Learn more.

Части виртуально разделены на сегменты, которые будут распределены между репликами для параллельного чтения. Эта настройка контролирует размер этих сегментов. Не рекомендуется изменять, пока вы не будете абсолютно уверены в том, что делаете. Значение должно быть в диапазоне [128; 16384].

parallel_replicas_min_number_of_rows_per_replica

Beta feature. Learn more.

Ограничивает количество реплик, используемых в запросе, до (предполагаемые строки для чтения / min_number_of_rows_per_replica). Максимум по-прежнему ограничен параметром 'max_parallel_replicas'.

parallel_replicas_mode

Beta feature. Learn more.

Тип фильтра, который следует использовать с настраиваемым ключом для параллельных реплик. По умолчанию — использовать операцию модуля на настраиваемом ключе, диапазон — использовать диапазонный фильтр на настраиваемом ключе, используя все возможные значения для типа значения настраиваемого ключа.

parallel_replicas_only_with_analyzer

Beta feature. Learn more.

Анализатор должен быть включен для использования параллельных реплик. При отключенном анализаторе выполнение запроса переходит к локальному выполнению, даже если включено параллельное чтение из реплик. Использование параллельных реплик без включенного анализатора не поддерживается.

parallel_replicas_prefer_local_join

Beta feature. Learn more.

Если true, и JOIN может быть выполнен с алгоритмом параллельных реплик, и все хранилища правой стороны JOIN являются *MergeTree, будет использоваться локальный JOIN вместо GLOBAL JOIN.

parallel_view_processing

Включает одновременную отправку к связанным представлениям вместо последовательной.

parallelize_output_from_storages

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

parsedatetime_e_requires_space_padding

Форматировщик '%e' в функции 'parseDateTime' ожидает, что дни с одной цифрой будут дополнены пробелом, например, ' 2' принимается, а '2' вызывает ошибку.

parsedatetime_parse_without_leading_zeros

Форматировщики '%c', '%l' и '%k' в функции 'parseDateTime' обрабатывают месяцы и часы без начальных нулей.

partial_merge_join_left_table_buffer_bytes

Если не 0, группировать блоки левой таблицы в более крупные для левой стороны в алгоритме частичного соединения. Использует до 2x указанной памяти на поток соединения.

partial_merge_join_rows_in_right_blocks

Ограничивает размеры блоков данных правого соединения в алгоритме частичного соединения для запросов JOIN.

Сервер ClickHouse:

  1. Разделяет данные правого соединения на блоки с количеством строк до указанного значения.
  2. Индексирует каждый блок по его минимальным и максимальным значениям.
  3. Выгружает подготовленные блоки на диск, если это возможно.

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

  • Любое положительное целое. Рекомендуемый диапазон значений: [1000, 100000].

partial_result_on_first_cancel

Позволяет запросу вернуть частичный результат после отмены.

parts_to_delay_insert

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

parts_to_throw_insert

Если больше, чем это число активных частей в одной партиции целевой таблицы, выбросить исключение 'Слишком много частей ...'.

periodic_live_view_refresh

Интервал, по истечении которого периодически обновляемый live-представление принудительно обновляется.

poll_interval

Блокировать на сервере в цикле ожидания запроса в течение указанного количества секунд.

postgresql_connection_attempt_timeout

Тайм-аут соединения в секундах для одной попытки подключения к конечной точке PostgreSQL. Значение передается как параметр connect_timeout URL подключения.

postgresql_connection_pool_auto_close_connection

Закрывать соединение перед возвратом его в пул.

postgresql_connection_pool_retries

Количество попыток push/pop для пула соединений PostgreSQL и движка таблицы.

postgresql_connection_pool_size

Размер пула соединений для движка таблицы PostgreSQL и движка базы данных.

postgresql_connection_pool_wait_timeout

Тайм-аут push/pop в пуле соединений на пустом пуле для движка таблицы PostgreSQL и движка базы данных. По умолчанию он заблокирует на пустом пуле.

postgresql_fault_injection_probability

Приблизительная вероятность сбоя внутренних (для репликации) запросов PostgreSQL. Допустимое значение находится в интервале [0.0f, 1.0f].

prefer_column_name_to_alias

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

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

  • 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 может изменить поведение запросов для распределенных таблиц, он не подходит для локальных таблиц или таблиц из внешних ресурсов. Здесь в игру вступает настройка prefer_global_in_and_join.

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

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

Смотрите также:

prefer_localhost_replica

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

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

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

Отключите эту настройку, если вы используете max_parallel_replicas без parallel_replicas_custom_key. Если parallel_replicas_custom_key установлен, отключите эту настройку только если она используется на кластере с несколькими шардированными частями, содержащими несколько реплик. Если она используется на кластере с одной шардой и несколькими репликами, отключение этой настройки даст негативные результаты.

prefer_warmed_unmerged_parts_seconds

ClickHouse Cloud only

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

preferred_block_size_bytes

Эта настройка корректирует размер блока данных для обработки запросов и представляет собой дополнительную тонкую настройку для более грубой настройки 'max_block_size'. Если колонки большие и с 'max_block_size' строк размер блока, вероятно, будет больше указанного значения в байтах, его размер будет уменьшен для лучшей локальности кэша CPU.

preferred_max_column_in_block_size_bytes

Ограничение на максимальный размер колонки в блоке при считывании. Помогает снизить количество промахов кэша. Должен быть близок к размеру кэша L2.

preferred_optimize_projection_name

Если установлено в непустую строку, ClickHouse будет пытаться применить указанную проекцию в запросе.

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

  • строка: имя предпочтительной проекции.

prefetch_buffer_size

Максимальный размер буфера предварительной выборки для чтения из файловой системы.

Позволяет красиво выводить имена глубоко вложенных типов с отступами в запросе DESCRIBE и в функции toTypeName().

Пример:

priority

Приоритет запроса. 1 - самый высокий, более высокое значение - более низкий приоритет; 0 - не использовать приоритеты.

push_external_roles_in_interserver_queries

Включить передачу пользовательских ролей от инициатора к другим узлам во время выполнения запроса.

query_cache_compress_entries

Сжимать записи в кэше запросов. Уменьшает использование памяти кэша запросов за счет медленнее вставок в него / чтения из него.

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

  • 0 - Отключено
  • 1 - Включено

query_cache_max_entries

Максимальное количество результатов запросов, которые текущий пользователь может хранить в кэше запросов. 0 означает неограниченно.

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

  • Положительное целое число >= 0.

query_cache_max_size_in_bytes

Максимальное количество памяти (в байтах), которую текущий пользователь может выделить в кэше запросов. 0 означает неограниченно.

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

  • Положительное целое число >= 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' - Не кэшировать результат запроса и не создавать исключение.

query_cache_share_between_users

Если включено, результат SELECT запросов, кэшируемых в кэше запросов, может быть прочитан другими пользователями. Рекомендуется не включать эту настройку по соображениям безопасности.

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

  • 0 - Отключено
  • 1 - Включено

query_cache_squash_partial_results

Сжимать блоки частичных результатов в блоки размером max_block_size. Уменьшает производительность вставок в кэш запросов, но улучшает сжимаемость записей кэша (см. query_cache_compress_entries).

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

  • 0 - Отключено
  • 1 - Включено

query_cache_system_table_handling

Управляет тем, как кэш запросов обрабатывает SELECT запросы к системным таблицам, т.е. таблицам в базах данных system.* и information_schema.*.

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

  • 'throw' - Создавать исключение и не кэшировать результат запроса.
  • 'save' - Кэшировать результат запроса.
  • 'ignore' - Не кэшировать результат запроса и не создавать исключение.

query_cache_tag

Строка, которая выступает в качестве метки для записей кэша запросов. Одни и те же запросы с разными метками считаются разными кэшем запросов.

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

  • Любая строка.

query_cache_ttl

После этого времени в секундах записи в кэше запросов становятся устаревшими.

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

  • Положительное целое число >= 0.

query_condition_cache_store_conditions_as_plaintext

Сохраняет фильтрационное условие для кэша условий запросов в открытом виде. Если включено, system.query_condition_cache показывает вербальное фильтрационное условие, что облегчает отладку проблем с кэшем. Отключено по умолчанию, так как открытые фильтрационные условия могут раскрыть конфиденциальную информацию.

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

  • 0 - Отключено
  • 1 - Включено

query_metric_log_interval

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

Если установить в любое отрицательное значение, оно примет значение 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_join_to_in

Разрешает преобразование JOIN в подзапрос с IN, если выходные колонки привязаны только к левой таблице.

query_plan_convert_outer_join_to_inner_join

Разрешить преобразование OUTER JOIN в INNER JOIN, если фильтр после JOIN всегда фильтрует значения по умолчанию.

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

Переключает оптимизацию уровня плана запроса, которая перемещает фильтры вниз в плане выполнения. Эта настройка вступает в силу только если настройка query_plan_enable_optimizations равна 1.

примечание

Это настройка уровня эксперта, которая должна использоваться только для отладки разработчиками. Настройка может измениться в будущем несовместимым образом или быть удалена.

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

  • 0 - Отключить
  • 1 - Включить

query_plan_join_shard_by_pk_ranges

Применяет шардирование для JOIN, если ключи соединения содержат префикс ПЕРВИЧНОГО КЛЮЧА для обеих таблиц. Поддерживается для алгоритмов hash, parallel_hash и full_sorting_merge.

query_plan_join_swap_table

Определяет, какая сторона соединения должна быть таблицей-строителем (также называемой внутренней, той, которая вставляется в хеш-таблицу для хеш-соединения) в плане запроса. Эта настройка поддерживается только для строгих соединений ALL с предложением JOIN ON. Возможные значения:

  • 'auto': Позволить планировщику решить, какую таблицу использовать в качестве таблицы-строителя.
  • 'false': Никогда не менять таблицы (правая таблица — это таблица-строитель).
  • 'true': Всегда менять таблицы (левая таблица — это таблица-строитель).

query_plan_lift_up_array_join

Переключает оптимизацию уровня плана запроса, которая перемещает ARRAY JOIN выше в плане выполнения. Эта настройка вступает в силу только если настройка query_plan_enable_optimizations равна 1.

примечание

Это настройка уровня эксперта, которая должна использоваться только для отладки разработчиками. Настройка может измениться в будущем несовместимым образом или быть удалена.

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

  • 0 - Отключить
  • 1 - Включить

query_plan_lift_up_union

Переключает оптимизацию уровня плана запроса, которая перемещает большие поддеревья плана запроса в объединение для включения дальнейших оптимизаций. Эта настройка вступает в силу только если настройка query_plan_enable_optimizations равна 1.

примечание

Это настройка уровня эксперта, которая должна использоваться только для отладки разработчиками. Настройка может измениться в будущем несовместимым образом или быть удалена.

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

  • 0 - Отключить
  • 1 - Включить

query_plan_max_limit_for_lazy_materialization

Управляет максимальным лимитом, позволяющим использовать план запроса для оптимизации ленивой материализации. Если 0, лимита нет.

query_plan_max_optimizations_to_apply

Ограничивает общее количество оптимизаций, применяемых к плану запроса, см. настройку query_plan_enable_optimizations. Полезно для избежания долгого времени оптимизации для сложных запросов. В запросе EXPLAIN PLAN прекратите применение оптимизаций после достижения этого лимита и верните план таким, каким он есть. Для обычного выполнения запроса, если фактическое количество оптимизаций превышает эту настройку, будет выброшено исключение.

примечание

Это настройка уровня эксперта, которая должна использоваться только для отладки разработчиками. Настройка может измениться в будущем несовместимым образом или быть удалена.

query_plan_merge_expressions

Переключает оптимизацию уровня плана запроса, которая объединяет последовательные фильтры. Эта настройка вступает в силу только если настройка query_plan_enable_optimizations равна 1.

примечание

Это настройка уровня эксперта, которая должна использоваться только для отладки разработчиками. Настройка может измениться в будущем несовместимым образом или быть удалена.

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

  • 0 - Отключить
  • 1 - Включить

query_plan_merge_filter_into_join_condition

Позволить объединение фильтра в условие JOIN и преобразование CROSS JOIN в INNER.

query_plan_merge_filters

Позволять объединять фильтры в плане запроса.

query_plan_reuse_storage_ordering_for_window_functions

Включает оптимизацию на уровне плана запроса, которая использует сортировку хранения при сортировке для оконных функций. Эта настройка вступает в силу только в том случае, если параметр query_plan_enable_optimizations равен 1.

примечание

Эта настройка предназначена для экспертов и должна использоваться только для отладки разработчиками. Настройка может измениться в будущем с несовместимыми изменениями или быть удалена.

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

  • 0 - Отключить
  • 1 - Включить

query_plan_split_filter

примечание

Эта настройка предназначена для экспертов и должна использоваться только для отладки разработчиками. Настройка может измениться в будущем с несовместимыми изменениями или быть удалена.

Включает оптимизацию на уровне плана запроса, которая разделяет фильтры на выражения. Эта настройка вступает в силу только в том случае, если параметр query_plan_enable_optimizations равен 1.

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

  • 0 - Отключить
  • 1 - Включить

Включает оптимизацию на уровне плана запроса, которая пытается использовать индекс векторного сходства. Эта настройка вступает в силу только в том случае, если параметр query_plan_enable_optimizations равен 1.

примечание

Эта настройка предназначена для экспертов и должна использоваться только для отладки разработчиками. Настройка может измениться в будущем с несовместимыми изменениями или быть удалена.

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

  • 0 - Отключить
  • 1 - Включить

query_plan_use_new_logical_join_step

Использовать новый логический шаг соединения в плане запроса

query_profiler_cpu_time_period_ns

Устанавливает период для таймера тактового синхронизатора CPU профайлера запросов query profiler. Этот таймер учитывает только время CPU.

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

  • Положительное целое число в наносекундах.

    Рекомендуемые значения:

    • 10000000 (100 раз в секунду) наносекунд и больше для единичных запросов.
    • 1000000000 (один раз в секунду) для профилирования на уровне кластера.
  • 0 для отключения таймера.

Временно отключено в ClickHouse Cloud.

См. также:

  • Системная таблица trace_log

query_profiler_real_time_period_ns

Устанавливает период для реального таймера профайлера запросов query profiler. Реальный таймер учитывает время по часам.

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

  • Положительное целое число в наносекундах.

    Рекомендуемые значения:

    • 10000000 (100 раз в секунду) наносекунд и меньше для единичных запросов.
    • 1000000000 (один раз в секунду) для профилирования на уровне кластера.
  • 0 для отключения таймера.

Временно отключено в ClickHouse Cloud.

См. также:

  • Системная таблица trace_log

queue_max_wait_ms

Время ожидания в очереди запросов, если количество одновременно выполняемых запросов превышает максимальное.

rabbitmq_max_wait_ms

Время ожидания для чтения из RabbitMQ перед повторной попыткой.

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_filesystem_cache_if_exists_otherwise_bypass_cache

Разрешить использование кеша файловой системы в пассивном режиме - использовать существующие записи кеша, но не добавлять новые записи в кеш. Если вы установите эту настройку для тяжелых ad-hoc запросов и оставите ее отключенной для коротких запросов в реальном времени, это позволит избежать колебаний кеша из-за слишком тяжелых запросов и улучшить общую эффективность системы.

read_from_page_cache_if_exists_otherwise_bypass_cache

Использовать кеш страниц в пользовательском пространстве в пассивном режиме, аналогично read_from_filesystem_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_overflow_mode

Что делать, когда предел превышен.

read_overflow_mode_leaf

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

Возможные варианты:

  • throw: выбросить исключение (по умолчанию).
  • break: остановить выполнение запроса и вернуть частичный результат.

read_priority

Приоритет для чтения данных из локальной файловой системы или удаленной файловой системы. Поддерживается только для метода 'pread_threadpool' для локальной файловой системы и для метода threadpool для удаленной файловой системы.

read_through_distributed_cache

ClickHouse Cloud only

Эта настройка имеет эффект только в ClickHouse Cloud. Разрешить чтение из распределенного кеша.

readonly

0 - нет ограничений на чтение. 1 - только запросы на чтение, а также изменение явно разрешенных настроек. 2 - только запросы на чтение, а также изменение настроек, кроме настройки 'readonly'.

receive_data_timeout_ms

Таймаут соединения для получения первого пакета данных или пакета с положительным прогрессом от реплики.

receive_timeout

Таймаут для получения данных из сети, в секундах. Если байты не были получены в этом интервале, выбрасывается исключение. Если вы установите эту настройку на клиенте, таймаут 'send_timeout' для сокета также будет установлен на соответствующем конечном соединении на сервере.

regexp_max_matches_per_row

Устанавливает максимальное количество совпадений для одного регулярного выражения на строку. Используйте это для защиты от перегрузки памяти при использовании жадного регулярного выражения в функции extractAllGroupsHorizontal.

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

  • Положительное целое число.

reject_expensive_hyperscan_regexps

Отклонять шаблоны, которые, вероятно, будут дорогими для оценки с помощью hyperscan (из-за взрыва состояния NFA).

remerge_sort_lowered_memory_bytes_ratio

Если использование памяти после повторного слияния не снизится на это соотношение, повторное слияние будет отключено.

remote_filesystem_read_method

Метод чтения данных из удаленной файловой системы, один из: read, threadpool.

remote_filesystem_read_prefetch

Следует использовать предварительное чтение при чтении данных из удаленной файловой системы.

remote_fs_read_backoff_max_tries

Максимальное количество попыток чтения с применением отката.

remote_fs_read_max_backoff_ms

Максимальное время ожидания при попытке чтения данных с удаленного диска.

remote_read_min_bytes_for_seek

Минимальное количество байтов, необходимых для удаленного чтения (url, s3), чтобы осуществить переход, вместо чтения с игнорированием.

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

При использовании HTTP интерфейса можно передать параметр 'query_id'. Это любая строка, которая служит идентификатором запроса. Если в это время уже существует запрос от того же пользователя с тем же 'query_id', поведение зависит от параметра '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

Заменить источники внешнего словаря на Null при восстановлении. Полезно для тестирования.

restore_replace_external_engines_to_null

Для тестирования. Заменяет все внешние движки на Null, чтобы не инициировать внешние соединения.

restore_replace_external_table_functions_to_null

Для тестирования. Заменяет все внешние табличные функции на Null, чтобы не инициировать внешние соединения.

restore_replicated_merge_tree_to_shared_merge_tree

Заменить движок таблицы с ReplicatedMergeTree -> SharedMergeTree во время ВОССТАНОВЛЕНИЯ.

result_overflow_mode

Значение по умолчанию для облака: throw

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

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

  • throw: выбросить исключение (по умолчанию).
  • break: остановить выполнение запроса и вернуть частичный результат, как если бы исходные данные закончились.

Использование 'break' аналогично использованию LIMIT. Break прерывает выполнение только на уровне блока. Это означает, что количество возвращаемых строк больше чем max_result_rows, кратное max_block_size и зависит от max_threads.

Пример

rewrite_count_distinct_if_with_count_distinct_implementation

Позволяет переписать countDistinctIf с помощью настройки count_distinct_implementation.

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

  • true — Разрешить.
  • false — Запретить.

s3_allow_multipart_copy

Разрешить многочастичное копирование в S3.

s3_allow_parallel_part_upload

Использовать несколько потоков для многочастичной загрузки в s3. Это может привести к немного большему использованию памяти.

s3_check_objects_after_upload

Проверять каждый загруженный объект в S3 с помощью запроса head, чтобы убедиться, что загрузка прошла успешно.

s3_connect_timeout_ms

Таймаут соединения для хоста с дисков S3.

s3_create_new_file_on_insert

Включает или отключает создание нового файла при каждой вставке в таблицы движка s3. Если включено, при каждой вставке создается новый объект S3 с ключом, аналогично следующему шаблону:

начальный: 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. Это ускоряет запись, избегая чрезмерной обработки файла. Это в основном безопасно, так как данные таблиц MergeTree проверяются ClickHouse, и когда S3 доступен через HTTPS, уровень TLS уже обеспечивает целостность при передаче по сети. В то время как дополнительные контрольные суммы в S3 дают дополнительный уровень защиты.

s3_ignore_file_doesnt_exist

Игнорировать отсутствие файла, если он не существует при чтении определенных ключей.

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

  • 1 — SELECT возвращает пустой результат.
  • 0 — SELECT выбрасывает исключение.

s3_list_object_keys_size

Максимальное количество файлов, которые могут быть возвращены в пакете запросом ListObject.

s3_max_connections

Максимальное количество соединений на сервер.

s3_max_get_burst

Максимальное количество запросов, которые могут быть выданы одновременно, прежде чем будет достигнут лимит запросов в секунду. По умолчанию (0) равно s3_max_get_rps.

s3_max_get_rps

Лимит на количество запросов S3 GET в секунду перед ограничением. Ноль означает неограниченно.

s3_max_inflight_parts_for_one_file

Максимальное количество одновременно загруженных частей в запросе многочастичной загрузки. 0 означает неограниченно.

s3_max_part_number

Максимальный номер части для загрузки в S3.

s3_max_put_burst

Максимальное количество запросов, которые могут быть выданы одновременно, прежде чем будет достигнут лимит запросов в секунду. По умолчанию (0) равно s3_max_put_rps.

s3_max_put_rps

Лимит на количество запросов S3 PUT в секунду перед ограничением. Ноль означает неограниченно.

s3_max_redirects

Максимальное количество разрешенных переходов S3.

s3_max_single_operation_copy_size

Максимальный размер для копирования в одной операции в S3. Эта настройка используется только если s3_allow_multipart_copy установлена в true.

s3_max_single_part_upload_size

Максимальный размер объекта для загрузки с помощью единой части загрузки в S3.

s3_max_single_read_retries

Максимальное количество попыток во время одного чтения S3.

s3_max_unexpected_write_error_retries

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

s3_max_upload_part_size

Максимальный размер части для загрузки во время многочастичной загрузки в S3.

s3_min_upload_part_size

Минимальный размер части для загрузки во время многочастичной загрузки в S3.

s3_request_timeout_ms

Время ожидания для отправки и приема данных в S3. Ошибка, если один TCP вызов чтения или записи блокирует на это время.

s3_retry_attempts

Настройка для Aws::Client::RetryStrategy, Aws::Client выполняет повторы самостоятельно, 0 означает отсутствие повторов.

s3_skip_empty_files

Включает или отключает пропуск пустых файлов в таблицах движка S3.

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

  • 0 — SELECT выбрасывает исключение, если пустой файл несовместим с запрашиваемым форматом.
  • 1 — SELECT возвращает пустой результат для пустого файла.

s3_slow_all_threads_after_network_error

Если установлено значение true, то все потоки, выполняющие запросы S3 к одной и той же конечной точке, замедляются на некоторое время после того, как один запрос S3 завершится с ошибкой сети, подлежащей повторной попытке. Если установлено значение false, то каждый поток, выполняющий запрос S3, использует независимый набор откатов при ошибках сети.

s3_strict_upload_part_size

Точный размер части для загрузки во время многочастичной загрузки в S3 (некоторые реализации не поддерживают переменные размеры частей).

s3_throw_on_zero_files_match

Выбросить ошибку, когда запрос ListObjects не может сопоставить ни один файл.

s3_truncate_on_insert

Включает или отключает обрезку перед вставками в таблицы движка S3. Если отключено, выбросится исключение при попытках вставки, если объект S3 уже существует.

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

  • 0 — запрос INSERT создает новый файл или завершается, если файл существует и s3_create_new_file_on_insert не установлен.
  • 1 — запрос INSERT заменяет существующее содержимое файла новыми данными.

Смотрите дополнительные детали здесь.

s3_upload_part_size_multiply_factor

Умножать s3_min_upload_part_size на этот коэффициент каждый раз, когда s3_multiply_parts_count_threshold части были загружены из одной записи в S3.

s3_upload_part_size_multiply_parts_count_threshold

Каждый раз, когда это количество частей было загружено в S3, s3_min_upload_part_size умножается на s3_upload_part_size_multiply_factor.

s3_use_adaptive_timeouts

Если установлено значение true, для всех запросов S3 первые две попытки выполняются с низкими тайм-аутами отправки и получения. Если установлено значение false, все попытки выполняются с одинаковыми тайм-аутами.

s3_validate_request_settings

Включает проверку настроек запроса S3.

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

  • 1 — валидировать настройки.
  • 0 — не валидировать настройки.

s3queue_default_zookeeper_path

Префикс пути zookeeper по умолчанию для движка S3Queue.

s3queue_enable_logging_to_s3queue_log

Включить запись в system.s3queue_log. Значение может быть переопределено для таблицы с помощью настроек таблицы.

s3queue_migrate_old_metadata_to_buckets

Перенос старой структуры метаданных таблицы S3Queue в новую.

schema_inference_cache_require_modification_time_for_url

Использовать схему из кеша с проверкой времени последнего изменения для URL с заголовком Last-Modified.

schema_inference_use_cache_for_azure

Использовать кеш в выводе схемы при использовании функции таблицы azure.

schema_inference_use_cache_for_file

Использовать кеш в выводе схемы при использовании функции таблицы file.

schema_inference_use_cache_for_hdfs

Использовать кеш в выводе схемы при использовании функции таблицы hdfs.

schema_inference_use_cache_for_s3

Использовать кеш в выводе схемы при использовании функции таблицы s3.

schema_inference_use_cache_for_url

Использовать кеш в выводе схемы при использовании функции таблицы url.

secondary_indices_enable_bulk_filtering

Включить алгоритм массовой фильтрации для индексов. Ожидается, что он всегда будет более эффективным, но у нас есть эта настройка для совместимости и контроля.

select_sequential_consistency

примечание

Это настройка имеет разные поведения для SharedMergeTree и ReplicatedMergeTree, смотрите консистентность SharedMergeTree для получения дополнительной информации о поведении select_sequential_consistency в SharedMergeTree.

Включает или отключает последовательную консистентность для запросов SELECT. Требуется, чтобы insert_quorum_parallel был отключен (включен по умолчанию).

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

  • 0 — Отключено.
  • 1 — Включено.

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

Когда последовательная консистентность включена, ClickHouse позволяет клиенту выполнять запрос SELECT только для тех реплик, которые содержат данные из всех предыдущих запросов INSERT, выполненных с insert_quorum. Если клиент ссылается на частичную реплику, ClickHouse сгенерирует исключение. Запрос SELECT не будет включать данные, которые еще не были записаны в кворум реплик.

Когда insert_quorum_parallel включен (по умолчанию), select_sequential_consistency не работает. Это связано с тем, что параллельные запросы INSERT могут записываться в разные наборы кворум-реплик, поэтому нет гарантии, что одна реплика получит все записи.

Смотрите также:

send_logs_level

Отправляет текстовые логи сервера с указанным минимальным уровнем клиенту. Доступные значения: 'trace', 'debug', 'information', 'warning', 'error', 'fatal', 'none'.

send_logs_source_regexp

Отправляет текстовые логи сервера с указанным регулярным выражением для сопоставления имени источника лога. Пустое значение означает все источники.

send_progress_in_http_headers

Включает или отключает заголовки HTTP-ответов X-ClickHouse-Progress в ответах clickhouse-server.

Для получения дополнительной информации читайте описание HTTP интерфейса.

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

  • 0 — Отключено.
  • 1 — Включено.

send_timeout

Таймаут для отправки данных в сеть, в секундах. Если клиенту нужно отправить какие-либо данные, но он не может отправить ни одного байта в этот интервал, выбрасывается исключение. Если вы установите эту настройку на клиенте, 'receive_timeout' для сокета также будет установлен на соответствующей стороне соединения на сервере.

serialize_query_plan

Сериализует план запроса для распределенной обработки.

session_timezone

Beta feature. Learn more.

Устанавливает неявный часовой пояс текущей сессии или запроса. Неявный часовой пояс применяется к значениям типа DateTime/DateTime64, для которых не указан явно часовой пояс. Эта настройка имеет приоритет над глобально настроенным (уровень сервера) неявным часовым поясом. Пустое значение '' (пустая строка) означает, что неявный часовой пояс текущей сессии или запроса равен часовому поясу сервера.

Вы можете использовать функции timeZone() и serverTimeZone(), чтобы получить часовой пояс сессии и часовой пояс сервера.

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

  • Любое имя часового пояса из system.time_zones, например, Europe/Berlin, UTC или Zulu.

Примеры:

Назначьте часовой пояс сессии 'America/Denver' для внутреннего DateTime без явно указанного часового пояса:

осторожно

Не все функции, которые разбирают DateTime/DateTime64, учитывают session_timezone. Это может привести к тонким ошибкам. Смотрите следующий пример и объяснение.

Это происходит из-за разных конвейеров разбора:

  • toDateTime() без явно указанного часового пояса, использованная в первом запросе SELECT, учитывает настройку session_timezone и глобальный часовой пояс.
  • Во втором запросе DateTime разбирается из строки и наследует тип и часовой пояс существующей колонки d. Таким образом, настройки session_timezone и глобальный часовой пояс не учитываются.

Смотрите также

set_overflow_mode

Устанавливает, что происходит, когда количество данных превышает один из лимитов.

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

  • throw: выбросить исключение (по умолчанию).
  • break: прекратить выполнение запроса и вернуть частичный результат, как если бы исходные данные закончились.

shared_merge_tree_sync_parts_on_partition_operations

Автоматически синхронизирует набор частей данных после операций MOVE|REPLACE|ATTACH в таблицах SMT. Только для облака.

short_circuit_function_evaluation

Позволяет вычислять функции if, multiIf, and и or согласно схеме короткого замыкания. Это помогает оптимизировать выполнение сложных выражений в этих функциях и предотвращает возможные исключения (например, деление на ноль, когда это не ожидается).

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

  • enable — Включает вычисление функций с коротким замыканием для функций, которые подходят для этого (могут выбросить исключение или являются вычислительно сложными).
  • force_enable — Включает вычисление функций с коротким замыканием для всех функций.
  • disable — Отключает вычисление функций с коротким замыканием.

short_circuit_function_evaluation_for_nulls

Оптимизирует оценку функций, которые возвращают NULL, когда любой аргумент равен NULL. Когда процент значений NULL в аргументах функции превышает short_circuit_function_evaluation_for_nulls_threshold, система пропускает оценку функции построчно. Вместо этого она немедленно возвращает NULL для всех строк, избегая ненужных вычислений.

short_circuit_function_evaluation_for_nulls_threshold

Порог соотношения значений NULL для выполнения функций с Nullable аргументами только для строк с ненулевыми значениями во всех аргументах. Применяется, когда настройка short_circuit_function_evaluation_for_nulls включена. Когда соотношение строк, содержащих значения NULL, к общему количеству строк превышает этот порог, эти строки, содержащие значения NULL, не будут оцениваться.

show_table_uuid_in_table_create_query_if_not_nil

Устанавливает отображение запроса SHOW TABLE.

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

  • 0 — Запрос будет отображаться без UUID таблицы.
  • 1 — Запрос будет отображаться с UUID таблицы.

single_join_prefer_left_table

Для единственного JOIN в случае неясности идентификатора предпочитайте левую таблицу.

skip_redundant_aliases_in_udf

Избыточные псевдонимы не используются (заменяются) в пользовательских функциях, чтобы упростить их использование.

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

  • 1 — Псевдонимы пропускаются (заменяются) в UDF.
  • 0 — Псевдонимы не пропускаются (заменяются) в UDF.

Пример

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

Запрос:

Результат:

Запрос:

Результат:

skip_unavailable_shards

Включает или отключает бесшумное пропускание недоступных шардов.

Шард считается недоступным, если все его реплики недоступны. Реплика недоступна в следующих случаях:

  • ClickHouse не может подключиться к реплике по какой-либо причине.

    При подключении к реплике ClickHouse выполняет несколько попыток. Если все эти попытки не удались, реплика считается недоступной.

  • Реплика не может быть разрешена через DNS.

    Если имя хоста реплики не может быть разрешено через DNS, это может указывать на следующие ситуации:

    • У хоста реплики нет DNS-записи. Это может произойти в системах с динамическим DNS, например, Kubernetes, где узлы могут быть нерешаемыми во время простоя, и это не является ошибкой.

    • Ошибка конфигурации. Файл конфигурации ClickHouse содержит неправильное имя хоста.

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

  • 1 — пропуск включен.

    Если шард недоступен, ClickHouse возвращает результат на основе частичных данных и не сообщает об ошибках доступности узлов.

  • 0 — пропуск отключен.

    Если шард недоступен, ClickHouse выбрасывает исключение.

sleep_after_receiving_query_ms

Время для паузы после получения запроса в TCPHandler.

sleep_in_send_data_ms

Время для паузы при отправке данных в TCPHandler.

sleep_in_send_tables_status_ms

Время для паузы при отправке статуса таблиц в ответе TCPHandler.

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

Управляет, будет ли функция splitBy*() с аргументом max_substrings > 0 включать оставшуюся строку в последний элемент результирующего массива.

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

  • 0 - Оставшаяся строка не будет включена в последний элемент результирующего массива.
  • 1 - Оставшаяся строка будет включена в последний элемент результирующего массива. Это поведение функции Spark split() и метода Python 'string.split()'.

stop_refreshable_materialized_views_on_startup

Experimental feature. Learn more.

При запуске сервера предотвращает планирование обновляемых материализованных представлений, как если бы с помощью SYSTEM STOP VIEWS. Вы можете вручную запустить их с помощью SYSTEM START VIEWS или SYSTEM START VIEW <name> после этого. Также применяется к новым представлениям. Не влияет на не обновляемые материализованные представления.

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

Работает для таблиц с потоковой передачей в случае тайм-аута или когда поток генерирует max_insert_block_size строк.

Значение по умолчанию — 7500.

Чем меньше значение, тем чаще данные сбрасываются в таблицу. Установка слишком низкого значения приводит к низкой производительности.

stream_like_engine_allow_direct_select

Разрешить прямой запрос SELECT для движков Kafka, RabbitMQ, FileLog, Redis Streams и NATS. В случае наличия прикрепленных материализованных представлений запрос SELECT не разрешается, даже если эта настройка включена.

stream_like_engine_insert_queue

Когда потокоподобный движок читает из нескольких очередей, пользователю нужно выбрать одну очередь для вставки при записи. Используется в Redis Streams и NATS.

stream_poll_timeout_ms

Таймаут для опроса данных от/в потоковые хранилища.

system_events_show_zero_values

Позволяет выбирать события с нулевыми значениями из system.events.

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

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

  • 0 — Отключено.
  • 1 — Включено.

Примеры

Запрос

Результат

Запрос

Результат

table_function_remote_max_addresses

Устанавливает максимальное количество адресов, сгенерированных по шаблонам для функции remote.

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

  • Положительное целое число.

tcp_keep_alive_timeout

Время в секундах, в течение которого соединение должно оставаться неактивным, прежде чем TCP начнет отправлять пакеты keepalive.

temporary_data_in_cache_reserve_space_wait_lock_timeout_milliseconds

Время ожидания блокировки кеша для резервирования пространства для временных данных в кэше файловой системы.

temporary_files_codec

Устанавливает кодек сжатия для временных файлов, используемых в операциях сортировки и соединения на диске.

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

  • LZ4 — применяется сжатие LZ4.
  • NONE — сжатие не применяется.

throw_if_deduplication_in_dependent_materialized_views_enabled_with_async_insert

Выбрасывать исключение при запросе INSERT, когда настройка deduplicate_blocks_in_dependent_materialized_views включена вместе с async_insert. Это гарантирует корректность, так как эти функции не могут работать вместе.

throw_if_no_data_to_insert

Разрешает или запрещает пустые INSERT-запросы, включено по умолчанию (выбрасывает ошибку при пустом вставке). Применяется только к INSERT-запросам с использованием clickhouse-client или использованию интерфейса gRPC.

throw_on_error_from_cache_on_write_operations

Игнорировать ошибки от кеша при записи операций (INSERT, объединения).

throw_on_max_partitions_per_insert_block

Позволяет контролировать поведение при достижении max_partitions_per_insert_block.

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

  • true - Когда блок вставки достигает max_partitions_per_insert_block, выбрасывается исключение.
  • false - Логи предупреждают, когда достигнут max_partitions_per_insert_block.
подсказка

Это может быть полезным, если вы пытаетесь понять влияние на пользователей при изменении max_partitions_per_insert_block.

throw_on_unsupported_query_inside_transaction

Experimental feature. Learn more.

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

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

Как вычислять TOTALS, когда HAVING присутствует, а также когда max_rows_to_group_by и group_by_overflow_mode = 'any' присутствуют. Смотрите раздел "Модификатор WITH TOTALS".

trace_profile_events

Включает или отключает сбор стек-трассировок при каждом обновлении событий профилирования вместе с именем профилируемого события и значением инкремента, и отправляет их в trace_log.

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

  • 1 — Включен трейсинг событий профилирования.
  • 0 — Трейсинг событий профилирования отключен.

transfer_overflow_mode

Устанавливает, что происходит, когда количество данных превышает один из лимитов.

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

  • throw: выбросить исключение (по умолчанию).
  • break: прекратить выполнение запроса и вернуть частичный результат, как если бы исходные данные закончились.

transform_null_in

Включает равенство значений NULL для оператора IN.

По умолчанию значения NULL не могут быть сравнены, так как NULL означает не определенное значение. Таким образом, сравнение expr = NULL всегда должно возвращать false. С этой настройкой NULL = NULL возвращает true для оператора IN.

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

  • 0 — Сравнение значений NULL в операторе IN возвращает false.
  • 1 — Сравнение значений NULL в операторе IN возвращает true.

Пример

Рассмотрим таблицу null_in:

Запрос:

Результат:

Запрос:

Результат:

Смотрите также

traverse_shadow_remote_data_paths

Перебирать замороженные данные (скрытый каталог) в дополнение к фактическим данным таблицы при запросе system.remote_data_paths.

union_default_mode

Устанавливает режим для объединения результатов запросов SELECT. Настройка используется только при совместном использовании с UNION без явного указания UNION ALL или UNION DISTINCT.

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

  • 'DISTINCT' — ClickHouse выводит строки в результате объединения запросов, удаляя дубликаты.
  • 'ALL' — ClickHouse выводит все строки в результате объединения запросов, включая дубликаты.
  • '' — ClickHouse выдает исключение при использовании с UNION.

Смотрите примеры в UNION.

unknown_packet_in_send_data

Отправить неизвестный пакет вместо N-го пакета данных.

update_parallel_mode

Определяет поведение параллельных запросов обновления.

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

  • sync - запускать последовательно все запросы UPDATE.
  • auto - запускать последовательно только запросы обновления с зависимостями между столбцами, обновляемыми в одном запросе, и столбцами, используемыми в выражениях другого запроса.
  • async - не синхронизировать запросы обновления.

update_sequential_consistency

Если true, набор частей обновляется до последней версии перед выполнением обновления.

use_async_executor_for_materialized_views

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

use_cache_for_count_from_files

Включает кеширование количества строк при подсчете из файлов в табличных функциях file/s3/url/hdfs/azureBlobStorage.

Включено по умолчанию.

use_client_time_zone

Использовать часовой пояс клиента для интерпретации строковых значений DateTime, вместо использования часового пояса сервера.

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). Если отключено, это позволяет использовать большее количество потоков, даже если сервер перегружен (не рекомендуется для нормального использования и в основном нужно для тестов).

use_hedged_requests

Включает логику хеджирования запросов для удаленных запросов. Это позволяет устанавливать множество соединений с различными репликами для запроса. Новое соединение устанавливается в случае, если существующие соединения с репликами не были установлены в течение hedged_connection_timeout или если данные не были получены в течение receive_data_timeout. Запрос использует первое соединение, которое отправляет непустой пакет прогресса (или пакет данных, если allow_changing_replica_until_first_data_packet); другие соединения отменяются. Запросы с max_parallel_replicas > 1 поддерживаются.

По умолчанию включено.

По умолчанию отключено в Cloud.

use_hive_partitioning

При включении ClickHouse будет обнаруживать разбиение на разделы в стиле Hive в пути (/name=value/) в таблицах, подобных файлам File/S3/URL/HDFS/AzureBlobStorage и позволит использовать колонки-разделы как виртуальные колонки в запросе. Эти виртуальные колонки будут иметь те же имена, что и в разбиенном пути, но начинаться с _.

use_iceberg_metadata_files_cache

Если включено, функция таблицы iceberg и хранилище iceberg могут использовать кэш файлов метаданных iceberg.

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

  • 0 - Отключено
  • 1 - Включено

use_iceberg_partition_pruning

Использовать обрезку разбиений Iceberg для таблиц Iceberg.

use_index_for_in_with_subqueries

Попробуйте использовать индекс, если есть подзапрос или табличное выражение на правой стороне оператора IN.

use_index_for_in_with_subqueries_max_values

Максимальный размер множества на правой стороне оператора IN для использования табличного индекса для фильтрации. Это позволяет избежать ухудшения производительности и увеличенного использования памяти из-за подготовки дополнительных структур данных для крупных запросов. Ноль означает отсутствие лимита.

use_json_alias_for_old_object_type

При включении будет использоваться псевдоним типа JSON для создания старого типа Object('json') вместо нового типа JSON.

use_legacy_to_time

При включении позволяет использовать устаревшую функцию toTime, которая конвертирует дату с временем в определенную фиксированную дату, сохраняя время. В противном случае используется новая функция toTime, которая конвертирует различные типы данных в тип Time. Старая устаревшая функция также доступна без условий как toTimeWithFixedDate.

use_page_cache_for_disks_without_file_cache

Используйте кэш страниц пользовательского пространства для удаленных дисков, на которых кэш файловой системы отключен.

use_page_cache_with_distributed_cache

Используйте кэш страниц пользовательского пространства, когда используется распределенный кэш.

use_query_cache

Если включено, запросы SELECT могут использовать кэш запросов. Параметры enable_reads_from_query_cache и enable_writes_to_query_cache более детально контролируют, как используется кэш.

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

  • 0 - Отключено
  • 1 - Включено

use_query_condition_cache

Включить кэш условий запроса. Кэш хранит диапазоны гранул в частях данных, которые не удовлетворяют условию в операторе WHERE, и повторно использует эту информацию в качестве эпhemerального индекса для последующих запросов.

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

  • 0 - Отключено
  • 1 - Включено

use_skip_indexes

Используйте индексы пропуска данных во время выполнения запроса.

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

  • 0 — Отключено.
  • 1 — Включено.

use_skip_indexes_if_final

Контролирует, используются ли индексы пропуска при выполнении запроса с модификатором FINAL.

По умолчанию эта настройка отключена, поскольку индексы пропуска могут исключить строки (гранулы), содержащие последние данные, что может привести к неправильным результатам. Когда включено, индексы пропуска применяются даже с модификатором FINAL, что потенциально улучшает производительность, но с риском упустить недавние обновления.

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

  • 0 — Отключено.
  • 1 — Включено.

use_skip_indexes_if_final_exact_mode

Контролирует, расширяются ли гранулы, возвращаемые индексом пропуска, в новых частях, чтобы вернуть правильные результаты при выполнении запроса с модификатором FINAL.

Использование индексов пропуска может исключить строки (гранулы), содержащие последние данные, что может привести к неправильным результатам. Эта настройка может гарантировать, что правильные результаты будут возвращены путем сканирования новых частей, которые имеют пересечение с диапазонами, возвращенными индексом пропуска.

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

  • 0 — Отключено.
  • 1 — Включено.

use_structure_from_insertion_table_in_table_functions

Используйте структуру из таблицы вставки вместо вывода схемы из данных. Возможные значения: 0 - отключено, 1 - включено, 2 - авто.

use_uncompressed_cache

Включать ли кэш нежатых блоков. Принимает 0 или 1. По умолчанию 0 (отключено). Использование кэша нежатых блоков (только для таблиц в семье MergeTree) может значительно снизить задержку и увеличить пропускную способность при работе с большим количеством коротких запросов. Включите эту настройку для пользователей, которые отправляют частые короткие запросы. Обратите внимание на параметр конфигурации uncompressed_cache_size (настраивается только в файле конфигурации) – размер нежатых кэшированных блоков. По умолчанию 8 GiB. Нежатый кэш заполняется по мере необходимости, и наименее используемые данные автоматически удаляются.

Для запросов, которые читают хотя бы в каком-то большом объеме данных (миллион строк или более), нежатый кэш автоматически отключается, чтобы сэкономить место для действительно небольших запросов. Это означает, что вы можете всегда оставлять настройку 'use_uncompressed_cache' установленной на 1.

use_variant_as_common_type

Позволяет использовать тип Variant в качестве результирующего типа для функций if/multiIf/array/map, когда нет общего типа для типов аргументов.

Пример:

use_with_fill_by_sorting_prefix

Колонки, предшествующие колонкам WITH FILL в ORDER BY, формируют префикс сортировки. Строки с разными значениями в префиксе сортировки заполняются независимо.

validate_enum_literals_in_operators

Если включено, проверяются литералы перечислений в операторах, таких как IN, NOT IN, ==, !=, на соответствие типу перечисления и выбрасывается исключение, если литерал не является допустимым значением перечисления.

validate_mutation_query

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

Изменяйте эту настройку только в случае возникновения несовместимой ошибки.

validate_polygons

Включает или отключает выбрасывание исключения в функции pointInPolygon, если многоугольник самопересекается или самотангентен.

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

  • 0 — Выброс исключения отключен. pointInPolygon принимает недействительные многоугольники и возвращает возможно неправильные результаты для них.
  • 1 — Выброс исключения включен.

vector_search_filter_strategy

Beta feature. Learn more.

Если запрос векторного поиска содержит условие WHERE, эта настройка определяет, будет ли оно оцениваться сначала (предварительная фильтрация) ИЛИ будет ли сначала проверяться индекс векторного сходства (постфильтрация). Возможные значения:

  • 'auto' - Постфильтрация (точная семантика может измениться в будущем).
  • 'postfilter' - Использовать индекс векторного сходства для определения ближайших соседей, затем применить другие фильтры.
  • 'prefilter' - Сначала оценить другие фильтры, затем выполнить поиск методом грубой силы для определения соседей.

vector_search_postfilter_multiplier

Beta feature. Learn more.

Умножает извлеченные ближайшие соседи из индекса векторного сходства на это число перед выполнением постфильтрации по другим предикатам.

wait_changes_become_visible_after_commit_mode

Experimental feature. Learn more.

Ожидание, когда подтвержденные изменения станут фактически видимыми в последнем снимке.

wait_for_async_insert

Если true, ожидать обработки асинхронной вставки.

wait_for_async_insert_timeout

Тайм-аут ожидания обработки асинхронной вставки.

wait_for_window_view_fire_signal_timeout

Experimental feature. Learn more.

Тайм-аут ожидания сигнала срабатывания окна представления в обработке временных событий.

window_view_clean_interval

Experimental feature. Learn more.

Интервал очистки окна представления в секундах для освобождения устаревших данных.

window_view_heartbeat_interval

Experimental feature. Learn more.

Интервал опроса в секундах для указания того, что запрос на наблюдение активен.

workload

Имя рабочей нагрузки, используемое для доступа к ресурсам.

write_through_distributed_cache

ClickHouse Cloud only

Имеет эффект только в ClickHouse Cloud. Позволяет запись в распределенный кэш (запись в s3 также будет выполнена посредством распределенного кэша).

zstd_window_log_max

Позволяет выбрать максимальный размер окна журнала ZSTD (не будет использован для семейства MergeTree).