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

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

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

Для получения дополнительной информации о конфигурационных файлах в ClickHouse см. раздел «Configuration Files».

Другие настройки описаны в разделе «Settings». Перед изучением настроек рекомендуем прочитать раздел Configuration files и обратить внимание на использование подстановок (атрибуты incl и optional).

abort_on_logical_error

Аварийно останавливать сервер при исключениях LOGICAL_ERROR. Только для экспертов.

access_control_improvements

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

SettingDescriptionDefault
users_without_row_policies_can_read_rowsОпределяет, могут ли пользователи без разрешающих политик строк (ROW POLICY) по-прежнему читать строки с помощью запроса SELECT. Например, если есть два пользователя A и B, и политика строк (ROW POLICY) определена только для A, то если этот параметр равен true, пользователь B увидит все строки. Если этот параметр равен false, пользователь B не увидит ни одной строки.true
on_cluster_queries_require_cluster_grantОпределяет, требуют ли запросы ON CLUSTER привилегию CLUSTER.true
select_from_system_db_requires_grantОпределяет, требует ли SELECT * FROM system.<table> каких‑либо привилегий или может выполняться любым пользователем. Если установлено значение true, то этот запрос требует GRANT SELECT ON system.<table> так же, как и для несистемных таблиц. Исключения: несколько системных таблиц (tables, columns, databases и некоторые константные таблицы, такие как one, contributors) по‑прежнему доступны всем; а если выдана привилегия SHOW (например, SHOW USERS), то соответствующая системная таблица (то есть system.users) будет доступна.true
select_from_information_schema_requires_grantОпределяет, требует ли SELECT * FROM information_schema.<table> каких‑либо привилегий или может выполняться любым пользователем. Если установлено значение true, то этот запрос требует GRANT SELECT ON information_schema.<table> так же, как и для обычных таблиц.true
settings_constraints_replace_previousОпределяет, будет ли ограничение в профиле настроек для некоторой настройки отменять действие предыдущего ограничения (определённого в других профилях) для этой настройки, включая поля, которые не заданы новым ограничением. Также включает тип ограничения changeable_in_readonly.true
table_engines_require_grantОпределяет, требуется ли привилегия для создания таблицы с определённым движком таблицы.false
role_cache_expiration_time_secondsЗадаёт количество секунд с момента последнего обращения, в течение которых роль хранится в кэше ролей (Role Cache).600

Пример:

<access_control_improvements>
    <users_without_row_policies_can_read_rows>true</users_without_row_policies_can_read_rows>
    <on_cluster_queries_require_cluster_grant>true</on_cluster_queries_require_cluster_grant>
    <select_from_system_db_requires_grant>true</select_from_system_db_requires_grant>
    <select_from_information_schema_requires_grant>true</select_from_information_schema_requires_grant>
    <settings_constraints_replace_previous>true</settings_constraints_replace_previous>
    <table_engines_require_grant>false</table_engines_require_grant>
    <role_cache_expiration_time_seconds>600</role_cache_expiration_time_seconds>
</access_control_improvements>

access_control_path

Путь к каталогу, в котором сервер ClickHouse хранит конфигурации пользователей и ролей, созданные SQL-командами.

См. также

aggregate_function_group_array_action_when_limit_is_reached

Действие, выполняемое при превышении максимального размера элемента массива в groupArray: сгенерировать исключение (throw) или отбросить (discard) лишние значения

aggregate_function_group_array_max_element_size

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

allow_feature_tier

Определяет, может ли пользователь изменять настройки, связанные с различными уровнями функциональности (feature tiers).

  • 0 - Разрешены изменения любых настроек (experimental, beta, production).
  • 1 - Разрешены только изменения настроек уровней beta и production. Изменения настроек уровня experimental отклоняются.
  • 2 - Разрешены только изменения настроек уровня production. Изменения настроек уровней experimental или beta отклоняются.

Это эквивалентно заданию ограничения readonly на все функции EXPERIMENTAL / BETA.

Примечание

Значение 0 означает, что можно изменять все настройки.

allow_impersonate_user

Включает или отключает использование функции IMPERSONATE (EXECUTE AS target_user).

allow_implicit_no_password

Запрещает создавать пользователя без пароля, если только явно не указано 'IDENTIFIED WITH no_password'.

<allow_implicit_no_password>1</allow_implicit_no_password>

allow_no_password

Определяет, разрешено ли использование небезопасного типа пароля no_password.

<allow_no_password>1</allow_no_password>

allow_plaintext_password

Определяет, разрешено ли использование небезопасных типов паролей в открытом виде (plaintext).

<allow_plaintext_password>1</allow_plaintext_password>

allow_use_jemalloc_memory

Разрешает использование памяти jemalloc.

allowed_disks_for_table_engines

Список дисков, которые могут использоваться с Iceberg

async_insert_queue_flush_on_shutdown

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

async_insert_threads

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

async_load_databases

Асинхронная загрузка баз данных и таблиц.

  • Если true, все несистемные базы данных с движками Ordinary, Atomic и Replicated будут загружаться асинхронно после запуска сервера ClickHouse. См. таблицу system.asynchronous_loader, а также настройки сервера tables_loader_background_pool_size и tables_loader_foreground_pool_size. Любой запрос, который попытается обратиться к таблице, которая ещё не загружена, будет ждать запуска именно этой таблицы. Если задание загрузки завершится неуспешно, запрос пробросит ошибку (вместо остановки всего сервера в случае async_load_databases = false). Таблица, которую ожидает хотя бы один запрос, будет загружаться с более высоким приоритетом. DDL-запросы к базе данных будут ждать запуска именно этой базы данных. Также рассмотрите установку лимита max_waiting_queries на общее количество ожидающих запросов.
  • Если false, все базы данных загружаются при старте сервера.

Пример

<async_load_databases>true</async_load_databases>

async_load_system_database

Асинхронная загрузка системных таблиц. Полезно, если в базе данных system много таблиц журналов и частей. Не зависит от настройки async_load_databases.

  • Если установлено значение true, все системные базы данных с движками Ordinary, Atomic и Replicated будут загружаться асинхронно после запуска сервера ClickHouse. См. таблицу system.asynchronous_loader, а также серверные настройки tables_loader_background_pool_size и tables_loader_foreground_pool_size. Любой запрос, который попытается обратиться к ещё не загруженной системной таблице, будет ожидать запуска именно этой таблицы. Таблица, которую ожидает хотя бы один запрос, будет загружаться с более высоким приоритетом. Также рассмотрите возможность настройки параметра max_waiting_queries для ограничения общего числа ожидающих запросов.
  • Если установлено значение false, системная база данных загружается до запуска сервера.

Пример

<async_load_system_database>true</async_load_system_database>

asynchronous_heavy_metrics_update_period_s

Интервал (в секундах) обновления тяжёлых асинхронных метрик.

asynchronous_insert_log

Настройки системной таблицы asynchronous_insert_log для ведения журнала асинхронных вставок.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Пример

<clickhouse>
    <asynchronous_insert_log>
        <database>system</database>
        <table>asynchronous_insert_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <partition_by>toYYYYMM(event_date)</partition_by>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
        <!-- <engine>Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day</engine> -->
    </asynchronous_insert_log>
</clickhouse>

asynchronous_metric_log

По умолчанию включено в развертываниях ClickHouse Cloud.

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

Включение

Чтобы вручную включить сбор истории журнала асинхронных метрик system.asynchronous_metric_log, создайте файл /etc/clickhouse-server/config.d/asynchronous_metric_log.xml со следующим содержимым:

<clickhouse>
     <asynchronous_metric_log>
        <database>system</database>
        <table>asynchronous_metric_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <collect_interval_milliseconds>1000</collect_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
    </asynchronous_metric_log>
</clickhouse>

Отключение

Чтобы отключить настройку asynchronous_metric_log, создайте файл /etc/clickhouse-server/config.d/disable_asynchronous_metric_log.xml со следующим содержимым:

<clickhouse><asynchronous_metric_log remove="1" /></clickhouse>

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

asynchronous_metrics_enable_heavy_metrics

Включает вычисление ресурсоёмких асинхронных метрик.

asynchronous_metrics_keeper_metrics_only

Ограничивает вычисление асинхронных метрик только метриками, относящимися к Keeper.

asynchronous_metrics_update_period_s

Период обновления асинхронных метрик в секундах.

auth_use_forwarded_address

Использовать исходный IP-адрес клиента для аутентификации при подключении через прокси.

Примечание

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

background_buffer_flush_schedule_pool_size

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

background_common_pool_size

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

background_distributed_schedule_pool_size

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

background_fetches_pool_size

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

background_merges_mutations_concurrency_ratio

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

Например, если коэффициент равен 2 и background_pool_size установлен в значение 16, то ClickHouse может выполнять 32 фоновых слияния одновременно. Это возможно, потому что фоновые операции могут быть приостановлены и отложены. Это необходимо, чтобы дать небольшим слияниям более высокий приоритет на выполнение.

Примечание

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

Как и параметр background_pool_size, настройка background_merges_mutations_concurrency_ratio может быть задана в профиле default для обеспечения обратной совместимости.

background_merges_mutations_scheduling_policy

Политика планирования фоновых слияний и мутаций. Возможные значения: round_robin и shortest_task_first.

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

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

  • round_robin — Каждое одновременно выполняющееся слияние и мутация выполняются в порядке round-robin, чтобы избежать голодания по ресурсам. Меньшие слияния завершаются быстрее, чем большие, просто потому что у них меньше блоков для слияния.
  • shortest_task_first — Всегда выполнять меньшее слияние или мутацию. Слияниям и мутациям назначаются приоритеты на основе их результирующего размера. Слияния с меньшим размером строго предпочитаются большим. Эта политика обеспечивает максимально быстрое слияние маленьких частей, но может привести к бесконечному голоданию больших слияний в партициях, сильно перегруженных INSERT-ами.

background_message_broker_schedule_pool_size

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

background_move_pool_size

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

background_pool_size

Задаёт количество потоков, выполняющих фоновые слияния и мутации для таблиц с движками MergeTree.

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

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

Перед изменением этого параметра также ознакомьтесь со связанными настройками MergeTree, такими как:

Пример

<background_pool_size>16</background_pool_size>

background_schedule_pool_log

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

<background_schedule_pool_log>
    <database>system</database>
    <table>background_schedule_pool_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
    <!-- Only tasks longer than duration_threshold_milliseconds will be logged. Zero means log everything -->
    <duration_threshold_milliseconds>0</duration_threshold_milliseconds>
</background_schedule_pool_log>

background_schedule_pool_max_parallel_tasks_per_type_ratio

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

background_schedule_pool_size

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

backup_log

Настройки системной таблицы backup_log, используемой для журналирования операций BACKUP и RESTORE.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Пример

<clickhouse>
    <backup_log>
        <database>system</database>
        <table>backup_log</table>
        <flush_interval_milliseconds>1000</flush_interval_milliseconds>
        <partition_by>toYYYYMM(event_date)</partition_by>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
        <!-- <engine>Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day</engine> -->
    </backup_log>
</clickhouse>

backup_threads

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

backups

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

Следующие параметры могут быть заданы в подтегах:

SettingTypeDescriptionDefault
allow_concurrent_backupsBoolОпределяет, могут ли несколько операций резервного копирования выполняться одновременно на одном и том же хосте.true
allow_concurrent_restoresBoolОпределяет, могут ли несколько операций восстановления выполняться одновременно на одном и том же хосте.true
allowed_diskStringДиск, на который выполняется резервное копирование при использовании File(). Этот параметр должен быть установлен для использования File.``
allowed_pathStringПуть, по которому выполняется резервное копирование при использовании File(). Этот параметр должен быть установлен для использования File.``
attempts_to_collect_metadata_before_sleepUIntКоличество попыток собрать метаданные перед переходом в режим ожидания в случае несогласованности после сравнения собранных метаданных.2
collect_metadata_timeoutUInt64Таймаут в миллисекундах для сбора метаданных во время резервного копирования.600000
compare_collected_metadataBoolЕсли true, сравнивает собранные метаданные с существующими метаданными, чтобы убедиться, что они не изменяются во время резервного копирования.true
create_table_timeoutUInt64Таймаут в миллисекундах для создания таблиц во время операции восстановления.300000
max_attempts_after_bad_versionUInt64Максимальное количество попыток повторного выполнения после возникновения ошибки неверной версии во время координированного резервного копирования/восстановления.3
max_sleep_before_next_attempt_to_collect_metadataUInt64Максимальное время ожидания в миллисекундах перед следующей попыткой собрать метаданные.100
min_sleep_before_next_attempt_to_collect_metadataUInt64Минимальное время ожидания в миллисекундах перед следующей попыткой собрать метаданные.5000
remove_backup_files_after_failureBoolЕсли команда BACKUP завершится с ошибкой, ClickHouse попытается удалить файлы, уже скопированные в резервную копию до сбоя, в противном случае скопированные файлы будут оставлены без изменений.true
sync_period_msUInt64Период синхронизации в миллисекундах для координированного резервного копирования/восстановления.5000
test_inject_sleepBoolТестовая задержка (sleep).false
test_randomize_orderBoolЕсли true, случайным образом меняет порядок определённых операций в целях тестирования.false
zookeeper_pathStringПуть в ZooKeeper, где хранятся метаданные резервного копирования и восстановления при использовании выражения ON CLUSTER./clickhouse/backups

По умолчанию этот параметр настроен следующим образом:

<backups>
    ....
</backups>

backups_io_thread_pool_queue_size

Максимальное количество задач, которые могут ожидать выполнения в пуле потоков ввода-вывода резервного копирования (Backups IO Thread pool). Рекомендуется оставлять эту очередь неограниченной из-за текущей логики резервного копирования в S3.

Примечание

Значение 0 (по умолчанию) означает, что очередь не ограничена.

bcrypt_workfactor

Коэффициент сложности для типа аутентификации bcrypt_password, который использует алгоритм Bcrypt. Этот коэффициент определяет объём вычислений и время, необходимые для вычисления хеша и проверки пароля.

<bcrypt_workfactor>12</bcrypt_workfactor>
Примечание

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

blob_storage_log

Параметры системной таблицы blob_storage_log.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Пример:

<blob_storage_log>
    <database>system</database
    <table>blob_storage_log</table
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds
    <ttl>event_date + INTERVAL 30 DAY</ttl>
</blob_storage_log>

builtin_dictionaries_reload_interval

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

ClickHouse перезагружает встроенные словари каждые x секунд. Это позволяет редактировать словари «на лету» без перезапуска сервера.

Пример

<builtin_dictionaries_reload_interval>3600</builtin_dictionaries_reload_interval>

cache_size_to_ram_max_ratio

Задает максимальное соотношение размера кеша к объему оперативной памяти (RAM). Позволяет уменьшить размер кеша на системах с небольшим объемом памяти.

cannot_allocate_thread_fault_injection_probability

Для тестирования.

cgroups_memory_usage_observer_wait_time

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

Чтобы отключить наблюдатель cgroups, установите это значение в 0.

compiled_expression_cache_elements_size

Устанавливает размер кэша (в элементах) для скомпилированных выражений.

compiled_expression_cache_size

Задает размер кэша (в байтах) для скомпилированных выражений.

compression

Настройки сжатия данных для таблиц с движком MergeTree.

Примечание

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

Пример конфигурации:

<compression>
    <case>
      <min_part_size>...</min_part_size>
      <min_part_size_ratio>...</min_part_size_ratio>
      <method>...</method>
      <level>...</level>
    </case>
    ...
</compression>

Поля <case>:

  • min_part_size – Минимальный размер части данных.
  • min_part_size_ratio – Отношение размера части данных к размеру таблицы.
  • method – Метод сжатия. Допустимые значения: lz4, lz4hc, zstd,deflate_qpl.
  • level – Уровень сжатия. См. Codecs.
Примечание

Вы можете настроить несколько секций <case>.

Действия при выполнении условий:

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

Если ни одно условие для части данных не выполнено, ClickHouse использует сжатие lz4.

Пример

<compression incl="clickhouse_compression">
    <case>
        <min_part_size>10000000000</min_part_size>
        <min_part_size_ratio>0.01</min_part_size_ratio>
        <method>zstd</method>
        <level>1</level>
    </case>
</compression>

concurrent_threads_scheduler

Политика планирования слотов CPU, определённых concurrent_threads_soft_limit_num и concurrent_threads_soft_limit_ratio_to_cores. Алгоритм, определяющий, как ограниченное количество слотов CPU распределяется между конкурирующими запросами. Планировщик можно изменить во время работы без перезапуска сервера.

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

  • round_robin — Каждый запрос с настройкой use_concurrency_control = 1 выделяет до max_threads слотов CPU. Один слот на поток. При конкуренции слоты CPU выдаются запросам по круговому принципу (round-robin). Обратите внимание, что первый слот выделяется безусловно, что может приводить к несправедливости и увеличению задержки запросов с большим значением max_threads при наличии большого количества запросов с max_threads = 1.
  • fair_round_robin — Каждый запрос с настройкой use_concurrency_control = 1 выделяет до max_threads - 1 слотов CPU. Вариант round_robin, не требующий слот CPU для первого потока каждого запроса. Таким образом, запросы с max_threads = 1 не требуют ни одного слота и не могут несправедливо занять все слоты. Слоты не выделяются безусловно.

concurrent_threads_soft_limit_num

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

Примечание

Значение 0 (по умолчанию) означает отсутствие ограничения.

concurrent_threads_soft_limit_ratio_to_cores

То же, что и concurrent_threads_soft_limit_num, но задаётся как отношение к числу ядер.

файл конфигурации

Путь к конфигурационному файлу сервера.

config_reload_interval_ms

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

core_dump

Устанавливает мягкий лимит на размер файла дампа памяти (core dump).

Примечание

Жёсткий лимит задаётся средствами операционной системы

Пример

<core_dump>
     <size_limit>1073741824</size_limit>
</core_dump>

cpu_slot_preemption

Определяет, как осуществляется планирование нагрузки для ресурсов CPU (MASTER THREAD и WORKER THREAD).

  • Если true (рекомендуется), учет ведется на основе фактически потребленного CPU-времени. Конкурирующим нагрузкам выделяется справедливая доля CPU-времени. Слоты выделяются на ограниченный период и повторно запрашиваются после его истечения. Запрос слота может блокировать выполнение потока в случае перегрузки по ресурсам CPU, т.е. может происходить вытеснение (preemption). Это обеспечивает справедливое распределение CPU-времени.
  • Если false (значение по умолчанию), учет ведется на основе количества выделенных CPU-слотов. Конкурирующим нагрузкам выделяется справедливое количество CPU-слотов. Слот выделяется при запуске потока, удерживается непрерывно и освобождается при завершении выполнения потока. Количество потоков, выделенных для выполнения запроса, может только увеличиваться от 1 до max_threads и никогда не уменьшаться. Это более благоприятно для долго работающих запросов и может приводить к голоданию коротких запросов по CPU.

Пример

<cpu_slot_preemption>true</cpu_slot_preemption>

См. также

cpu_slot_preemption_timeout_ms

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

Пример

<cpu_slot_preemption_timeout_ms>1000</cpu_slot_preemption_timeout_ms>

См. также

cpu_slot_quantum_ns

Определяет, сколько наносекунд CPU поток может потребить после получения слота CPU и до того, как ему необходимо запросить следующий слот CPU. Имеет смысл только в случае, если cpu_slot_preemption включён и ресурс CPU определён для MASTER THREAD или WORKER THREAD.

Пример

<cpu_slot_quantum_ns>10000000</cpu_slot_quantum_ns>

См. также

crash_log

Настройки для работы системной таблицы crash_log.

Следующие настройки можно задать с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если заданы partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree.
partition_byПользовательский ключ партиционирования для системной таблицы.Если engine указан для системной таблицы, параметр partition_by должен быть указан непосредственно внутри 'engine'.
ttlЗадает для таблицы TTL.Если engine указан для системной таблицы, параметр ttl должен быть указан непосредственно внутри 'engine'.
order_byПользовательский ключ сортировки для системной таблицы. Нельзя использовать, если задан engine.Если engine указан для системной таблицы, параметр order_by должен быть указан непосредственно внутри 'engine'.
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если engine указан для системной таблицы, параметр storage_policy должен быть указан непосредственно внутри 'engine'.
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если engine указан для системной таблицы, параметр settings должен быть указан непосредственно внутри 'engine'.
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер журнала в строках. Когда количество несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1024
reserved_size_rowsПредварительно выделенный объем памяти в строках для логов.1024
buffer_size_rows_flush_thresholdПорог по количеству строк. При достижении порога в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, нужно ли сбрасывать логи на диск в случае аварийного завершения работы.false

Конфигурационный файл сервера по умолчанию config.xml содержит следующий раздел настроек:

<crash_log>
    <database>system</database>
    <table>crash_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1024</max_size_rows>
    <reserved_size_rows>1024</reserved_size_rows>
    <buffer_size_rows_flush_threshold>512</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</crash_log>

custom_cached_disks_base_directory

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

Примечание

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

Пример:

<custom_cached_disks_base_directory>/var/lib/clickhouse/caches/</custom_cached_disks_base_directory>

custom_settings_prefixes

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

Пример

<custom_settings_prefixes>custom_</custom_settings_prefixes>

См. также

database_atomic_delay_before_drop_table_sec

Задержка, в течение которой удалённую таблицу можно восстановить с помощью команды UNDROP. Если команда DROP TABLE выполнялась с модификатором SYNC, эта настройка игнорируется. Значение по умолчанию для этой настройки — 480 (8 минут).

database_catalog_drop_error_cooldown_sec

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

database_catalog_drop_table_concurrency

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

database_catalog_unused_dir_cleanup_period_sec

Параметр задачи, которая удаляет ненужные данные из директории store/. Задает периодичность выполнения этой задачи.

Примечание

Значение 0 означает «никогда». Значение по умолчанию соответствует одним суткам.

database_catalog_unused_dir_hide_timeout_sec

Параметр задачи, которая удаляет «мусор» из директории store/. Если какой-либо подкаталог не используется clickhouse-server и этот каталог не изменялся в течение последних database_catalog_unused_dir_hide_timeout_sec секунд, задача «спрячет» этот каталог, удалив все права доступа к нему. Это также применяется к каталогам, которые clickhouse-server не ожидает увидеть внутри store/.

Примечание

Значение 0 означает «немедленно».

database_catalog_unused_dir_rm_timeout_sec

Параметр задачи, которая очищает мусор из каталога store/. Если какой-либо подкаталог не используется сервером ClickHouse и ранее был «спрятан» (см. database_catalog_unused_dir_hide_timeout_sec), и этот каталог не изменялся в течение последних database_catalog_unused_dir_rm_timeout_sec секунд, задача удалит этот каталог. Это также относится к каталогам, которые сервер ClickHouse не ожидает увидеть внутри store/.

Примечание

Значение 0 означает «никогда». Значение по умолчанию соответствует 30 дням.

database_replicated_allow_detach_permanently

Разрешает постоянное отсоединение таблиц в базах данных Replicated

database_replicated_drop_broken_tables

Удалять неожиданные таблицы из баз данных Replicated вместо перемещения их в отдельную локальную базу данных

dead_letter_queue

Параметр для системной таблицы 'dead_letter_queue'.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Настройки по умолчанию:

<dead_letter_queue>
    <database>system</database>
    <table>dead_letter</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
</dead_letter_queue>

default_database

Имя базы данных по умолчанию.

default_password_type

Устанавливает тип пароля, который будет использоваться по умолчанию в запросах вида CREATE USER u IDENTIFIED BY 'p'.

Допустимые значения:

  • plaintext_password
  • sha256_password
  • double_sha1_password
  • bcrypt_password
<default_password_type>sha256_password</default_password_type>

default_profile

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

Пример

<default_profile>default</default_profile>

default_replica_name

Имя реплики в ZooKeeper.

Пример

<default_replica_name>{replica}</default_replica_name>

default_replica_path

Путь к таблице в ZooKeeper.

Пример

<default_replica_path>/clickhouse/tables/{uuid}/{shard}</default_replica_path>

default_session_timeout

Таймаут сеанса по умолчанию в секундах.

<default_session_timeout>60</default_session_timeout>

dictionaries_config

Путь к конфигурационному файлу словарей.

Путь:

  • Укажите абсолютный путь или путь относительно файла конфигурации сервера.
  • Путь может содержать подстановочные символы * и ?.

См. также:

Пример

<dictionaries_config>*_dictionary.xml</dictionaries_config>

dictionaries_lazy_load

Ленивая загрузка словарей.

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

При запуске сервер будет ждать полной загрузки всех словарей, прежде чем принимать какие-либо подключения (исключение: если параметр wait_dictionaries_load_at_startup имеет значение false).

Пример

<dictionaries_lazy_load>true</dictionaries_lazy_load>

dictionaries_lib_path

Каталог с библиотеками словарей.

Пример

<dictionaries_lib_path>/var/lib/clickhouse/dictionaries_lib/</dictionaries_lib_path>

dictionary_background_reconnect_interval

Интервал в миллисекундах между попытками повторного подключения словарей MySQL и Postgres с включённым background_reconnect после сбоя.

disable_insertion_and_mutation

Отключает запросы INSERT/ALTER/DELETE. Этот параметр включают, если требуются узлы только для чтения, чтобы операции вставки и модификации не влияли на производительность чтения. Вставки во внешние движки (S3, DataLake, MySQL, PostgreSQL, Kafka и т. д.) разрешены независимо от этого параметра.

disable_internal_dns_cache

Отключает внутренний DNS-кэш. Рекомендуется при эксплуатации ClickHouse в средах с часто меняющейся инфраструктурой, например Kubernetes.

disable_tunneling_for_https_requests_over_http_proxy

По умолчанию для выполнения HTTPS-запросов через HTTP-прокси используется туннелирование (т.е. HTTP CONNECT). Этот параметр можно использовать для его отключения.

no_proxy

По умолчанию все запросы проходят через прокси. Чтобы отключить его для отдельных хостов, необходимо установить переменную no_proxy. Её можно задать внутри секции <proxy> для list и remote resolvers, а также в виде переменной окружения для environment resolver. Поддерживаются IP-адреса, домены, поддомены и подстановочный символ '*' для полного обхода прокси. Ведущие точки отбрасываются так же, как это делает curl.

Пример

Ниже приведена конфигурация, которая обходит прокси для запросов к clickhouse.cloud и ко всем её поддоменам (например, auth.clickhouse.cloud). То же самое относится к GitLab, даже несмотря на ведущую точку. И gitlab.com, и about.gitlab.com будут обходить прокси.

<proxy>
    <no_proxy>clickhouse.cloud,.gitlab.com</no_proxy>
    <http>
        <uri>http://proxy1</uri>
        <uri>http://proxy2:3128</uri>
    </http>
    <https>
        <uri>http://proxy1:3128</uri>
    </https>
</proxy>

disk_connections_hard_limit

При попытке создания, когда этот лимит достигнут, выбрасывается исключение. Установите 0, чтобы отключить жесткое ограничение. Лимит применяется к подключениям к дискам.

disk_connections_soft_limit

Соединения сверх этого лимита имеют значительно меньший срок жизни. Лимит применяется к подключениям к дискам.

disk_connections_store_limit

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

disk_connections_warn_limit

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

display_secrets_in_show_and_select

Включает или отключает отображение секретных значений в запросах SHOW и SELECT для таблиц, баз данных, табличных функций и словарей.

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

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

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

distributed_cache_apply_throttling_settings_from_client

Определяет, следует ли серверу кэша применять настройки ограничения (throttling), полученные от клиента.

distributed_cache_keep_up_free_connections_ratio

Мягкое ограничение на количество активных подключений, которые распределённый кэш подключений будет пытаться поддерживать свободными. Когда число свободных подключений опускается ниже distributed_cache_keep_up_free_connections_ratio * max_connections, подключения с самой давней активностью будут закрываться до тех пор, пока число не превысит этот порог.

distributed_ddl

Управляет выполнением распределённых DDL-запросов (CREATE, DROP, ALTER, RENAME) на кластере. Работает только при включённом ZooKeeper.

Настраиваемые параметры внутри <distributed_ddl> включают:

SettingDescriptionDefault Value
pathпуть в Keeper для task_queue с DDL-запросами
profileпрофиль, используемый для выполнения DDL-запросов
pool_sizeсколько запросов ON CLUSTER может выполняться одновременно
max_tasks_in_queueмаксимальное количество задач, которое может находиться в очереди1,000
task_max_lifetimeудалить узел, если его «возраст» превышает это значение7 * 24 * 60 * 60 (неделя в секундах)
cleanup_delay_periodочистка запускается после получения события о новом узле, если предыдущая очистка выполнялась не менее чем cleanup_delay_period секунд назад60 секунд

Пример

<distributed_ddl>
    <!-- Path in ZooKeeper to queue with DDL queries -->
    <path>/clickhouse/task_queue/ddl</path>

    <!-- Settings from this profile will be used to execute DDL queries -->
    <profile>default</profile>

    <!-- Controls how much ON CLUSTER queries can be run simultaneously. -->
    <pool_size>1</pool_size>

    <!--
         Cleanup settings (active tasks will not be removed)
    -->

    <!-- Controls task TTL (default 1 week) -->
    <task_max_lifetime>604800</task_max_lifetime>

    <!-- Controls how often cleanup should be performed (in seconds) -->
    <cleanup_delay_period>60</cleanup_delay_period>

    <!-- Controls how many tasks could be in the queue -->
    <max_tasks_in_queue>1000</max_tasks_in_queue>
</distributed_ddl>

distributed_ddl.cleanup_delay_period

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

distributed_ddl.max_tasks_in_queue

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

distributed_ddl.path

путь в Keeper к <task_queue> для DDL-запросов

distributed_ddl.pool_size

Сколько запросов <ON CLUSTER> может выполняться одновременно

distributed_ddl.profile

профиль, используемый для выполнения DDL-запросов

distributed_ddl.replicas_path

путь в Keeper к <task_queue> для реплик

distributed_ddl.task_max_lifetime

Удаляет узел, если его возраст превышает это значение.

distributed_ddl_use_initial_user_and_roles

Если параметр включён, запросы ON CLUSTER будут сохранять и использовать пользователя и роли инициатора для выполнения на удалённых сегментах. Это обеспечивает последовательный контроль доступа во всём кластере, но требует, чтобы этот пользователь и роли существовали на всех узлах.

dns_allow_resolve_names_to_ipv4

Разрешает преобразовывать имена в IPv4-адреса.

dns_allow_resolve_names_to_ipv6

Разрешает преобразование имён в IPv6-адреса.

dns_cache_max_entries

Максимальное число записей во внутреннем DNS-кэше.

dns_cache_update_period

Период обновления внутреннего DNS-кэша в секундах.

dns_max_consecutive_failures

Прекращает дальнейшие попытки обновить DNS-кэш для имени хоста после указанного количества последовательных сбоев. Информация при этом остаётся в DNS-кэше. Ноль означает отсутствие ограничения.

См. также

drop_distributed_cache_pool_size

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

drop_distributed_cache_queue_size

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

enable_azure_sdk_logging

Включает логирование Azure SDK

encryption

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

Ключи могут задаваться в шестнадцатеричном виде или в виде строки длиной 16 байт.

Пример

Загрузка из конфигурационного файла:

<encryption_codecs>
    <aes_128_gcm_siv>
        <key>1234567812345678</key>
    </aes_128_gcm_siv>
</encryption_codecs>
Примечание

Хранить ключи в файле конфигурации не рекомендуется. Это небезопасно. Вы можете переместить ключи в отдельный файл конфигурации на защищённом диске и поместить символическую ссылку на этот файл конфигурации в папку config.d/.

Загрузка из конфигурации, когда ключ задан в шестнадцатеричном формате:

<encryption_codecs>
    <aes_128_gcm_siv>
        <key_hex>00112233445566778899aabbccddeeff</key_hex>
    </aes_128_gcm_siv>
</encryption_codecs>

Загрузка ключа из переменной окружения:

<encryption_codecs>
    <aes_128_gcm_siv>
        <key_hex from_env="ENVVAR"></key_hex>
    </aes_128_gcm_siv>
</encryption_codecs>

Здесь current_key_id задаёт текущий ключ для шифрования, а все указанные ключи могут использоваться для расшифровки.

Каждый из этих методов может использоваться для нескольких ключей:

<encryption_codecs>
    <aes_128_gcm_siv>
        <key_hex id="0">00112233445566778899aabbccddeeff</key_hex>
        <key_hex id="1" from_env="ENVVAR"></key_hex>
        <current_key_id>1</current_key_id>
    </aes_128_gcm_siv>
</encryption_codecs>

Здесь параметр current_key_id указывает текущий ключ шифрования.

Также можно задать nonce длиной 12 байт (по умолчанию при шифровании и расшифровке используется nonce, состоящий из нулевых байтов):

<encryption_codecs>
    <aes_128_gcm_siv>
        <nonce>012345678910</nonce>
    </aes_128_gcm_siv>
</encryption_codecs>

Или его можно задать в шестнадцатеричном виде:

<encryption_codecs>
    <aes_128_gcm_siv>
        <nonce_hex>abcdefabcdef</nonce_hex>
    </aes_128_gcm_siv>
</encryption_codecs>
Примечание

Все вышеперечисленное также применимо к aes_256_gcm_siv (но длина ключа должна составлять 32 байта).

error_log

По умолчанию он отключён.

Включение

Чтобы вручную включить сбор истории ошибок system.error_log, создайте /etc/clickhouse-server/config.d/error_log.xml со следующим содержимым:

<clickhouse>
    <error_log>
        <database>system</database>
        <table>error_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <collect_interval_milliseconds>1000</collect_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
    </error_log>
</clickhouse>

Отключение

Чтобы отключить параметр error_log, необходимо создать файл /etc/clickhouse-server/config.d/disable_error_log.xml со следующим содержимым:

<clickhouse>
    <error_log remove="1" />
</clickhouse>

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

filesystem_caches_path

Этот параметр указывает путь к кэшу.

Пример

<filesystem_caches_path>/var/lib/clickhouse/filesystem_caches/</filesystem_caches_path>

format_parsing_thread_pool_queue_size

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

Примечание

Значение 0 означает отсутствие ограничения.

format_schema_path

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

Пример

<!-- Directory containing schema files for various input formats. -->
<format_schema_path>/var/lib/clickhouse/format_schemas/</format_schema_path>

format_schema_path

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

Пример

<!-- Directory containing schema files for various input formats. -->
<format_schema_path>format_schemas/</format_schema_path>

global_profiler_cpu_time_period_ns

Период таймера тактов CPU для глобального профайлера (в наносекундах). Установите значение 0, чтобы отключить глобальный профайлер тактов CPU. Рекомендуемое значение — не менее 10000000 (100 раз в секунду) для одиночных запросов или 1000000000 (один раз в секунду) для профилирования по всему кластеру.

global_profiler_real_time_period_ns

Период таймера глобального профилировщика по реальному времени (в наносекундах). Установите значение 0, чтобы отключить глобальный профилировщик по реальному времени. Рекомендуемое значение — не менее 10000000 (100 раз в секунду) для одиночных запросов или 1000000000 (один раз в секунду) для профилирования на уровне всего кластера.

google_protos_path

Задает каталог с proto-файлами для типов Protobuf.

Пример

<google_protos_path>/usr/share/clickhouse/protos/</google_protos_path>

google_protos_path

Определяет путь к каталогу, содержащему proto-файлы для типов Protobuf.

Пример:

<google_protos_path>/usr/share/clickhouse/protos/</google_protos_path>

graphite

Отправка данных в Graphite.

Настройки:

  • host – сервер Graphite.
  • port – порт на сервере Graphite.
  • interval – интервал отправки, в секундах.
  • timeout – время ожидания при отправке данных, в секундах.
  • root_path – префикс для ключей.
  • metrics – отправка данных из таблицы system.metrics.
  • events – отправка значений дельт, накопленных за период времени, из таблицы system.events.
  • events_cumulative – отправка накопительных данных из таблицы system.events.
  • asynchronous_metrics – отправка данных из таблицы system.asynchronous_metrics.

Вы можете настроить несколько блоков <graphite>. Например, это можно использовать для отправки различных данных с разными интервалами.

Пример

<graphite>
    <host>localhost</host>
    <port>42000</port>
    <timeout>0.1</timeout>
    <interval>60</interval>
    <root_path>one_min</root_path>
    <metrics>true</metrics>
    <events>true</events>
    <events_cumulative>false</events_cumulative>
    <asynchronous_metrics>true</asynchronous_metrics>
</graphite>

graphite_rollup

Настройки прореживания данных Graphite.

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

Пример

<graphite_rollup_example>
    <default>
        <function>max</function>
        <retention>
            <age>0</age>
            <precision>60</precision>
        </retention>
        <retention>
            <age>3600</age>
            <precision>300</precision>
        </retention>
        <retention>
            <age>86400</age>
            <precision>3600</precision>
        </retention>
    </default>
</graphite_rollup_example>

hdfs.libhdfs3_conf

Задает для libhdfs3 корректное местоположение его конфигурации.

hsts_max_age

Срок действия HSTS в секундах.

Примечание

Значение 0 означает, что ClickHouse отключает HSTS. Если вы зададите положительное число, HSTS будет включён, а max-age будет равен указанному вами числу.

Пример

<hsts_max_age>600000</hsts_max_age>

http_connections_hard_limit

При попытке создать соединение, когда этот предел достигнут, выбрасывается исключение. Установите 0, чтобы отключить жёсткое ограничение. Ограничение применяется к HTTP-соединениям, которые не принадлежат ни к какому диску или хранилищу.

http_connections_soft_limit

Соединения, число которых превышает этот лимит, имеют значительно более короткое время жизни. Лимит применяется к HTTP‑соединениям, которые не привязаны ни к какому диску или хранилищу.

http_connections_store_limit

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

http_connections_warn_limit

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

http_handlers

Позволяет использовать пользовательские HTTP‑обработчики. Чтобы добавить новый http‑обработчик, просто добавьте новый <rule>. Правила проверяются сверху вниз в указанном порядке, и первый совпавший запустит обработчик.

Следующие настройки могут быть заданы с помощью подтегов:

Sub-tagsDefinition
urlДля сопоставления URL запроса можно использовать префикс 'regex:' для сопоставления по регулярному выражению (необязательно)
methodsДля сопоставления HTTP‑методов запроса можно использовать запятые для разделения нескольких значений методов (необязательно)
headersДля сопоставления заголовков запроса сопоставьте каждый дочерний элемент (имя дочернего элемента — имя заголовка); можно использовать префикс 'regex:' для сопоставления по регулярному выражению (необязательно)
handlerОбработчик запроса
empty_query_stringПроверяет, что в URL отсутствует строка запроса

handler содержит следующие настройки, которые могут быть заданы с помощью подтегов:

Sub-tagsDefinition
urlАдрес для перенаправления
typeПоддерживаемые типы: static, dynamic_query_handler, predefined_query_handler, redirect
statusИспользуется с типом static, код статуса ответа
query_param_nameИспользуется с типом dynamic_query_handler, извлекает и выполняет значение, соответствующее значению <query_param_name> в параметрах HTTP‑запроса
queryИспользуется с типом predefined_query_handler, выполняет запрос при вызове обработчика
content_typeИспользуется с типом static, content-type ответа
response_contentИспользуется с типом static, содержимое ответа, отправляемое клиенту; при использовании префикса 'file://' или 'config://' считывает содержимое из файла или конфигурации и отправляет его клиенту

Наряду со списком правил вы можете указать <defaults/>, который включает все обработчики по умолчанию.

Пример:

<http_handlers>
    <rule>
        <url>/</url>
        <methods>POST,GET</methods>
        <headers><pragma>no-cache</pragma></headers>
        <handler>
            <type>dynamic_query_handler</type>
            <query_param_name>query</query_param_name>
        </handler>
    </rule>

    <rule>
        <url>/predefined_query</url>
        <methods>POST,GET</methods>
        <handler>
            <type>predefined_query_handler</type>
            <query>SELECT * FROM system.settings</query>
        </handler>
    </rule>

    <rule>
        <handler>
            <type>static</type>
            <status>200</status>
            <content_type>text/plain; charset=UTF-8</content_type>
            <response_content>config://http_server_default_response</response_content>
        </handler>
    </rule>
</http_handlers>

http_options_response

Используется для добавления заголовков к ответу на HTTP-запрос OPTIONS. Метод OPTIONS используется при выполнении предварительных CORS-запросов (preflight-запросов).

Дополнительную информацию см. в разделе OPTIONS.

Пример:

<http_options_response>
     <header>
            <name>Access-Control-Allow-Origin</name>
            <value>*</value>
     </header>
     <header>
          <name>Access-Control-Allow-Headers</name>
          <value>origin, x-requested-with, x-clickhouse-format, x-clickhouse-user, x-clickhouse-key, Authorization</value>
     </header>
     <header>
          <name>Access-Control-Allow-Methods</name>
          <value>POST, GET, OPTIONS</value>
     </header>
     <header>
          <name>Access-Control-Max-Age</name>
          <value>86400</value>
     </header>
</http_options_response>

http_server_default_response

Страница, которая отображается по умолчанию при обращении к HTTP(S)-серверу ClickHouse. Значение по умолчанию — «Ok.» (с символом перевода строки в конце)

Пример

Открывает https://tabix.io/ при обращении к http://localhost:http_port.

<http_server_default_response>
  <![CDATA[<html ng-app="SMI2"><head><base href="http://ui.tabix.io/"></head><body><div ui-view="" class="content-ui"></div><script src="http://loader.tabix.io/master.js"></script></body></html>]]>
</http_server_default_response>

iceberg_catalog_threadpool_pool_size

Размер фонового пула потоков для каталога Iceberg

iceberg_catalog_threadpool_queue_size

Количество задач, которые можно поместить в очередь пула потоков каталога Iceberg

iceberg_metadata_files_cache_max_entries

Максимальный размер кэша файлов метаданных iceberg в количестве записей. Нулевое значение отключает кэш.

iceberg_metadata_files_cache_policy

Название политики кэширования метаданных Iceberg.

iceberg_metadata_files_cache_size

Максимальный размер кэша метаданных Iceberg в байтах. Нулевое значение означает, что кэш отключён.

iceberg_metadata_files_cache_size_ratio

Размер защищённой очереди (в случае политики SLRU) в кэше метаданных Iceberg относительно общего размера кэша.

ignore_empty_sql_security_in_create_view_query

Если значение true, ClickHouse не записывает значения по умолчанию для пустого оператора SQL SECURITY в запросах CREATE VIEW.

Примечание

Этот параметр нужен только на период миграции и станет устаревшим начиная с версии 24.4.

include_from

Путь к файлу с подстановками. Поддерживаются форматы XML и YAML.

Подробнее см. в разделе Файлы конфигурации.

Пример

<include_from>/etc/metrica.xml</include_from>

include_from

Путь к файлу с подстановками. Поддерживаются форматы XML и YAML.

Для получения дополнительной информации см. раздел "Файлы конфигурации".

Пример

<include_from>/etc/metrica.xml</include_from>

index_mark_cache_policy

Имя политики кэширования меток вторичного индекса.

index_mark_cache_size

Максимальный размер кэша для маркеров индекса.

Примечание

Значение 0 означает, что кэш отключен.

Этот параметр можно изменять во время работы, и изменения вступят в силу немедленно.

index_mark_cache_size_ratio

Размер защищённой очереди (в случае политики SLRU) в кэше меток вторичного индекса относительно общего размера кэша.

index_uncompressed_cache_policy

Имя политики кэша несжатого вторичного индекса.

index_uncompressed_cache_size

Максимальный размер кэша для несжатых блоков индекса MergeTree.

Примечание

Значение 0 означает, что кэш отключен.

Этот параметр можно изменять во время работы, и изменения вступают в силу немедленно.

index_uncompressed_cache_size_ratio

Размер защищённой очереди (в случае использования политики SLRU) в кэше несжатого вторичного индекса по отношению к общему размеру кэша.

interserver_http_credentials

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

Примечание
  • По умолчанию если секция interserver_http_credentials опущена, аутентификация во время репликации не используется.
  • Настройки interserver_http_credentials не относятся к конфигурации учетных данных клиента ClickHouse.
  • Эти учетные данные общие для репликации по HTTP и HTTPS.

Следующие настройки могут быть заданы с помощью подтегов:

  • user — Имя пользователя.
  • password — Пароль.
  • allow_empty — Если true, другим репликам разрешено подключаться без аутентификации даже при наличии заданных учетных данных. Если false, подключения без аутентификации отклоняются. Значение по умолчанию: false.
  • old — Содержит старые user и password, использовавшиеся при ротации учетных данных. Может быть указано несколько секций old.

Ротация учетных данных

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

Чтобы включить аутентификацию, установите interserver_http_credentials.allow_empty в true и добавьте учетные данные. Это разрешит подключения как с аутентификацией, так и без нее.

<interserver_http_credentials>
    <user>admin</user>
    <password>111</password>
    <allow_empty>true</allow_empty>
</interserver_http_credentials>

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

Чтобы изменить существующие учетные данные, перенесите имя пользователя и пароль в раздел interserver_http_credentials.old и задайте новые значения для user и password. На этом этапе сервер использует новые учетные данные для подключения к другим репликам и принимает подключения как с новыми, так и со старыми учетными данными.

<interserver_http_credentials>
    <user>admin</user>
    <password>222</password>
    <old>
        <user>admin</user>
        <password>111</password>
    </old>
    <old>
        <user>temp</user>
        <password>000</password>
    </old>
</interserver_http_credentials>

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

interserver_http_host

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

Если параметр не задан, значение определяется так же, как в команде <hostname -f>.

Полезен для отвязки от конкретного сетевого интерфейса.

Пример

<interserver_http_host>example.clickhouse.com</interserver_http_host>

interserver_http_host

Имя хоста, которое может использоваться другими серверами для доступа к этому серверу.

Если не задано, определяется так же, как результат команды hostname -f.

Полезно для отказа от привязки к конкретному сетевому интерфейсу.

Пример

<interserver_http_host>example.clickhouse.com</interserver_http_host>

interserver_http_port

Порт для обмена данными между серверами ClickHouse.

Пример

<interserver_http_port>9009</interserver_http_port>

interserver_http_port

Порт для обмена данными между серверами ClickHouse.

Пример

<interserver_http_port>9009</interserver_http_port>

interserver_https_host

Аналогично <interserver_http_host>, за тем исключением, что это имя хоста используется другими серверами для доступа к этому серверу по <HTTPS>.

Пример

<interserver_https_host>example.clickhouse.com</interserver_https_host>

interserver_https_host

Аналогично interserver_http_host, за исключением того, что это имя хоста используется другими серверами для доступа к этому серверу по HTTPS.

Пример

<interserver_https_host>example.clickhouse.com</interserver_https_host>

interserver_https_port

Порт для обмена данными между серверами ClickHouse по протоколу <HTTPS>.

Пример

<interserver_https_port>9010</interserver_https_port>

interserver_https_port

Порт для обмена данными между серверами ClickHouse по протоколу HTTPS.

Пример

<interserver_https_port>9010</interserver_https_port>

interserver_listen_host

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

Примечание

По умолчанию значение равно настройке listen_host.

Пример

<interserver_listen_host>::ffff:a00:1</interserver_listen_host>
<interserver_listen_host>10.0.0.1</interserver_listen_host>

Тип:

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

io_thread_pool_queue_size

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

Примечание

Значение 0 означает отсутствие ограничения.

jemalloc_collect_global_profile_samples_in_trace_log

Хранить выборочные выделения памяти jemalloc в system.trace_log

jemalloc_enable_background_threads

Включает фоновые потоки jemalloc. Jemalloc использует фоновые потоки для очистки неиспользуемых страниц памяти. Его отключение может привести к снижению производительности.

jemalloc_enable_global_profiler

Включает глобальный профилировщик выделений jemalloc для всех потоков. Jemalloc будет выборочно отслеживать операции выделения и все освобождения для выборочно отслеженных выделений. Профили можно сбрасывать командой SYSTEM JEMALLOC FLUSH PROFILE, которую можно использовать для анализа выделений. Выборки также могут сохраняться в system.trace_log с помощью конфигурации jemalloc_collect_global_profile_samples_in_trace_log или с настройкой запроса jemalloc_collect_profile_samples_in_trace_log. См. раздел Профилирование выделений.

jemalloc_flush_profile_interval_bytes

Сброс профиля jemalloc будет выполнен после того, как глобальное пиковое потребление памяти увеличится на jemalloc_flush_profile_interval_bytes

jemalloc_flush_profile_on_memory_exceeded

Сброс профиля jemalloc будет выполняться при ошибках из-за превышения общего объёма памяти

jemalloc_max_background_threads_num

Максимальное количество фоновых потоков jemalloc, которые создаются; установите 0, чтобы использовать значение по умолчанию jemalloc

keep_alive_timeout

Количество секунд, в течение которых ClickHouse ожидает входящих HTTP-запросов перед закрытием соединения.

Пример

<keep_alive_timeout>10</keep_alive_timeout>

keeper_hosts

Динамическая настройка. Содержит набор хостов [Zoo]Keeper, к которым ClickHouse потенциально может подключаться. Не включает информацию из <auxiliary_zookeepers>.

keeper_multiread_batch_size

Максимальный размер пакета для запроса MultiRead к [Zoo]Keeper с поддержкой пакетной обработки. Если установлено значение 0, пакетная обработка отключается. Доступно только в ClickHouse Cloud.

keeper_server.socket_receive_timeout_sec

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

keeper_server.socket_send_timeout_sec

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

ldap_servers

Перечислите здесь LDAP‑серверы с их параметрами подключения, чтобы:

  • использовать их как аутентификаторы для отдельных локальных пользователей, у которых вместо механизма аутентификации password задан ldap;
  • использовать их как удалённые каталоги пользователей.

Следующие настройки можно задать с помощью подтегов:

SettingDescription
hostИмя хоста или IP‑адрес LDAP‑сервера, этот параметр является обязательным и не может быть пустым.
portПорт LDAP‑сервера, по умолчанию 636, если enable_tls установлено в true, иначе 389.
bind_dnШаблон, используемый для построения DN для привязки (bind). Итоговый DN формируется путём замены всех подстрок \{user_name\} в шаблоне фактическим именем пользователя при каждой попытке аутентификации.
user_dn_detectionРаздел с параметрами поиска LDAP для определения фактического DN пользователя, к которому выполняется привязка. В основном используется в поисковых фильтрах для дальнейшего сопоставления ролей, когда сервер — Active Directory. Итоговый DN пользователя будет использоваться при замене подстрок \{user_dn\} везде, где это допускается. По умолчанию DN пользователя устанавливается равным bind DN, но после выполнения поиска он будет обновлён фактически обнаруженным значением DN пользователя.
verification_cooldownПериод времени в секундах после успешной попытки привязки, в течение которого пользователь считается успешно аутентифицированным для всех последующих запросов без обращения к LDAP‑серверу. Укажите 0 (значение по умолчанию), чтобы отключить кэширование и принудительно обращаться к LDAP‑серверу для каждого запроса аутентификации.
enable_tlsФлаг, включающий использование защищённого подключения к LDAP‑серверу. Укажите no для протокола в открытом виде (ldap://) (не рекомендуется). Укажите yes для LDAP поверх SSL/TLS (ldaps://) (рекомендуется, значение по умолчанию). Укажите starttls для устаревшего протокола StartTLS (протокол в открытом виде (ldap://), повышаемый до TLS).
tls_minimum_protocol_versionМинимальная версия протокола SSL/TLS. Допустимые значения: ssl2, ssl3, tls1.0, tls1.1, tls1.2 (значение по умолчанию).
tls_require_certПоведение проверки сертификата SSL/TLS удалённого узла. Допустимые значения: never, allow, try, demand (значение по умолчанию).
tls_cert_fileПуть к файлу сертификата.
tls_key_fileПуть к файлу ключа сертификата.
tls_ca_cert_fileПуть к файлу корневого сертификата (CA).
tls_ca_cert_dirПуть к каталогу, содержащему корневые сертификаты (CA).
tls_cipher_suiteРазрешённый набор шифров (в нотации OpenSSL).

Настройка user_dn_detection может быть задана с помощью подтегов:

SettingDescription
base_dnШаблон, используемый для построения base DN для поиска LDAP. Итоговый DN формируется путём замены всех подстрок \{user_name\} и \{bind_dn\} в шаблоне фактическим именем пользователя и bind DN во время поиска LDAP.
scopeОбласть поиска LDAP. Допустимые значения: base, one_level, children, subtree (значение по умолчанию).
search_filterШаблон, используемый для построения фильтра поиска для запроса LDAP. Итоговый фильтр формируется путём замены всех подстрок \{user_name\}, \{bind_dn\} и \{base_dn\} в шаблоне фактическим именем пользователя, bind DN и base DN во время поиска LDAP. Обратите внимание, что специальные символы должны быть корректно экранированы в XML.

Example:

<my_ldap_server>
    <host>localhost</host>
    <port>636</port>
    <bind_dn>uid={user_name},ou=users,dc=example,dc=com</bind_dn>
    <verification_cooldown>300</verification_cooldown>
    <enable_tls>yes</enable_tls>
    <tls_minimum_protocol_version>tls1.2</tls_minimum_protocol_version>
    <tls_require_cert>demand</tls_require_cert>
    <tls_cert_file>/path/to/tls_cert_file</tls_cert_file>
    <tls_key_file>/path/to/tls_key_file</tls_key_file>
    <tls_ca_cert_file>/path/to/tls_ca_cert_file</tls_ca_cert_file>
    <tls_ca_cert_dir>/path/to/tls_ca_cert_dir</tls_ca_cert_dir>
    <tls_cipher_suite>ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:AES256-GCM-SHA384</tls_cipher_suite>
</my_ldap_server>

Пример (типичная среда Active Directory с настроенным определением DN пользователя для последующего сопоставления ролей):

<my_ad_server>
    <host>localhost</host>
    <port>389</port>
    <bind_dn>EXAMPLE\{user_name}</bind_dn>
    <user_dn_detection>
        <base_dn>CN=Users,DC=example,DC=com</base_dn>
        <search_filter>(&amp;(objectClass=user)(sAMAccountName={user_name}))</search_filter>
    </user_dn_detection>
    <enable_tls>no</enable_tls>
</my_ad_server>

license_file

Содержимое файла лицензии для ClickHouse Enterprise Edition

license_public_key_for_testing

Демонстрационный лицензионный ключ, только для использования в CI

listen_backlog

Backlog (размер очереди ожидающих соединений) для прослушивающего сокета. Значение по умолчанию <4096> такое же, как в Linux 5.4+.

Обычно это значение не нужно изменять, поскольку:

  • значение по умолчанию достаточно велико;
  • для приёма клиентских соединений у сервера есть отдельный поток.

Поэтому даже если счётчик <TcpExtListenOverflows> (из <nstat>) ненулевой и растёт для сервера ClickHouse, это не значит, что это значение необходимо увеличивать, поскольку:

  • обычно, если <4096> недостаточно, это указывает на внутреннюю проблему масштабирования ClickHouse, поэтому лучше создать отчёт об ошибке;
  • это не означает, что сервер сможет обработать больше соединений позже (и даже если бы смог, к тому моменту клиенты могут уже отключиться или пропасть).

Пример

<listen_backlog>4096</listen_backlog>

listen_backlog

Backlog (размер очереди ожидающих подключений) прослушивающего сокета. Значение по умолчанию 4096 такое же, как и в Linux 5.4+).

Обычно это значение не требуется изменять, поскольку:

  • Значение по умолчанию достаточно велико.
  • Для приёма клиентских подключений у сервера есть отдельный поток.

Поэтому даже если у вас TcpExtListenOverflows (из nstat) имеет ненулевое значение и этот счётчик растёт для сервера ClickHouse, это не означает, что это значение нужно увеличивать, поскольку:

  • Обычно, если 4096 недостаточно, это указывает на внутреннюю проблему масштабирования ClickHouse, поэтому лучше сообщить о проблеме.
  • Это не означает, что сервер сможет позже обработать больше подключений (и даже если сможет, к тому моменту клиенты могут уже уйти или отключиться).

Пример

<listen_backlog>4096</listen_backlog>

listen_host

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

Примеры:

<listen_host>::1</listen_host>
<listen_host>127.0.0.1</listen_host>

listen_reuse_port

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

Пример

<listen_reuse_port>0</listen_reuse_port>

listen_reuse_port

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

Пример

<listen_reuse_port>0</listen_reuse_port>

Тип:

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

listen_try

Сервер не завершит работу, если сети IPv6 или IPv4 недоступны при попытке начать прослушивание (открыть порт).

Пример

<listen_try>0</listen_try>

listen_try

Сервер не будет завершать работу, если при попытке начать прослушивание недоступны сети IPv6 или IPv4.

Пример

<listen_try>0</listen_try>

load_marks_threadpool_pool_size

Размер фонового пула потоков для загрузки меток

load_marks_threadpool_queue_size

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

logger

Расположение и формат сообщений журнала.

Ключи:

KeyDescription
levelУровень логирования. Допустимые значения: none (выключить логирование), fatal, critical, error, warning, notice, information,debug, trace, test
logПуть к файлу журнала.
errorlogПуть к файлу журнала ошибок.
sizeПолитика ротации: максимальный размер файлов журнала в байтах. Когда размер файла журнала превышает этот порог, он переименовывается и архивируется, после чего создаётся новый файл журнала.
rotationПолитика ротации: определяет, когда файлы журнала ротируются. Ротация может выполняться по размеру, времени или их комбинации. Примеры: 100M, daily, 100M,daily. Когда размер файла журнала превышает указанный размер или наступает заданный интервал времени, файл переименовывается и архивируется, после чего создаётся новый файл журнала.
countПолитика ротации: максимальное количество исторических файлов журналов ClickHouse, которые хранятся.
stream_compressСжимать сообщения журнала с помощью LZ4. Установите 1 или true для включения.
consoleВключить логирование в консоль. Установите 1 или true для включения. Значение по умолчанию — 1, если ClickHouse не запущен в режиме демона, иначе 0.
console_log_levelУровень логирования для вывода в консоль. По умолчанию — level.
formatting.typeФормат журнала для вывода в консоль. В настоящее время поддерживается только json.
use_syslogДополнительно перенаправлять вывод журнала в syslog.
syslog_levelУровень логирования для записи в syslog.
asyncЕсли true (по умолчанию), логирование выполняется асинхронно (один фоновый поток на каждый канал вывода). В противном случае логирование выполняется в потоке, вызывающем LOG.
async_queue_max_sizeПри использовании асинхронного логирования — максимальное количество сообщений, которые будут находиться в очереди в ожидании сброса. Лишние сообщения будут отброшены.
startup_levelУровень логирования при запуске используется для установки уровня корневого логгера при старте сервера. После запуска уровень логирования возвращается к настройке level.
shutdown_levelУровень логирования при остановке используется для установки уровня корневого логгера при остановке сервера.

Спецификаторы формата журнала

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

Столбец «Example» показывает вывод для 2023-07-06 18:32:07.

СпецификаторОписаниеПример
%%Буквальный символ %%
%nСимвол перевода строки
%tСимвол горизонтальной табуляции
%YГод в виде десятичного числа, например, 20172023
%yПоследние две цифры года как десятичное число (диапазон [00, 99])23
%CПервые две цифры года в виде десятичного числа (диапазон [00,99])20
%GЧетырёхзначный год по ISO 8601, основанный на неделях, то есть год, который содержит указанную неделю. Обычно используется только вместе с %V2023
%gПоследние две цифры ISO 8601 week-based year, то есть года, в который входит указанная неделя.23
%bСокращённое название месяца, например, Oct (зависит от локали).Jul
%hСиноним спецификатора %bJul
%BПолное название месяца, например October (зависит от настроек локали)июль
%mМесяц как десятичное число (диапазон [01,12])07
%UНомер недели в году в виде десятичного числа (воскресенье — первый день недели) (диапазон [00,53])27
%WНомер недели года в виде десятичного числа (понедельник — первый день недели) (диапазон [00,53])27
%VНомер недели по стандарту ISO 8601 (диапазон [01,53])27
%jДень года как десятичное число (диапазон [001, 366])187
%dДень месяца в виде десятичного числа с ведущим нулём (диапазон [01,31]). Одноразрядное число дополняется ведущим нулём.06
%eДень месяца в виде десятичного числа с заполнением пробелом (диапазон [1,31]). Одноразрядное число дополняется пробелом слева.&nbsp; 6
%aКраткое название дня недели, например Fri (зависит от локали)Чт
%AПолное название дня недели, например «Friday» (зависит от локали)четверг
%wДень недели в виде целого числа, где воскресенье — 0 (диапазон [0–6])4
%uДень недели как целое число, где понедельник — 1 (в формате ISO 8601) (диапазон [1-7])4
%HЧас в виде десятичного числа, 24-часовой формат (диапазон [00–23])18
%IЧас в виде десятичного числа в 12-часовом формате (диапазон [01, 12])06
%MМинута как десятичное число (в диапазоне [00,59])32
%SСекунда в формате десятичного числа (диапазон [00,60])07
%cСтандартное строковое представление даты и времени, например Sun Oct 17 04:41:13 2010 (зависит от локали)Thu Jul 6 18:32:07 2023
%xЛокализованный формат даты (зависит от локали)06.07.23
%XЛокализованное представление времени, например 18:40:20 или 6:40:20 PM (в зависимости от локали)18:32:07
%DКраткая дата в формате MM/DD/YY, эквивалент формату %m/%d/%y07/06/23
%FКраткая дата в формате YYYY-MM-DD, эквивалент записи %Y-%m-%d2023-07-06
%rЛокализованное время в 12‑часовом формате (зависит от региональных настроек)06:32:07 PM
%RЭквивалент «%H:%M»18:32
%TЭквивалентно "%H:%M:%S" (время в формате ISO 8601)18:32:07
%pЛокализованное обозначение «a.m.» или «p.m.» (зависит от локали)PM
%zСмещение от UTC в формате ISO 8601 (например -0430) или пустая строка, если сведения о часовом поясе недоступны+0800
%ZЗависимое от локали название или аббревиатура часового пояса, либо пустая строка, если информация о часовом поясе недоступнаZ AWST

Пример

<logger>
    <level>trace</level>
    <log>/var/log/clickhouse-server/clickhouse-server-%F-%T.log</log>
    <errorlog>/var/log/clickhouse-server/clickhouse-server-%F-%T.err.log</errorlog>
    <size>1000M</size>
    <count>10</count>
    <stream_compress>true</stream_compress>
</logger>

Чтобы выводить лог‑сообщения только в консоль:

<logger>
    <level>information</level>
    <console>true</console>
</logger>

Переопределения по уровням

Уровень логирования для отдельных логгеров по имени может быть переопределён. Например, чтобы отключить все сообщения логгеров "Backup" и "RBAC".

<logger>
    <levels>
        <logger>
            <name>Backup</name>
            <level>none</level>
        </logger>
        <logger>
            <name>RBAC</name>
            <level>none</level>
        </logger>
    </levels>
</logger>

syslog

Чтобы дополнительно записывать лог-сообщения в syslog:

<logger>
    <use_syslog>1</use_syslog>
    <syslog>
        <address>syslog.remote:10514</address>
        <hostname>myhost.local</hostname>
        <facility>LOG_LOCAL6</facility>
        <format>syslog</format>
    </syslog>
</logger>

Ключи для <syslog>:

KeyDescription
addressАдрес syslog в формате host\[:port\]. Если не указан — используется локальный демон.
hostnameИмя хоста, с которого отправляются логи (необязательное поле).
facilityКлючевое слово facility для syslog. Должно быть указано в верхнем регистре с префиксом "LOG_", например: LOG_USER, LOG_DAEMON, LOG_LOCAL3 и т. д. По умолчанию: LOG_USER, если указан address, иначе — LOG_DAEMON.
formatФормат сообщения лога. Возможные значения: bsd и syslog.

Форматы логов

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

Пример

Ниже приведён пример выходного JSON-лога:

{
  "date_time_utc": "2024-11-06T09:06:09Z",
  "date_time": "1650918987.180175",
  "thread_name": "#1",
  "thread_id": "254545",
  "level": "Trace",
  "query_id": "",
  "logger_name": "BaseDaemon",
  "message": "Received signal 2",
  "source_file": "../base/daemon/BaseDaemon.cpp; virtual void SignalListener::run()",
  "source_line": "192"
}

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

<logger>
    <formatting>
        <type>json</type>
        <!-- Can be configured on a per-channel basis (log, errorlog, console, syslog), or globally for all channels (then just omit it). -->
        <!-- <channel></channel> -->
        <names>
            <date_time>date_time</date_time>
            <thread_name>thread_name</thread_name>
            <thread_id>thread_id</thread_id>
            <level>level</level>
            <query_id>query_id</query_id>
            <logger_name>logger_name</logger_name>
            <message>message</message>
            <source_file>source_file</source_file>
            <source_line>source_line</source_line>
        </names>
    </formatting>
</logger>

Переименование ключей для JSON-логов

Имена ключей можно изменить, задав другие значения тегов внутри тега <names>. Например, чтобы изменить DATE_TIME на MY_DATE_TIME, можно использовать <date_time>MY_DATE_TIME</date_time>.

Пропуск ключей для JSON-логов

Поля логов можно опустить, закомментировав соответствующее поле. Например, если вы не хотите, чтобы лог выводил query_id, вы можете закомментировать тег <query_id>.

logger.async

Когда установлено значение <true> (по умолчанию), логирование выполняется асинхронно (один фоновый поток на каждый канал вывода). В противном случае записи в лог выполняются в потоке, из которого вызывается LOG.

logger.async_queye_max_size

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

logger.console

Включает вывод логов в консоль. Установите значение <1> или <true>, чтобы включить параметр. Значение по умолчанию — <1>, если ClickHouse не запущен в режиме демона, и <0> в противном случае.

logger.console_log_level

Уровень логирования для вывода в консоль. По умолчанию — <level>.

logger.count

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

logger.errorlog

Путь к файлу журнала ошибок.

logger.formatting.type

Формат логов для вывода в консоль. Сейчас поддерживается только <json>.

logger.level

Уровень логирования. Допустимые значения: <none> (отключить логирование), <fatal>, <critical>, <error>, <warning>, <notice>, <information>, <debug>, <trace>, <test>.

logger.log

Путь к файлу журнала.

logger.rotation

Политика ротации: определяет, когда выполняется ротация файлов журнала. Ротация может выполняться на основе размера, времени или их комбинации. Примеры: 100M, daily, 100M,daily. Как только файл журнала превышает указанный размер или достигается заданный временной интервал, он переименовывается и архивируется, а вместо него создаётся новый файл журнала.

logger.shutdown_level

Уровень завершения используется для установки уровня корневого логгера при остановке сервера.

logger.size

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

logger.startup_level

Стартовый уровень используется для задания уровня корневого логгера при запуске сервера. После запуска уровень логирования возвращается к значению параметра <level>.

logger.stream_compress

Сжимает сообщения журнала с помощью LZ4. Установите значение <1> или <true>, чтобы включить.

logger.syslog_level

Уровень детализации журналирования при выводе в syslog.

logger.use_syslog

Также перенаправлять вывод логов в syslog.

macros

Параметры подстановки для реплицированных таблиц.

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

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

Пример

<macros incl="macros" optional="true" />

mark_cache_policy

Название политики кэша меток.

mark_cache_prewarm_ratio

Доля общего объёма кэша меток, заполняемая при предварительном прогреве.

mark_cache_size

Максимальный размер кэша меток (индекса таблиц семейства MergeTree).

Примечание

Этот параметр можно изменять во время работы сервера, и изменения вступят в силу немедленно.

mark_cache_size_ratio

Размер защищённой очереди (в случае политики SLRU) в кэше меток относительно общего размера кэша.

max_active_parts_loading_thread_pool_size

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

max_authentication_methods_per_user

Максимальное количество методов аутентификации, с которыми пользователь может быть создан или изменён. Изменение этой настройки не влияет на уже существующих пользователей. Запросы CREATE/ALTER, связанные с аутентификацией, будут завершаться с ошибкой, если они превышают лимит, указанный в этой настройке. Запросы CREATE/ALTER, не связанные с аутентификацией, будут выполняться успешно.

Примечание

Значение 0 означает отсутствие ограничения.

max_backup_bandwidth_for_server

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

max_backups_io_thread_pool_free_size

Если количество бездействующих потоков в пуле потоков ввода-вывода резервных копий (Backups IO Thread pool) превышает max_backup_io_thread_pool_free_size, ClickHouse освободит ресурсы, занятые этими потоками, и уменьшит размер пула. Потоки могут быть созданы снова при необходимости.

max_backups_io_thread_pool_size

ClickHouse использует потоки из пула потоков Backups IO Thread pool для выполнения операций ввода-вывода при резервном копировании в S3. max_backups_io_thread_pool_size ограничивает максимальное количество потоков в этом пуле.

max_build_vector_similarity_index_thread_pool_size

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

Примечание

Значение 0 означает все ядра.

max_concurrent_insert_queries

Ограничение на общее число одновременно выполняемых запросов INSERT.

Примечание

Значение 0 (по умолчанию) означает отсутствие ограничений.

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

max_concurrent_queries

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

См. также:

Примечание

Значение 0 (по умолчанию) означает отсутствие ограничений.

Этот параметр можно изменить во время работы сервера, и изменение вступит в силу немедленно. Уже выполняющиеся запросы останутся без изменений.

max_concurrent_select_queries

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

Примечание

Значение 0 (по умолчанию) означает отсутствие ограничения.

Этот параметр можно изменить во время работы сервера, и изменение вступит в силу немедленно. Уже выполняющиеся запросы останутся без изменений.

max_connections

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

max_database_num_to_throw

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

max_database_num_to_warn

Если количество подключённых баз данных превышает указанное значение, сервер ClickHouse добавит предупреждения в таблицу system.warnings.

Пример

<max_database_num_to_warn>50</max_database_num_to_warn>

max_database_replicated_create_table_thread_pool_size

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

max_dictionary_num_to_throw

Если число словарей превышает это значение, сервер выбросит исключение.

В счет идут только таблицы баз данных со следующими движками:

  • Atomic
  • Ordinary
  • Replicated
  • Lazy
Примечание

Значение 0 означает отсутствие ограничения.

Пример

<max_dictionary_num_to_throw>400</max_dictionary_num_to_throw>

max_dictionary_num_to_warn

Если количество подключенных словарей превышает указанное значение, сервер ClickHouse добавит предупреждающие сообщения в таблицу system.warnings.

Пример

<max_dictionary_num_to_warn>400</max_dictionary_num_to_warn>

max_distributed_cache_read_bandwidth_for_server

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

max_distributed_cache_write_bandwidth_for_server

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

max_entries_for_hash_table_stats

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

max_fetch_partition_thread_pool_size

Количество потоков для выполнения ALTER TABLE FETCH PARTITION.

max_format_parsing_thread_pool_free_size

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

max_format_parsing_thread_pool_size

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

max_io_thread_pool_free_size

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

max_io_thread_pool_size

ClickHouse использует потоки из пула потоков ввода-вывода (IO thread pool) для выполнения отдельных операций ввода-вывода (например, для взаимодействия с S3). max_io_thread_pool_size ограничивает максимальное количество потоков в этом пуле.

max_keep_alive_requests

Максимальное количество запросов через одно keep-alive-соединение до того, как оно будет закрыто сервером ClickHouse.

Пример

<max_keep_alive_requests>10</max_keep_alive_requests>

max_local_read_bandwidth_for_server

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

Примечание

Значение 0 означает отсутствие ограничений.

max_local_write_bandwidth_for_server

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

Примечание

Значение 0 означает отсутствие ограничений.

max_materialized_views_count_for_table

Ограничение на число materialized views, привязанных к таблице.

Примечание

Здесь учитываются только непосредственно зависящие от неё представления; создание одного представления поверх другого представления не принимается во внимание.

max_merges_bandwidth_for_server

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

max_mutations_bandwidth_for_server

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

max_named_collection_num_to_throw

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

Примечание

Значение 0 означает отсутствие ограничений.

Пример

<max_named_collection_num_to_throw>400</max_named_collection_num_to_throw>

max_named_collection_num_to_warn

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

Пример

<max_named_collection_num_to_warn>400</max_named_collection_num_to_warn>

max_open_files

Максимальное количество открытых файлов.

Примечание

Мы рекомендуем использовать эту опцию в macOS, поскольку функция getrlimit() возвращает некорректное значение.

max_open_files

Максимальное количество открытых файлов.

Примечание

Рекомендуем использовать этот параметр на macOS, поскольку функция getrlimit() возвращает некорректное значение.

Пример

<max_open_files>262144</max_open_files>

max_os_cpu_wait_time_ratio_to_drop_connection

Максимальное соотношение между временем ожидания CPU в ОС (метрика OSCPUWaitMicroseconds) и временем занятости (метрика OSCPUVirtualTimeMicroseconds), при котором соединения могут быть разорваны. Для вычисления вероятности используется линейная интерполяция между минимальным и максимальным значением соотношения, при достижении этого значения вероятность равна 1. Подробнее см. раздел Управление поведением при перегрузке CPU сервера.

max_outdated_parts_loading_thread_pool_size

Количество потоков в пуле для загрузки неактивных (устаревших) частей данных при запуске.

max_part_num_to_warn

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

Пример

<max_part_num_to_warn>400</max_part_num_to_warn>

max_partition_size_to_drop

Ограничение на удаление партиций.

Если размер таблицы MergeTree превышает значение max_partition_size_to_drop (в байтах), партицию нельзя удалить с помощью запроса DROP PARTITION. Для применения этого параметра не требуется перезапуск сервера ClickHouse. Другой способ отключить ограничение — создать файл <clickhouse-path>/flags/force_drop_table.

Примечание

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

Это ограничение не распространяется на DROP TABLE и TRUNCATE TABLE, см. max_table_size_to_drop

Пример

<max_partition_size_to_drop>0</max_partition_size_to_drop>

max_parts_cleaning_thread_pool_size

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

max_pending_mutations_execution_time_to_warn

Если время выполнения какой-либо из ожидающих мутаций превышает указанное значение в секундах, сервер ClickHouse добавляет предупреждающие сообщения в таблицу system.warnings.

Пример

<max_pending_mutations_execution_time_to_warn>10000</max_pending_mutations_execution_time_to_warn>

max_pending_mutations_to_warn

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

Пример

<max_pending_mutations_to_warn>400</max_pending_mutations_to_warn>

max_prefixes_deserialization_thread_pool_free_size

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

max_prefixes_deserialization_thread_pool_size

ClickHouse использует потоки пула десериализации префиксов для параллельного чтения метаданных столбцов и подстолбцов из префиксов файлов в Wide-частях движка MergeTree. max_prefixes_deserialization_thread_pool_size ограничивает максимальное количество потоков в этом пуле.

max_remote_read_network_bandwidth_for_server

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

Примечание

Значение 0 (по умолчанию) означает отсутствие ограничений.

max_remote_write_network_bandwidth_for_server

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

Примечание

Значение 0 (по умолчанию) означает отсутствие ограничений.

max_replicated_fetches_network_bandwidth_for_server

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

max_replicated_sends_network_bandwidth_for_server

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

max_replicated_table_num_to_throw

Если число реплицированных таблиц превышает это значение, сервер выбросит исключение.

Считаются только таблицы для движков баз данных:

  • Atomic
  • Ordinary
  • Replicated
  • Lazy
Примечание

Значение 0 означает отсутствие ограничения.

Пример

<max_replicated_table_num_to_throw>400</max_replicated_table_num_to_throw>

max_server_memory_usage

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

Примечание

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

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

max_server_memory_usage_to_ram_ratio

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

Например, значение 0.9 (по умолчанию) означает, что сервер может использовать 90% доступной памяти.

Позволяет снизить использование памяти на системах с малым объёмом ОЗУ. На хостах с небольшим объёмом ОЗУ и swap, возможно, потребуется установить параметр max_server_memory_usage_to_ram_ratio больше 1.

Примечание

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

max_session_timeout

Максимальное время ожидания сеанса, в секундах.

Пример:

<max_session_timeout>3600</max_session_timeout>

max_table_num_to_throw

Если количество таблиц превышает это значение, сервер выбросит исключение.

Следующие таблицы не учитываются:

  • view
  • remote
  • dictionary
  • system

Считаются только таблицы в базах данных с движками:

  • Atomic
  • Ordinary
  • Replicated
  • Lazy
Примечание

Значение 0 означает отсутствие ограничения.

Пример

<max_table_num_to_throw>400</max_table_num_to_throw>

max_table_num_to_warn

Если число присоединённых таблиц превышает указанное значение, сервер ClickHouse добавит предупреждения в таблицу system.warnings.

Пример

<max_table_num_to_warn>400</max_table_num_to_warn>

max_table_size_to_drop

Ограничение на удаление таблиц.

Если размер таблицы MergeTree превышает max_table_size_to_drop (в байтах), вы не можете удалить её с помощью запроса DROP или запроса TRUNCATE.

Примечание

Значение 0 означает, что вы можете удалять любые таблицы без каких-либо ограничений.

Для применения этой настройки не требуется перезапуск сервера ClickHouse. Другой способ отключить ограничение — создать файл <clickhouse-path>/flags/force_drop_table.

Пример

<max_table_size_to_drop>0</max_table_size_to_drop>

max_temporary_data_on_disk_size

Максимальный объем дискового пространства, который может быть использован для внешней агрегации, операций JOIN или сортировки. Запросы, которые превысят этот лимит, завершатся с ошибкой (исключением).

Примечание

Значение 0 означает отсутствие ограничения.

См. также:

max_thread_pool_free_size

Если количество простаивающих потоков в глобальном пуле потоков (Global Thread Pool) превышает значение max_thread_pool_free_size, ClickHouse освобождает ресурсы, занимаемые некоторыми потоками, и размер пула уменьшается. При необходимости потоки могут быть созданы заново.

Пример

<max_thread_pool_free_size>1200</max_thread_pool_free_size>

max_thread_pool_size

ClickHouse использует потоки из глобального пула потоков (global thread pool) для обработки запросов. Если нет свободного потока для обработки запроса, в пуле создаётся новый поток. max_thread_pool_size ограничивает максимальное количество потоков в пуле.

Пример

<max_thread_pool_size>12000</max_thread_pool_size>

max_unexpected_parts_loading_thread_pool_size

Количество потоков для загрузки неактивного набора частей данных («неожиданных») при запуске.

max_view_num_to_throw

Если число представлений превышает это значение, сервер выбросит исключение.

Учитываются только таблицы для движков баз данных:

  • Atomic
  • Ordinary
  • Replicated
  • Lazy
Примечание

Значение 0 означает отсутствие ограничения.

Пример

<max_view_num_to_throw>400</max_view_num_to_throw>

max_view_num_to_warn

Если количество подключённых представлений превышает указанное значение, сервер ClickHouse добавит предупреждения в таблицу system.warnings.

Пример

<max_view_num_to_warn>400</max_view_num_to_warn>

max_waiting_queries

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

Примечание

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

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

Примечание

Значение 0 (по умолчанию) означает отсутствие ограничения.

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

memory_worker_correct_memory_tracker

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

memory_worker_period_ms

Период тиков фонового процесса управления памятью, который корректирует значения memory tracker и очищает неиспользуемые страницы при повышенном использовании памяти. Если установлено значение 0, будет использовано значение по умолчанию в зависимости от источника использования памяти.

memory_worker_purge_dirty_pages_threshold_ratio

Пороговое значение доли «грязных» страниц jemalloc от объёма памяти, доступной серверу ClickHouse. Когда размер «грязных» страниц превышает эту долю, фоновый рабочий поток памяти принудительно очищает «грязные» страницы. Если установлено значение 0, принудительная очистка отключается.

memory_worker_use_cgroup

Использовать сведения о текущем использовании памяти в cgroup для корректировки отслеживания памяти.

merge_tree

Параметры тонкой настройки для таблиц MergeTree.

Для получения дополнительной информации см. заголовочный файл MergeTreeSettings.h.

Пример

<merge_tree>
    <max_suspicious_broken_parts>5</max_suspicious_broken_parts>
</merge_tree>

merge_workload

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

См. также

merges_mutations_memory_usage_soft_limit

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

Примечание

Значение 0 означает отсутствие ограничения.

Пример

<merges_mutations_memory_usage_soft_limit>0</merges_mutations_memory_usage_soft_limit>

merges_mutations_memory_usage_to_ram_ratio

Значение настройки merges_mutations_memory_usage_soft_limit по умолчанию рассчитывается как memory_amount * merges_mutations_memory_usage_to_ram_ratio.

См. также:

metric_log

По умолчанию он отключён.

Включение

Чтобы вручную включить сбор истории метрик system.metric_log, создайте файл /etc/clickhouse-server/config.d/metric_log.xml со следующим содержимым:

<clickhouse>
    <metric_log>
        <database>system</database>
        <table>metric_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <collect_interval_milliseconds>1000</collect_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
    </metric_log>
</clickhouse>

Отключение

Чтобы отключить параметр metric_log, необходимо создать следующий файл /etc/clickhouse-server/config.d/disable_metric_log.xml со следующим содержимым:

<clickhouse>
    <metric_log remove="1" />
</clickhouse>

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

min_os_cpu_wait_time_ratio_to_drop_connection

Минимальное отношение между временем ожидания ЦП ОС (метрика OSCPUWaitMicroseconds) и временем занятости (метрика OSCPUVirtualTimeMicroseconds), при котором можно рассматривать отключение соединений. Для вычисления вероятности используется линейная интерполяция между минимальным и максимальным отношением; при этом значении отношения вероятность равна 0. См. раздел Управление поведением при перегрузке ЦП сервера для получения более подробной информации.

mlock_executable

Выполнить <mlockall> после запуска, чтобы уменьшить задержку первых запросов и предотвратить выгрузку исполняемого файла ClickHouse при высокой нагрузке на ввод-вывод.

Примечание

Включение этой опции рекомендуется, но приведёт к увеличению времени запуска на несколько секунд. Имейте в виду, что этот параметр не будет работать без capability CAP_IPC_LOCK.

Пример

<mlock_executable>false</mlock_executable>

mlock_executable

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

Примечание

Рекомендуется включать эту опцию, но это приведёт к увеличению времени запуска на несколько секунд. Имейте в виду, что этот параметр не будет работать без capability "CAP_IPC_LOCK".

Пример

<mlock_executable>false</mlock_executable>

mlock_executable_min_total_memory_amount_bytes

Минимальный порог объёма памяти, необходимый для выполнения <mlockall>

mmap_cache_size

Этот параметр позволяет избежать частых вызовов open/close (которые очень затратны из‑за последующих пэйджфолтов) и повторно использовать отображения между несколькими потоками и запросами. Значение параметра — это количество отображённых участков памяти (обычно равное количеству отображённых файлов).

Объём данных в отображённых файлах можно отслеживать в следующих системных таблицах по следующим метрикам:

Примечание

Объём данных в отображённых файлах напрямую не занимает оперативную память и не учитывается в использовании памяти запросом или сервером, поскольку эта память может быть освобождена подобно кэшу страниц ОС. Кэш сбрасывается (файлы закрываются) автоматически при удалении старых частей в таблицах семейства MergeTree, также его можно сбросить вручную запросом SYSTEM DROP MMAP CACHE.

Этот параметр можно изменять во время работы сервера и изменения вступают в силу немедленно.

mutation_workload

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

См. также

mysql_port

Порт для обмена данными с клиентами по протоколу MySQL.

Примечание
  • Положительные целые числа задают номер порта для прослушивания (ожидания входящих соединений)
  • Пустое значение используется для отключения обмена данными с клиентами по протоколу MySQL.

Пример

<mysql_port>9004</mysql_port>

mysql_require_secure_transport

Если установлено значение true, для клиентских подключений через mysql_port требуется защищённое соединение. Подключения с опцией <--ssl-mode=none> будут отклонены. Используйте вместе с настройками OpenSSL.

mysql_require_secure_transport

Если значение параметра — true, для клиентов на mysql_port требуется защищённое соединение. Подключения с опцией --ssl-mode=none будут отклоняться. Используйте этот параметр вместе с настройками OpenSSL.

oom_score

В системах Linux этот параметр может управлять работой OOM-killer.

openSSL

Настройка SSL-клиента и сервера.

Поддержка SSL обеспечивается библиотекой libpoco. Доступные параметры настройки описаны в SSLManager.h. Значения по умолчанию можно найти в SSLManager.cpp.

Ключи настроек сервера и клиента:

ПараметрОписаниеЗначение по умолчанию
privateKeyFileПуть к файлу с закрытым ключом PEM-сертификата. Файл может одновременно содержать как ключ, так и сертификат.
certificateFileПуть к файлу сертификата клиента/сервера в формате PEM. Можно не указывать, если privateKeyFile содержит сертификат.
caConfigПуть к файлу или каталогу, содержащему доверенные сертификаты центра сертификации (CA). Если указан файл, он должен быть в формате PEM и может содержать несколько сертификатов CA. Если указан каталог, он должен содержать по одному файлу .pem на каждый сертификат CA. Имена файлов определяются по хеш-значению имени субъекта CA. Подробности можно найти на man-странице SSL_CTX_load_verify_locations.
verificationModeСпособ проверки сертификатов узла. Подробности см. в описании класса Context. Возможные значения: none, relaxed, strict, once.relaxed
verificationDepthМаксимальная длина цепочки проверки сертификатов. Проверка завершится ошибкой, если длина цепочки сертификатов превысит заданное значение.9
loadDefaultCAFileБудут ли использоваться встроенные сертификаты ЦС для OpenSSL. ClickHouse предполагает, что встроенные сертификаты ЦС находятся в файле /etc/ssl/cert.pem (или, соответственно, в каталоге /etc/ssl/certs), либо в файле (соответственно, каталоге), указанном в переменной окружения SSL_CERT_FILE (соответственно, SSL_CERT_DIR).true
cipherListСписок поддерживаемых шифров OpenSSL.ALL:!ADH:!LOW:!EXP:!MD5:!3DES:@STRENGTH
cacheSessionsВключает или отключает кэширование сеансов. Параметр должен использоваться совместно с sessionIdContext. Допустимые значения: true, false.false
sessionIdContextУникальный набор случайных символов, который сервер добавляет к каждому сгенерированному идентификатору. Длина строки не должна превышать SSL_MAX_SSL_SESSION_ID_LENGTH. Настоятельно рекомендуется задавать этот параметр, так как он помогает избежать проблем как при кэшировании сеансов на стороне сервера, так и когда клиент запрашивает кэширование.$\{application.name\}
sessionCacheSizeМаксимальное число сеансов, кэшируемых сервером. Значение 0 означает неограниченное число сеансов.1024*20
sessionTimeoutВремя, в течение которого сервер кеширует сессию (в часах).2
extendedVerificationЕсли параметр включён, проверяется, что CN или SAN сертификата совпадает с именем хоста узла-партнёра.false
requireTLSv1Требовать соединение по протоколу TLSv1. Допустимые значения: true, false.false
requireTLSv1_1Требовать подключение по TLSv1.1. Допустимые значения: true, false.false
requireTLSv1_2Требовать соединение по TLSv1.2. Допустимые значения: true, false.false
fipsАктивирует режим OpenSSL FIPS. Поддерживается, если используемая версия библиотеки OpenSSL поддерживает FIPS.false
privateKeyPassphraseHandlerКласс (подкласс PrivateKeyPassphraseHandler), запрашивающий парольную фразу для доступа к закрытому ключу. Например: <privateKeyPassphraseHandler>, <name>KeyFileHandler</name>, <options><password>test</password></options>, </privateKeyPassphraseHandler>.KeyConsoleHandler
invalidCertificateHandlerКласс (подкласс CertificateHandler) для обработки недействительных сертификатов. Например: <invalidCertificateHandler> <name>RejectCertificateHandler</name> </invalidCertificateHandler> .RejectCertificateHandler
disableProtocolsПротоколы, использование которых запрещено.
preferServerCiphersСерверные шифры, предпочитаемые клиентом.false

Пример настроек:

<openSSL>
    <server>
        <!-- openssl req -subj "/CN=localhost" -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/clickhouse-server/server.key -out /etc/clickhouse-server/server.crt -->
        <certificateFile>/etc/clickhouse-server/server.crt</certificateFile>
        <privateKeyFile>/etc/clickhouse-server/server.key</privateKeyFile>
        <!-- openssl dhparam -out /etc/clickhouse-server/dhparam.pem 4096 -->
        <dhParamsFile>/etc/clickhouse-server/dhparam.pem</dhParamsFile>
        <verificationMode>none</verificationMode>
        <loadDefaultCAFile>true</loadDefaultCAFile>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
    </server>
    <client>
        <loadDefaultCAFile>true</loadDefaultCAFile>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
        <!-- Use for self-signed: <verificationMode>none</verificationMode> -->
        <invalidCertificateHandler>
            <!-- Use for self-signed: <name>AcceptCertificateHandler</name> -->
            <name>RejectCertificateHandler</name>
        </invalidCertificateHandler>
    </client>
</openSSL>

openSSL.client.caConfig

Путь к файлу или каталогу, содержащему доверенные сертификаты центра сертификации (CA). Если указано имя файла, он должен быть в формате PEM и может содержать несколько сертификатов CA. Если указан каталог, он должен содержать по одному файлу с расширением .pem на каждый сертификат CA. Имена файлов подбираются по хешу имени субъекта CA. Подробности можно найти на man-странице SSL_CTX_load_verify_locations.

openSSL.client.cacheSessions

Включает или отключает кэширование сеансов. Должен использоваться в сочетании с <sessionIdContext>. Допустимые значения: <true>, <false>.

openSSL.client.certificateFile

Путь к файлу сертификата клиента/сервера в формате PEM. Этот параметр можно не указывать, если в <privateKeyFile> содержится сертификат.

openSSL.client.cipherList

Поддерживаемые шифры OpenSSL.

openSSL.client.disableProtocols

Протоколы, использование которых запрещено.

openSSL.client.extendedVerification

Если параметр включён, проверяется, что значение поля CN или SAN сертификата соответствует имени хоста узла.

openSSL.client.fips

Активирует режим OpenSSL FIPS. Поддерживается, если версия библиотеки OpenSSL поддерживает FIPS.

openSSL.client.invalidCertificateHandler.name

Класс (подкласс CertificateHandler) для обработки недействительных сертификатов. Например: <<invalidCertificateHandler> <name>RejectCertificateHandler</name> </invalidCertificateHandler>>.

openSSL.client.loadDefaultCAFile

Определяет, следует ли использовать встроенные CA-сертификаты для OpenSSL. ClickHouse по умолчанию считает, что встроенные CA-сертификаты находятся в файле </etc/ssl/cert.pem> (соответственно, в каталоге </etc/ssl/certs>) либо в файле (соответственно, каталоге), указанном в переменной окружения <SSL_CERT_FILE> (соответственно, <SSL_CERT_DIR>).

openSSL.client.preferServerCiphers

Шифры сервера в порядке, предпочитаемом клиентом.

openSSL.client.privateKeyFile

Путь к файлу с закрытым ключом PEM-сертификата. Файл может одновременно содержать как ключ, так и сертификат.

openSSL.client.privateKeyPassphraseHandler.name

Класс (подкласс PrivateKeyPassphraseHandler), который запрашивает парольную фразу для доступа к закрытому ключу. Например: <<privateKeyPassphraseHandler>>, <<name>KeyFileHandler</name>>, <<options><password>test</password></options>>, <</privateKeyPassphraseHandler>>

openSSL.client.requireTLSv1

Требует соединения по TLSv1. Допустимые значения: <true>, <false>.

openSSL.client.requireTLSv1_1

Требует соединения по TLSv1.1. Допустимые значения: <true>, <false>.

openSSL.client.requireTLSv1_2

Требует соединения по TLSv1.2. Допустимые значения: <true>, <false>.

openSSL.client.verificationDepth

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

openSSL.client.verificationMode

Способ проверки сертификатов узла. Подробности приведены в описании класса Context. Возможные значения: <none>, <relaxed>, <strict>, <once>.

openSSL.server.caConfig

Путь к файлу или каталогу, содержащему доверенные сертификаты центров сертификации (CA). Если указан файл, он должен быть в формате PEM и может содержать несколько сертификатов CA. Если указан каталог, он должен содержать по одному файлу .pem на каждый сертификат CA. Имена файлов подбираются по хешу имени субъекта CA. Подробности можно найти на справочной странице man для SSL_CTX_load_verify_locations.

openSSL.server.cacheSessions

Включает или отключает кэширование сеансов. Должен использоваться в сочетании с <sessionIdContext>. Допустимые значения: <true>, <false>.

openSSL.server.certificateFile

Путь к файлу сертификата клиента/сервера в формате PEM. Можно не указывать, если <privateKeyFile> содержит сертификат.

openSSL.server.cipherList

Поддерживаемые наборы шифров OpenSSL.

openSSL.server.disableProtocols

Протоколы, использование которых запрещено.

openSSL.server.extendedVerification

Если параметр включён, проверяется, что CN или SAN в сертификате совпадает с именем хоста удалённого узла.

openSSL.server.fips

Активирует режим OpenSSL FIPS. Поддерживается, если версия библиотеки OpenSSL поддерживает FIPS.

openSSL.server.invalidCertificateHandler.name

Класс (подкласс CertificateHandler), используемый для обработки недействительных сертификатов. Например: <<invalidCertificateHandler> <name>RejectCertificateHandler</name> </invalidCertificateHandler>>.

openSSL.server.loadDefaultCAFile

Определяет, будут ли использоваться встроенные CA‑сертификаты для OpenSSL. ClickHouse предполагает, что встроенные CA‑сертификаты находятся в файле </etc/ssl/cert.pem> (соответственно, в каталоге </etc/ssl/certs>) или в файле (соответственно, каталоге), указанном в переменной окружения <SSL_CERT_FILE> (соответственно, <SSL_CERT_DIR>).

openSSL.server.preferServerCiphers

Серверные шифры, выбираемые в соответствии с предпочтениями клиента.

openSSL.server.privateKeyFile

Путь к файлу с закрытым ключом PEM‑сертификата. Файл может одновременно содержать и ключ, и сертификат.

openSSL.server.privateKeyPassphraseHandler.name

Класс (наследник PrivateKeyPassphraseHandler), который запрашивает парольную фразу для доступа к закрытому ключу. Например: <<privateKeyPassphraseHandler>>, <<name>KeyFileHandler</name>>, <<options><password>test</password></options>>, <</privateKeyPassphraseHandler>>

openSSL.server.requireTLSv1

Требует соединения по протоколу TLSv1. Допустимые значения: <true>, <false>.

openSSL.server.requireTLSv1_1

Требует соединения TLSv1.1. Допустимые значения: <true>, <false>.

openSSL.server.requireTLSv1_2

Требует соединения по протоколу TLSv1.2. Допустимые значения: <true>, <false>.

openSSL.server.sessionCacheSize

Максимальное число сеансов, которые сервер может кэшировать. Значение 0 означает неограниченное количество сеансов.

openSSL.server.sessionIdContext

Уникальная последовательность случайных символов, которую сервер добавляет к каждому сгенерированному идентификатору. Длина строки не должна превышать <SSL_MAX_SSL_SESSION_ID_LENGTH>. Настоятельно рекомендуется всегда задавать этот параметр, поскольку он помогает избежать проблем как при кэшировании сеанса на сервере, так и при запросе кэширования со стороны клиента.

openSSL.server.sessionTimeout

Время кэширования сеанса на сервере в часах.

openSSL.server.verificationDepth

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

openSSL.server.verificationMode

Метод проверки сертификатов узла. Подробности см. в описании класса Context. Возможные значения: <none>, <relaxed>, <strict>, <once>.

opentelemetry_span_log

Настройки системной таблицы opentelemetry_span_log.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Пример:

<opentelemetry_span_log>
    <engine>
        engine MergeTree
        partition by toYYYYMM(finish_date)
        order by (finish_date, finish_time_us, trace_id)
    </engine>
    <database>system</database>
    <table>opentelemetry_span_log</table>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</opentelemetry_span_log>

os_collect_psi_metrics

Включить сбор метрик PSI из файлов /proc/pressure/.

os_cpu_busy_time_threshold

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

os_threads_nice_value_distributed_cache_tcp_handler

Значение nice в Linux для потоков обработчика TCP распределённого кэша. Чем меньше значение, тем выше приоритет по ЦП.

Требуются права CAP_SYS_NICE, иначе параметр не оказывает эффекта (no-op).

Возможные значения: от -20 до 19.

os_threads_nice_value_merge_mutate

Значение nice в Linux для потоков слияния и мутаций. Более низкие значения означают более высокий приоритет для CPU.

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

Возможные значения: от -20 до 19.

os_threads_nice_value_zookeeper_client_send_receive

Значение nice в Linux для потоков отправки и приёма в клиенте ZooKeeper. Более низкие значения означают более высокий приоритет по ЦП.

Требуется capability CAP_SYS_NICE, в противном случае параметр не оказывает эффекта.

Возможные значения: от -20 до 19.

page_cache_free_memory_ratio

Доля лимита памяти, которую следует резервировать, не используя под пользовательский кэш страниц (userspace page cache). Аналогично параметру Linux min_free_kbytes.

page_cache_history_window_ms

Задержка перед тем, как освобождённая память может быть использована кэшем страниц в пространстве пользователя.

page_cache_max_size

Максимальный размер кэша страниц в пользовательском пространстве. Установите 0, чтобы отключить кэш. Если значение больше page_cache_min_size, размер кэша будет динамически изменяться в этих пределах, чтобы использовать большую часть доступной памяти, при этом удерживая общее потребление памяти ниже лимита (max_server_memory_usage[_to_ram_ratio]).

page_cache_min_size

Минимальный размер кэша страниц в пространстве пользователя.

page_cache_policy

Имя политики кеша страниц в пространстве пользователя.

page_cache_shards

Распределяет пользовательский кэш страниц (userspace page cache) по указанному числу сегментов, чтобы уменьшить конкуренцию за мьютексы. Экспериментальная опция, маловероятно, что она даст прирост производительности.

page_cache_size_ratio

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

part_log

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

Запросы записываются в таблицу system.part_log, а не в отдельный файл. Имя этой таблицы можно настроить с помощью параметра table (см. ниже).

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Пример

<part_log>
    <database>system</database>
    <table>part_log</table>
    <partition_by>toMonday(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</part_log>

parts_kill_delay_period

Период, через который полностью удаляются части для SharedMergeTree. Доступно только в ClickHouse Cloud.

parts_kill_delay_period_random_add

Добавляет к параметру kill_delay_period равномерно распределённое значение от 0 до x секунд, чтобы избежать эффекта «thundering herd» и последующей DoS-атаки на ZooKeeper при очень большом количестве таблиц. Этот параметр доступен только в ClickHouse Cloud.

parts_killer_pool_size

Потоки для очистки устаревших частей в общем хранилище SharedMergeTree. Доступно только в ClickHouse Cloud

path

Путь к каталогу, содержащему данные.

Примечание

Конечный слэш обязателен.

Пример

<path>/var/lib/clickhouse/</path>

path

Путь к каталогу, содержащему данные.

Примечание

Слеш в конце пути обязателен.

Пример

<path>/var/lib/clickhouse/</path>

postgresql_port

Порт для взаимодействия с клиентами по протоколу PostgreSQL.

Примечание
  • Положительные целые числа указывают номер порта для прослушивания.
  • Пустые значения используются для отключения взаимодействия с клиентами по протоколу PostgreSQL.

Пример

<postgresql_port>9005</postgresql_port>

postgresql_require_secure_transport

Если установлено значение true, для работы с клиентами по postgresql_port требуется защищённое соединение. Подключение с опцией <sslmode=disable> будет отклонено. Используйте совместно с настройками OpenSSL.

postgresql_require_secure_transport

Если имеет значение true, для взаимодействия с клиентами через postgresql_port требуется защищённое соединение. Подключения с опцией sslmode=disable будут отклоняться. Используйте этот параметр совместно с настройками OpenSSL.

prefetch_threadpool_pool_size

Размер фонового пула для предварительного чтения (prefetch) из удалённых объектных хранилищ

prefetch_threadpool_queue_size

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

prefixes_deserialization_thread_pool_thread_pool_queue_size

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

Примечание

Значение 0 означает отсутствие ограничения.

prepare_system_log_tables_on_startup

Если значение равно true, ClickHouse создает все настроенные таблицы system.*_log перед запуском сервера. Это может быть полезно, если некоторые скрипты инициализации зависят от этих таблиц.

primary_index_cache_policy

Название политики кэширования первичного индекса.

primary_index_cache_prewarm_ratio

Доля общего размера кэша меток, которую нужно заполнить при предварительном прогреве.

primary_index_cache_size

Максимальный размер кэша первичного индекса (индекса семейства таблиц MergeTree).

primary_index_cache_size_ratio

Размер защищённой очереди (при использовании политики SLRU) в кэше первичного индекса по отношению к общему размеру кэша.

process_query_plan_packet

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

Пример

<process_query_plan_packet>true</process_query_plan_packet>

processors_profile_log

Настройки системной таблицы processors_profile_log.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Настройки по умолчанию:

<processors_profile_log>
    <database>system</database>
    <table>processors_profile_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</processors_profile_log>

prometheus

Публикация данных метрик для опроса системой Prometheus.

Настройки:

  • endpoint – HTTP-эндпоинт для сбора метрик сервером Prometheus. Должен начинаться с '/'.
  • port – Порт для endpoint.
  • metrics – Публиковать метрики из таблицы system.metrics.
  • events – Публиковать метрики из таблицы system.events.
  • asynchronous_metrics – Публиковать текущие значения метрик из таблицы system.asynchronous_metrics.
  • errors - Публиковать число ошибок по кодам ошибок, произошедших с момента последнего перезапуска сервера. Эти данные также можно получить из таблицы system.errors.

Пример

<clickhouse>
    <listen_host>0.0.0.0</listen_host>
    <http_port>8123</http_port>
    <tcp_port>9000</tcp_port>
    <!-- highlight-start -->
    <prometheus>
        <endpoint>/metrics</endpoint>
        <port>9363</port>
        <metrics>true</metrics>
        <events>true</events>
        <asynchronous_metrics>true</asynchronous_metrics>
        <errors>true</errors>
    </prometheus>
    <!-- highlight-end -->
</clickhouse>

Проверьте, заменив 127.0.0.1 на IP-адрес или имя хоста сервера ClickHouse:

curl 127.0.0.1:9363/metrics

prometheus.keeper_metrics_only

Экспортировать метрики, относящиеся к ClickHouse Keeper

proxy

Определите прокси‑серверы для HTTP‑ и HTTPS‑запросов, в настоящее время поддерживаемые хранилищем S3, табличными функциями S3 и функциями URL.

Есть три способа задать прокси‑серверы:

  • переменные окружения
  • списки прокси
  • удалённые резолверы прокси.

Обход прокси‑серверов для конкретных хостов также поддерживается с помощью no_proxy.

Переменные окружения

Переменные окружения http_proxy и https_proxy позволяют указать прокси‑сервер для данного протокола. Если они заданы в вашей системе, всё должно работать прозрачно.

Это самый простой подход, если для данного протокола есть только один прокси‑сервер и этот прокси‑сервер не меняется.

Списки прокси

Этот подход позволяет указать один или несколько прокси‑серверов для протокола. Если задано более одного прокси‑сервера, ClickHouse использует различные прокси по очереди (round‑robin), распределяя нагрузку между серверами. Это самый простой подход, если для протокола существует более одного прокси‑сервера и список прокси‑серверов не меняется.

Шаблон конфигурации

<proxy>
    <http>
        <uri>http://proxy1</uri>
        <uri>http://proxy2:3128</uri>
    </http>
    <https>
        <uri>http://proxy1:3128</uri>
    </https>
</proxy>

Выберите родительское поле во вкладках ниже, чтобы просмотреть их дочерние элементы:

ПолеОписание
<http>Список одного или нескольких HTTP-прокси
<https>Список одного или нескольких HTTPS-прокси

Удалённые резолверы прокси

Прокси-серверы могут динамически меняться. В этом случае можно определить конечную точку (endpoint) резолвера. ClickHouse отправляет пустой запрос GET на эту конечную точку, а удалённый резолвер должен вернуть хост прокси. ClickHouse использует его для формирования URI прокси по следующему шаблону: \{proxy_scheme\}://\{proxy_host\}:{proxy_port}

Шаблон конфигурации

<proxy>
    <http>
        <resolver>
            <endpoint>http://resolver:8080/hostname</endpoint>
            <proxy_scheme>http</proxy_scheme>
            <proxy_port>80</proxy_port>
            <proxy_cache_time>10</proxy_cache_time>
        </resolver>
    </http>

    <https>
        <resolver>
            <endpoint>http://resolver:8080/hostname</endpoint>
            <proxy_scheme>http</proxy_scheme>
            <proxy_port>3128</proxy_port>
            <proxy_cache_time>10</proxy_cache_time>
        </resolver>
    </https>

</proxy>

Выберите родительское поле на вкладках ниже, чтобы просмотреть его дочерние элементы:

ПолеОписание
<http>Список из одного или нескольких резолверов*
<https>Список из одного или нескольких резолверов*

Приоритет

Настройки прокси определяются в следующем порядке:

ПорядокПараметр
1.Удалённые прокси-резолверы
2.Списки прокси-серверов
3.Переменные окружения

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

query_cache

Конфигурация кэша запросов.

Доступны следующие настройки:

SettingDescriptionDefault Value
max_size_in_bytesМаксимальный размер кэша в байтах. Значение 0 означает, что кэш запросов отключен.1073741824
max_entriesМаксимальное число результатов запросов SELECT, сохраняемых в кэше.1024
max_entry_size_in_bytesМаксимальный размер в байтах результатов запросов SELECT, которые могут быть сохранены в кэше.1048576
max_entry_size_in_rowsМаксимальное количество строк в результатах запросов SELECT, которые могут быть сохранены в кэше.30000000
Примечание
  • Изменённые настройки вступают в силу немедленно.
  • Память под данные кэша запросов выделяется в DRAM. Если память ограничена, установите небольшое значение для max_size_in_bytes или полностью отключите кэш запросов.

Пример

<query_cache>
    <max_size_in_bytes>1073741824</max_size_in_bytes>
    <max_entries>1024</max_entries>
    <max_entry_size_in_bytes>1048576</max_entry_size_in_bytes>
    <max_entry_size_in_rows>30000000</max_entry_size_in_rows>
</query_cache>

query_cache.max_entries

Максимальное количество результатов запросов SELECT, хранящихся в кэше.

query_cache.max_entry_size_in_bytes

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

query_cache.max_entry_size_in_rows

Максимальное количество строк в результатах запроса SELECT, которые могут быть сохранены в кэше.

query_cache.max_size_in_bytes

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

query_condition_cache_policy

Имя политики кэша условий запроса.

query_condition_cache_size

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

Примечание

Этот параметр можно изменить во время работы, и изменение вступит в силу немедленно.

query_condition_cache_size_ratio

Размер защищённой очереди (в случае политики SLRU) в кэше условий запроса по отношению к общему размеру кэша.

query_log

Настройка для логирования запросов, полученных при включённой настройке log_queries=1.

Запросы записываются в таблицу system.query_log, а не в отдельный файл. Вы можете изменить имя таблицы с помощью параметра table (см. ниже).

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

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

Пример

<query_log>
    <database>system</database>
    <table>query_log</table>
    <engine>Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day</engine>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</query_log>

query_masking_rules

Основанные на регулярных выражениях правила, которые будут применяться к запросам, а также ко всем сообщениям журналов перед их сохранением в серверные журналы, таблицы system.query_log, system.text_log, system.processes и в журналы, отправляемые клиенту. Это позволяет предотвратить утечку конфиденциальных данных из SQL-запросов, таких как имена, адреса электронной почты, персональные идентификаторы или номера кредитных карт, в журналы.

Пример

<query_masking_rules>
    <rule>
        <name>hide SSN</name>
        <regexp>(^|\D)\d{3}-\d{2}-\d{4}($|\D)</regexp>
        <replace>000-00-0000</replace>
    </rule>
</query_masking_rules>

Поля конфигурации:

SettingDescription
nameимя правила (необязательно)
regexpрегулярное выражение, совместимое с RE2 (обязательно)
replaceстрока подстановки для конфиденциальных данных (необязательно, по умолчанию — шесть звездочек)

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

В таблице system.events есть счётчик QueryMaskingRulesMatch, который содержит общее число срабатываний правил маскирования запросов.

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

query_metric_log

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

Включение

Чтобы вручную включить сбор истории метрик system.query_metric_log, создайте /etc/clickhouse-server/config.d/query_metric_log.xml со следующим содержимым:

<clickhouse>
    <query_metric_log>
        <database>system</database>
        <table>query_metric_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <collect_interval_milliseconds>1000</collect_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
    </query_metric_log>
</clickhouse>

Отключение

Чтобы отключить настройку query_metric_log, необходимо создать файл /etc/clickhouse-server/config.d/disable_query_metric_log.xml со следующим содержимым:

<clickhouse>
    <query_metric_log remove="1" />
</clickhouse>

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

query_thread_log

Настройка для логирования потоков запросов при включённой настройке log_query_threads=1.

Запросы логируются в таблицу system.query_thread_log, а не в отдельный файл. Вы можете изменить имя таблицы с помощью параметра table (см. ниже).

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Если таблица не существует, ClickHouse создаст её. Если структура журнала потоков запросов изменилась при обновлении сервера ClickHouse, таблица со старой структурой будет переименована, а новая — создана автоматически.

Пример

<query_thread_log>
    <database>system</database>
    <table>query_thread_log</table>
    <partition_by>toMonday(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</query_thread_log>

query_views_log

Настройка ведения журнала представлений (live, materialized и т. д.), управление которой осуществляется параметром log_query_views=1.

Запросы записываются в таблицу system.query_views_log, а не в отдельный файл. Вы можете изменить имя таблицы с помощью параметра table (см. ниже).

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

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

Пример

<query_views_log>
    <database>system</database>
    <table>query_views_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
</query_views_log>

remap_executable

Настройка для переразмещения памяти под машинный код ("text") с использованием больших страниц.

Примечание

Это крайне экспериментальная функция.

Пример

<remap_executable>false</remap_executable>

remap_executable

Настройка для перераспределения памяти под машинный код (сегмент "text") с использованием больших страниц.

Примечание

Эта функция является крайне экспериментальной.

Пример:

<remap_executable>false</remap_executable>

remote_servers

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

Пример

<remote_servers incl="clickhouse_remote_servers" />

Значение атрибута incl см. в разделе "Конфигурационные файлы".

См. также

remote_url_allow_hosts

Список хостов, которые разрешено использовать в движках хранения и табличных функциях, работающих с URL.

При добавлении хоста с xml-тегом \<host\>:

  • он должен быть указан в точности так же, как в URL, поскольку имя проверяется до разрешения DNS-имени. Например: <host>clickhouse.com</host>
  • если порт явно указан в URL, то проверяется пара host:port целиком. Например: <host>clickhouse.com:80</host>
  • если хост указан без порта, то разрешён любой порт данного хоста. Например: если указан <host>clickhouse.com</host>, то clickhouse.com:20 (FTP), clickhouse.com:80 (HTTP), clickhouse.com:443 (HTTPS) и т. д. разрешены.
  • если хост указан как IP-адрес, то он проверяется так, как указан в URL. Например: [2a02:6b8:a::a].
  • если есть перенаправления и поддержка перенаправлений включена, то каждое перенаправление (поле location) проверяется.

Например:

<remote_url_allow_hosts>
    <host>clickhouse.com</host>
</remote_url_allow_hosts>

replica_group_name

Имя группы реплик для базы данных Replicated.

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

По умолчанию — пустое значение.

Пример

<replica_group_name>backups</replica_group_name>

replicated_fetches_http_connection_timeout

Таймаут HTTP-соединения для запросов на выборку частей. Наследуется из профиля по умолчанию http_connection_timeout, если не задан явно.

replicated_fetches_http_receive_timeout

Таймаут ожидания получения HTTP-ответа для запросов на получение кусков данных. Наследуется от профиля по умолчанию http_receive_timeout, если не задан явно.

replicated_fetches_http_send_timeout

Тайм-аут отправки HTTP-запросов при получении частей. Наследуется из профиля по умолчанию http_send_timeout, если не задан явно.

replicated_merge_tree

Тонкая настройка для таблиц в ReplicatedMergeTree. Этот параметр имеет более высокий приоритет.

Для получения дополнительной информации см. заголовочный файл MergeTreeSettings.h.

Пример

<replicated_merge_tree>
    <max_suspicious_broken_parts>5</max_suspicious_broken_parts>
</replicated_merge_tree>

restore_threads

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

s3_credentials_provider_max_cache_size

Максимальное число провайдеров учётных данных S3, которые могут храниться в кэше

s3_max_redirects

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

s3_retry_attempts

Параметр для Aws::Client::RetryStrategy; повторные попытки выполняются самим Aws::Client, 0 — без повторных попыток

s3queue_disable_streaming

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

s3queue_log

Параметры системной таблицы s3queue_log.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Параметры по умолчанию:

<s3queue_log>
    <database>system</database>
    <table>s3queue_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
</s3queue_log>

send_crash_reports

Настройки отправки отчётов о сбоях команде разработчиков ядра ClickHouse.

Включение этой функции, особенно в предпродакшн-средах, крайне приветствуется.

Ключи:

KeyDescription
enabledЛогический флаг для включения функции, по умолчанию true. Установите в false, чтобы отключить отправку отчётов о сбоях.
send_logical_errorsLOGICAL_ERROR похожа на assert: это ошибка в ClickHouse. Этот логический флаг включает отправку таких исключений (по умолчанию: true).
endpointВы можете переопределить URL конечной точки для отправки отчётов о сбоях.

Рекомендуемое использование

<send_crash_reports>
    <enabled>true</enabled>
</send_crash_reports>

series_keeper_path

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

show_addresses_in_stack_traces

Если параметр имеет значение true, в трассировках стека отображаются адреса

shutdown_wait_backups_and_restores

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

shutdown_wait_unfinished

Время ожидания незавершённых запросов в секундах

shutdown_wait_unfinished_queries

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

skip_binary_checksum_checks

Пропускает проверки целостности контрольных сумм исполняемого файла ClickHouse

skip_check_for_incorrect_settings

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

Пример

<skip_check_for_incorrect_settings>1</skip_check_for_incorrect_settings>

ssh_server

Публичная часть ключа хоста будет записана в файл known_hosts на стороне SSH-клиента при первом подключении.

Настройки ключа хоста по умолчанию неактивны. Раскомментируйте настройки ключа хоста и укажите путь к соответствующему SSH-ключу, чтобы их активировать:

Пример:

<ssh_server>
    <host_rsa_key>path_to_the_ssh_key</host_rsa_key>
    <host_ecdsa_key>path_to_the_ssh_key</host_ecdsa_key>
    <host_ed25519_key>path_to_the_ssh_key</host_ed25519_key>
</ssh_server>

startup_mv_delay_ms

Отладочный параметр для моделирования задержки при создании материализованного представления

startup_scripts.throw_on_error

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

storage_configuration

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

Конфигурация хранилища имеет следующую структуру:

<storage_configuration>
    <disks>
        <!-- configuration -->
    </disks>
    <policies>
        <!-- configuration -->
    </policies>
</storage_configuration>

Настройка дисков

Настройка disks имеет следующую структуру:

<storage_configuration>
    <disks>
        <disk_name_1>
            <path>/mnt/fast_ssd/clickhouse/</path>
        </disk_name_1>
        <disk_name_2>
            <path>/mnt/hdd1/clickhouse/</path>
            <keep_free_space_bytes>10485760</keep_free_space_bytes>
        </disk_name_2>
        <disk_name_3>
            <path>/mnt/hdd2/clickhouse/</path>
            <keep_free_space_bytes>10485760</keep_free_space_bytes>
        </disk_name_3>
        ...
    </disks>
</storage_configuration>

Подтеги, приведённые выше, определяют следующие настройки для disks:

ПараметрОписание
<disk_name_N>Имя диска, которое должно быть уникальным.
pathПуть, по которому будут храниться данные сервера (каталоги data и shadow). Должен заканчиваться на /.
keep_free_space_bytesРазмер зарезервированного свободного места на диске.
Примечание

Порядок дисков не имеет значения.

Конфигурация политик

Подтеги выше определяют следующие настройки для policies:

ПараметрОписание
policy_name_NИмя политики. Имена политик должны быть уникальными.
volume_name_NИмя тома. Имена томов должны быть уникальными.
diskДиск, расположенный внутри тома.
max_data_part_size_bytesМаксимальный размер фрагмента данных, который может находиться на любом из дисков в этом томе. Если результат слияния приводит к ожидаемому размеру фрагмента, превышающему max_data_part_size_bytes, фрагмент будет записан в следующий том. По сути, эта функция позволяет хранить новые / небольшие фрагменты на горячем (SSD) томе и перемещать их на холодный (HDD) том, когда они достигают большого размера. Не используйте эту опцию, если в политике только один том.
move_factorДоля доступного свободного пространства на томе. Если пространства становится меньше, данные начнут переноситься на следующий том, если он существует. Для переноса фрагменты сортируются по размеру от большего к меньшему (по убыванию) и выбираются фрагменты, суммарный размер которых достаточен для удовлетворения условия move_factor; если суммарный размер всех фрагментов недостаточен, будут перенесены все фрагменты.
perform_ttl_move_on_insertОтключает перемещение данных с истёкшим TTL при вставке. По умолчанию (если включено), если мы вставляем часть данных, срок жизни которой уже истёк в соответствии с правилом перемещения по времени жизни, она немедленно перемещается на том / диск, указанный в правиле перемещения. Это может существенно замедлить вставку, если целевой том / диск медленный (например, S3). Если опция отключена, просроченная часть данных записывается на том по умолчанию, а затем немедленно перемещается на том, указанный в правиле для истёкшего TTL.
load_balancingПолитика балансировки дисков: round_robin или least_used.
least_used_ttl_msУстанавливает таймаут (в миллисекундах) для обновления доступного пространства на всех дисках (0 — всегда обновлять, -1 — никогда не обновлять, значение по умолчанию — 60000). Обратите внимание: если диск используется только ClickHouse и не будет подвержен динамическому изменению размера файловой системы, вы можете использовать значение -1. Во всех остальных случаях это не рекомендуется, так как в итоге приведёт к некорректному распределению пространства.
prefer_not_to_mergeОтключает слияние частей данных на этом томе. Примечание: это потенциально опасно и может вызвать замедление. Когда этот параметр включён (не делайте этого), слияние данных на этом томе запрещено (что плохо). Это позволяет контролировать, как ClickHouse взаимодействует с медленными дисками. Мы рекомендуем вообще не использовать эту настройку.
volume_priorityОпределяет приоритет (порядок), в котором заполняются тома. Чем меньше значение, тем выше приоритет. Значения параметра должны быть натуральными числами и покрывать диапазон от 1 до N (где N — наибольшее указанное значение параметра) без пропусков.

Для volume_priority:

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

storage_connections_hard_limit

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

storage_connections_soft_limit

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

storage_connections_store_limit

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

storage_connections_warn_limit

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

storage_metadata_write_full_object_key

Записывать файлы метаданных диска в формате VERSION_FULL_OBJECT_KEY. Включено по умолчанию. Настройка устарела.

storage_shared_set_join_use_inner_uuid

Если параметр включён, при создании SharedSet и SharedJoin генерируется внутренний UUID. Только для ClickHouse Cloud.

table_engines_require_grant

Если установлено в значение true, пользователям требуется GRANT для создания таблицы с определённым табличным движком, например: GRANT TABLE ENGINE ON TinyLog to user.

Примечание

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

tables_loader_background_pool_size

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

Примечание

Значение 0 означает, что будут использоваться все доступные CPU.

tables_loader_foreground_pool_size

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

Примечание

Значение 0 означает, что будут использованы все доступные ядра CPU.

tcp_close_connection_after_queries_num

Максимальное количество запросов по одному TCP‑соединению, после которого соединение будет закрыто. Установите значение 0 для неограниченного числа запросов.

tcp_close_connection_after_queries_seconds

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

tcp_port

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

Пример

<tcp_port>9000</tcp_port>

tcp_port_secure

TCP-порт для защищённого взаимодействия с клиентами. Используйте его с настройками OpenSSL.

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

<tcp_port_secure>9440</tcp_port_secure>

tcp_ssh_port

Порт SSH-сервера, который позволяет пользователю подключаться и выполнять запросы в интерактивном режиме с использованием встроенного клиента по PTY.

Пример:

<tcp_ssh_port>9022</tcp_ssh_port>

temporary_data_in_cache

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

Примечание

Для настройки хранения временных данных можно использовать только одну из следующих опций: tmp_path, tmp_policy, temporary_data_in_cache.

Пример

И кэш для local_disk, и временные данные будут храниться в каталоге /tiny_local_cache файловой системы, управляемой tiny_local_cache.

<clickhouse>
<storage_configuration>
<disks>
<local_disk>
<type>local</type>
<path>/local_disk/</path>
</local_disk>

<!-- highlight-start -->
<tiny_local_cache>
<type>cache</type>
<disk>local_disk</disk>
<path>/tiny_local_cache/</path>
<max_size_rows>10M</max_size_rows>
<max_file_segment_size>1M</max_file_segment_size>
<cache_on_write_operations>1</cache_on_write_operations>
</tiny_local_cache>
<!-- highlight-end -->
</disks>
</storage_configuration>

<!-- highlight-start -->
<temporary_data_in_cache>tiny_local_cache</temporary_data_in_cache>
<!-- highlight-end -->
</clickhouse>

temporary_data_in_distributed_cache

Хранит временные данные в распределённом кэше.

text_index_dictionary_block_cache_max_entries

Размер кэша для блока словаря текстового индекса в элементах. Ноль — кэш отключён.

text_index_dictionary_block_cache_policy

Имя политики кэширования блоков словаря текстового индекса.

text_index_dictionary_block_cache_size

Размер кэша блоков словаря текстового индекса. Значение 0 означает, что кэш отключён.

Примечание

Этот параметр можно изменять во время работы сервера, и изменения вступают в силу немедленно.

text_index_dictionary_block_cache_size_ratio

Размер защищенной очереди (в случае политики SLRU) в кэше блоков словаря текстового индекса относительно общего размера кэша.

text_index_header_cache_max_entries

Размер кэша заголовка текстового индекса (в количестве элементов). Ноль отключает кэш.

text_index_header_cache_policy

Имя политики кэширования заголовков текстового индекса.

text_index_header_cache_size

Размер кэша заголовков текстового индекса. Ноль — отключено.

Примечание

Этот параметр можно изменить во время работы, и изменение вступит в силу немедленно.

text_index_header_cache_size_ratio

Размер защищённой очереди (при использовании политики SLRU) в кэше заголовков текстового индекса относительно общего размера кэша.

text_index_postings_cache_max_entries

Размер кэша списков вхождений текстового индекса (в записях). Значение 0 означает отключение.

text_index_postings_cache_policy

Имя политики кэширования списка постингов текстового индекса.

text_index_postings_cache_size

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

Примечание

Этот параметр можно изменить во время работы, и изменение вступит в силу немедленно.

text_index_postings_cache_size_ratio

Относительный размер защищённой очереди (в случае политики SLRU) в кэше списков вхождений текстового индекса по отношению к общему размеру этого кэша.

text_log

Настройки системной таблицы text_log для логирования текстовых сообщений.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Дополнительно:

SettingDescriptionDefault Value
levelМаксимальный уровень сообщений (по умолчанию Trace), которые будут записываться в таблицу.Trace

Пример

<clickhouse>
    <text_log>
        <level>notice</level>
        <database>system</database>
        <table>text_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
        <!-- <partition_by>event_date</partition_by> -->
        <engine>Engine = MergeTree PARTITION BY event_date ORDER BY event_time TTL event_date + INTERVAL 30 day</engine>
    </text_log>
</clickhouse>

thread_pool_queue_size

Максимальное количество задач, которые могут быть поставлены в очередь в глобальный пул потоков. Увеличение размера очереди приводит к большему потреблению памяти. Рекомендуется устанавливать это значение равным max_thread_pool_size.

Примечание

Значение 0 означает отсутствие ограничений.

Пример

<thread_pool_queue_size>12000</thread_pool_queue_size>

threadpool_local_fs_reader_pool_size

Количество потоков в пуле для чтения из локальной файловой системы, когда local_filesystem_read_method = 'pread_threadpool'.

threadpool_local_fs_reader_queue_size

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

threadpool_remote_fs_reader_pool_size

Количество потоков в пуле потоков, используемом для чтения из удалённой файловой системы при remote_filesystem_read_method = 'threadpool'.

threadpool_remote_fs_reader_queue_size

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

threadpool_writer_pool_size

Размер фонового пула для обработки запросов на запись в объектные хранилища

threadpool_writer_queue_size

Количество задач, которые можно поместить в фоновый пул для обработки запросов на запись в объектные хранилища

throw_on_unknown_workload

Определяет поведение при обращении к неизвестному WORKLOAD с параметром запроса 'workload'.

  • Если true, запрос, пытающийся обратиться к неизвестному WORKLOAD, завершится исключением RESOURCE_ACCESS_DENIED. Полезно для принудительного применения планирования ресурсов для всех запросов после того, как иерархия WORKLOAD сформирована и содержит WORKLOAD default.
  • Если false (значение по умолчанию), запросу с параметром 'workload', указывающим на неизвестный WORKLOAD, предоставляется неограниченный доступ без планирования ресурсов. Это важно при настройке иерархии WORKLOAD до того, как будет добавлен WORKLOAD default.

Пример

<throw_on_unknown_workload>true</throw_on_unknown_workload>

См. также

timezone

Часовой пояс сервера.

Указывается как идентификатор IANA для часового пояса UTC или географического региона (например, Africa/Abidjan).

Часовой пояс необходим для преобразований между форматами String и DateTime при выводе полей типа DateTime в текстовый формат (на экран или в файл), а также при получении значения DateTime из строки. Кроме того, часовой пояс используется в функциях, работающих с датой и временем, если часовой пояс не был передан во входных параметрах.

Пример

<timezone>Asia/Istanbul</timezone>

См. также

tmp_path

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

Примечание
  • Для настройки хранения временных данных можно использовать только один параметр: tmp_path, tmp_policy, temporary_data_in_cache.
  • Символ / в конце пути обязателен.

Пример

<tmp_path>/var/lib/clickhouse/tmp/</tmp_path>

tmp_path

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

Примечание
  • Для настройки хранилища временных данных можно использовать только один из вариантов: tmp_path, tmp_policy, temporary_data_in_cache.
  • Обязателен завершающий слэш.

Пример

<tmp_path>/var/lib/clickhouse/tmp/</tmp_path>

tmp_policy

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

Примечание

Рекомендации по использованию объектного хранилища в качестве tmp_policy:

  • Используйте отдельный bucket:path на каждом сервере
  • Используйте metadata_type=plain
  • Возможно, вы также захотите настроить TTL для этого bucket
Примечание
  • Для настройки хранилища временных данных может быть использован только один из вариантов: tmp_path, tmp_policy, temporary_data_in_cache.
  • Параметры move_factor, keep_free_space_bytes, max_data_part_size_bytes игнорируются.
  • Политика должна содержать ровно один том (volume)

Дополнительную информацию см. в документации по движку таблиц MergeTree.

Пример

Когда /disk1 заполнен, временные данные будут храниться на /disk2.

<clickhouse>
<storage_configuration>
<disks>
<disk1>
<path>/disk1/</path>
</disk1>
<disk2>
<path>/disk2/</path>
</disk2>
</disks>

<policies>
<!-- highlight-start -->
<tmp_two_disks>
<volumes>
<main>
<disk>disk1</disk>
<disk>disk2</disk>
</main>
</volumes>
</tmp_two_disks>
<!-- highlight-end -->
</policies>
</storage_configuration>

<!-- highlight-start -->
<tmp_policy>tmp_two_disks</tmp_policy>
<!-- highlight-end -->
</clickhouse>

top_level_domains_list

Определяет список добавляемых пользовательских доменов верхнего уровня, где каждая запись имеет формат <name>/path/to/file</name>.

Например:

<top_level_domains_lists>
    <public_suffix_list>/path/to/public_suffix_list.dat</public_suffix_list>
</top_level_domains_lists>

См. также:

  • функцию cutToFirstSignificantSubdomainCustom и её варианты, которая принимает на вход имя пользовательского списка TLD и возвращает часть домена, включающую поддомены верхнего уровня вплоть до первого значимого поддомена.

top_level_domains_path

Каталог, содержащий домены верхнего уровня.

Пример

<top_level_domains_path>/var/lib/clickhouse/top_level_domains/</top_level_domains_path>

total_memory_profiler_sample_max_allocation_size

Собирать случайные выделения памяти размером меньше либо равным указанному значению с вероятностью, равной total_memory_profiler_sample_probability. 0 означает, что параметр отключён. Имеет смысл установить max_untracked_memory в 0, чтобы этот порог работал как ожидается.

total_memory_profiler_sample_min_allocation_size

Случайным образом собирать выделения памяти размером не менее указанного значения с вероятностью total_memory_profiler_sample_probability. 0 означает, что функция отключена. Имеет смысл установить max_untracked_memory в 0, чтобы этот порог работал как ожидается.

total_memory_profiler_step

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

total_memory_tracker_sample_probability

Позволяет собирать случайные выделения и освобождения памяти и записывать их в системную таблицу system.trace_log с trace_type, равным MemorySample, с указанной вероятностью. Вероятность применяется к каждому выделению или освобождению памяти, вне зависимости от размера выделения. Обратите внимание, что сэмплирование происходит только тогда, когда объём неотслеживаемой памяти превышает лимит неотслеживаемой памяти (значение по умолчанию — 4 MiB). Этот лимит можно снизить, если уменьшен параметр total_memory_profiler_step. Можно задать total_memory_profiler_step, равный 1, для сверхдетального сэмплирования.

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

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

trace_log

Настройки работы системной таблицы trace_log.

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Файл конфигурации сервера config.xml по умолчанию содержит следующий раздел настроек:

<trace_log>
    <database>system</database>
    <table>trace_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
    <max_size_rows>1048576</max_size_rows>
    <reserved_size_rows>8192</reserved_size_rows>
    <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
    <flush_on_crash>false</flush_on_crash>
    <symbolize>false</symbolize>
</trace_log>

uncompressed_cache_policy

Имя политики кэша несжатых данных.

uncompressed_cache_size

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

Для сервера существует один общий кэш. Память выделяется по требованию. Кэш используется, если включена опция use_uncompressed_cache.

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

Примечание

Значение 0 означает, что кэш отключен.

Этот параметр можно изменять во время работы сервера, и изменения вступают в силу немедленно.

uncompressed_cache_size_ratio

Размер защищённой очереди (в случае политики SLRU) в неразжатом кэше относительно общего размера этого кэша.

url_scheme_mappers

Конфигурация для преобразования сокращённых или символьных префиксов URL в полные URL-адреса.

Пример:

<url_scheme_mappers>
    <s3>
        <to>https://{bucket}.s3.amazonaws.com</to>
    </s3>
    <gs>
        <to>https://storage.googleapis.com/{bucket}</to>
    </gs>
    <oss>
        <to>https://{bucket}.oss.aliyuncs.com</to>
    </oss>
</url_scheme_mappers>

use_minimalistic_part_header_in_zookeeper

Способ хранения заголовков частей данных в ZooKeeper. Этот параметр применяется только к семейству MergeTree. Его можно задать:

Глобально в секции merge_tree файла config.xml

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

Для каждой таблицы

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

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

  • 0 — Функция отключена.
  • 1 — Функция включена.

Если use_minimalistic_part_header_in_zookeeper = 1, то реплицируемые таблицы хранят заголовки частей данных в компактном виде, используя один znode. Если таблица содержит много столбцов, этот способ хранения значительно сокращает объём данных, хранящихся в Zookeeper.

Примечание

После применения use_minimalistic_part_header_in_zookeeper = 1 вы не сможете понизить версию сервера ClickHouse до версии, которая не поддерживает этот параметр. Будьте осторожны при обновлении ClickHouse на серверах кластера. Не обновляйте все серверы одновременно. Безопаснее тестировать новые версии ClickHouse в тестовом окружении или только на нескольких серверах кластера.

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

user_defined_executable_functions_config

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

Путь:

  • Укажите абсолютный путь или путь относительно конфигурационного файла сервера.
  • Путь может содержать подстановочные символы * и ?.

См. также:

Пример

<user_defined_executable_functions_config>*_function.xml</user_defined_executable_functions_config>

user_defined_path

Каталог для файлов, определённых пользователем. Используется для SQL-функций, определяемых пользователем (SQL User Defined Functions) /sql-reference/functions/udf.

Пример

<user_defined_path>/var/lib/clickhouse/user_defined/</user_defined_path>

user_directories

Раздел конфигурационного файла, который содержит настройки:

  • Путь к конфигурационному файлу с предопределёнными пользователями.
  • Путь к каталогу, где хранятся пользователи, созданные SQL-командами.
  • Путь к узлу ZooKeeper, где хранятся и реплицируются пользователи, созданные SQL-командами.

Если этот раздел задан, путь из users_config и access_control_path использоваться не будет.

Раздел user_directories может содержать произвольное количество элементов, порядок элементов определяет их приоритет (чем выше элемент в списке, тем выше приоритет).

Примеры

<user_directories>
    <users_xml>
        <path>/etc/clickhouse-server/users.xml</path>
    </users_xml>
    <local_directory>
        <path>/var/lib/clickhouse/access/</path>
    </local_directory>
</user_directories>

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

<user_directories>
    <users_xml>
        <path>/etc/clickhouse-server/users.xml</path>
    </users_xml>
    <replicated>
        <zookeeper_path>/clickhouse/access/</zookeeper_path>
    </replicated>
</user_directories>

Вы также можете определить разделы memory (хранение информации только в памяти, без записи на диск) и ldap (хранение информации на сервере LDAP).

Чтобы добавить сервер LDAP как удалённый каталог пользователей для пользователей, которые не определены локально, задайте один раздел ldap со следующими настройками:

SettingDescription
serverодно из имён серверов LDAP, определённых в конфигурационном разделе ldap_servers. Этот параметр является обязательным и не может быть пустым.
rolesраздел со списком локально определённых ролей, которые будут назначены каждому пользователю, полученному с сервера LDAP. Если роли не указаны, пользователь не сможет выполнять никакие действия после аутентификации. Если любая из перечисленных ролей не определена локально на момент аутентификации, попытка аутентификации завершится неудачно, как если бы был указан неверный пароль.

Пример

<ldap>
    <server>my_ldap_server</server>
        <roles>
            <my_local_role1 />
            <my_local_role2 />
        </roles>
</ldap>

user_files_path

Каталог с пользовательскими файлами. Используется в табличных функциях file(), fileCluster().

Пример

<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>

user_files_path

Каталог с пользовательскими файлами. Используется в табличных функциях file(), fileCluster().

Пример

<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>

user_scripts_path

Каталог с файлами пользовательских скриптов. Используется для исполняемых пользовательских функций Executable User Defined Functions.

Пример

<user_scripts_path>/var/lib/clickhouse/user_scripts/</user_scripts_path>

user_scripts_path

Каталог, содержащий файлы пользовательских скриптов. Используется исполняемыми пользовательскими функциями Executable User Defined Functions.

Пример

<user_scripts_path>/var/lib/clickhouse/user_scripts/</user_scripts_path>

Тип:

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

users_config

Путь к файлу, в котором содержатся:

  • Конфигурации пользователей.
  • Права доступа.
  • Профили настроек.
  • Настройки квот.

Пример

<users_config>users.xml</users_config>

validate_tcp_client_information

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

По умолчанию значение — false:

<validate_tcp_client_information>false</validate_tcp_client_information>

vector_similarity_index_cache_max_entries

Размер кэша для индекса векторного сходства в элементах. Ноль означает, что кэш отключён.

vector_similarity_index_cache_policy

Имя политики кэширования индекса векторного сходства.

vector_similarity_index_cache_size

Размер кэша индексов векторного сходства. 0 — отключено.

Примечание

Этот параметр можно изменять на лету; изменения применяются немедленно.

vector_similarity_index_cache_size_ratio

Размер защищённой очереди (в случае политики SLRU) в кэше индекса поиска по векторному сходству относительно общего размера кэша.

wait_dictionaries_load_at_startup

Этот параметр определяет поведение, если dictionaries_lazy_load равно false. (Если dictionaries_lazy_load равно true, этот параметр ни на что не влияет.)

Если wait_dictionaries_load_at_startup равно false, сервер начинает загружать все словари при запуске и параллельно с этой загрузкой начинает принимать подключения. Когда словарь используется в запросе впервые, запрос будет ждать, пока словарь не будет загружен, если он ещё не загружен. Установка wait_dictionaries_load_at_startup в false может ускорить запуск ClickHouse, однако некоторые запросы могут выполняться медленнее (поскольку им придётся ждать загрузки некоторых словарей).

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

Пример

<wait_dictionaries_load_at_startup>true</wait_dictionaries_load_at_startup>

workload_path

Каталог, используемый в качестве хранилища для всех запросов CREATE WORKLOAD и CREATE RESOURCE. По умолчанию используется папка /workload/ в рабочем каталоге сервера.

Пример

<workload_path>/var/lib/clickhouse/workload/</workload_path>

См. также

workload_zookeeper_path

Путь к узлу ZooKeeper, который используется как хранилище для всех запросов CREATE WORKLOAD и CREATE RESOURCE. Для единообразия все SQL-определения хранятся в значении одного znode. По умолчанию ZooKeeper не используется, и определения хранятся на диске.

Пример

<workload_zookeeper_path>/clickhouse/workload/definitions.sql</workload_zookeeper_path>

См. также

zookeeper

Содержит настройки, позволяющие ClickHouse взаимодействовать с кластером ZooKeeper. ClickHouse использует ZooKeeper для хранения метаданных реплик при использовании реплицируемых таблиц. Если реплицируемые таблицы не используются, этот раздел параметров можно опустить.

Следующие настройки могут быть сконфигурированы с помощью подтегов:

SettingDescription
nodeКонечная точка (endpoint) ZooKeeper. Можно задать несколько конечных точек. Например: <node index="1"><host>example_host</host><port>2181</port></node>. Атрибут index задает порядок узлов при попытке подключения к кластеру ZooKeeper.
session_timeout_msМаксимальный таймаут клиентской сессии в миллисекундах.
operation_timeout_msМаксимальный таймаут одной операции в миллисекундах.
root (optional)znode, который используется как корневой для znode-ов, используемых сервером ClickHouse.
fallback_session_lifetime.min (optional)Минимальный предел времени жизни сессии ZooKeeper на fallback-узле, когда основной узел недоступен (балансировка нагрузки). Задается в секундах. По умолчанию: 3 часа.
fallback_session_lifetime.max (optional)Максимальный предел времени жизни сессии ZooKeeper на fallback-узле, когда основной узел недоступен (балансировка нагрузки). Задается в секундах. По умолчанию: 6 часов.
identity (optional)Пользователь и пароль, требуемые ZooKeeper для доступа к запрашиваемым znode-ам.
use_compression (optional)Включает сжатие в протоколе Keeper, если установлено значение true.

Также существует настройка zookeeper_load_balancing (optional), которая позволяет выбрать алгоритм выбора узла ZooKeeper:

Algorithm NameDescription
randomслучайным образом выбирает один из узлов ZooKeeper.
in_orderвыбирает первый узел ZooKeeper, если он недоступен — второй и так далее.
nearest_hostnameвыбирает узел ZooKeeper с именем хоста, наиболее похожим на имя хоста сервера; имя хоста сравнивается по префиксу.
hostname_levenshtein_distanceаналогично nearest_hostname, но сравнивает имена хостов по расстоянию Левенштейна.
first_or_randomвыбирает первый узел ZooKeeper, если он недоступен — случайным образом выбирает один из оставшихся узлов ZooKeeper.
round_robinвыбирает первый узел ZooKeeper, при переподключении выбирает следующий.

Пример конфигурации

<zookeeper>
    <node>
        <host>example1</host>
        <port>2181</port>
    </node>
    <node>
        <host>example2</host>
        <port>2181</port>
    </node>
    <session_timeout_ms>30000</session_timeout_ms>
    <operation_timeout_ms>10000</operation_timeout_ms>
    <!-- Optional. Chroot suffix. Should exist. -->
    <root>/path/to/zookeeper/node</root>
    <!-- Optional. Zookeeper digest ACL string. -->
    <identity>user:password</identity>
    <!--<zookeeper_load_balancing>random / in_order / nearest_hostname / hostname_levenshtein_distance / first_or_random / round_robin</zookeeper_load_balancing>-->
    <zookeeper_load_balancing>random</zookeeper_load_balancing>
</zookeeper>

См. также

zookeeper_log

Настройки системной таблицы zookeeper_log.

Следующие настройки могут быть заданы с помощью подтегов:

Следующие параметры можно настроить с помощью подтегов:

SettingDescriptionDefaultNote
databaseИмя базы данных.
tableИмя системной таблицы.
engineОпределение движка MergeTree для системной таблицы.Не может использоваться, если определены partition_by или order_by. Если не указан, по умолчанию выбирается MergeTree
partition_byПользовательский ключ партиционирования для системной таблицы.Если для системной таблицы указан engine, параметр partition_by должен быть указан непосредственно внутри engine
ttlЗадает TTL таблицы.Если для системной таблицы указан engine, параметр ttl должен быть указан непосредственно внутри engine
order_byПользовательский ключ сортировки для системной таблицы. Не может использоваться, если определен engine.Если для системной таблицы указан engine, параметр order_by должен быть указан непосредственно внутри engine
storage_policyИмя политики хранения, используемой для таблицы (необязательно).Если для системной таблицы указан engine, параметр storage_policy должен быть указан непосредственно внутри engine
settingsДополнительные параметры, управляющие поведением MergeTree (необязательно).Если для системной таблицы указан engine, параметр settings должен быть указан непосредственно внутри engine
flush_interval_millisecondsИнтервал сброса данных из буфера в памяти в таблицу.7500
max_size_rowsМаксимальный размер логов в строках. Когда объем несброшенных логов достигает max_size_rows, логи сбрасываются на диск.1048576
reserved_size_rowsПредварительно выделенный размер памяти в строках для логов.8192
buffer_size_rows_flush_thresholdПорог по количеству строк. Если порог достигнут, в фоновом режиме запускается сброс логов на диск.max_size_rows / 2
flush_on_crashОпределяет, должны ли логи сбрасываться на диск в случае сбоя.false

Пример

<clickhouse>
    <zookeeper_log>
        <database>system</database>
        <table>zookeeper_log</table>
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <ttl>event_date + INTERVAL 1 WEEK DELETE</ttl>
    </zookeeper_log>
</clickhouse>