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

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

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

Дополнительную информацию о конфигурационных файлах в 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Определяет, будет ли CONSTRAINT в SETTINGS PROFILE для некоторой настройки отменять действие предыдущего CONSTRAINT (определённого в других профилях) для этой настройки, включая поля, которые не устанавливаются новым CONSTRAINT. Также включает тип CONSTRAINT 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

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

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

Это эквивалентно установке ограничения только на чтение для всех функций уровней 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

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

<allow_plaintext_password>1</allow_plaintext_password>

allow_use_jemalloc_memory

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

allowed_disks_for_table_engines

Список дисков, разрешенных для использования с Iceberg

async_insert_queue_flush_on_shutdown

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

async_insert_threads

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

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

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

Примечание

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

background_buffer_flush_schedule_pool_size

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

background_common_pool_size

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

background_distributed_schedule_pool_size

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

background_fetches_pool_size

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

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_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.

Резервные копии

Настройки резервного копирования, используемые при выполнении команд 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Задержка для целей тестирования.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

Устанавливает максимальное отношение размера кэша к объёму оперативной памяти. Позволяет уменьшить размер кэша на системах с малым объёмом памяти.

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>
     <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-слот, он завершит работу, а запрос будет динамически уменьшен до меньшего числа одновременно выполняющихся потоков. Обратите внимание, что основной (master) поток никогда не уменьшается по числу, но может вытесняться неограниченно долго. Имеет смысл только при включённом 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-server и ранее был «спрятан» (см. database_catalog_unused_dir_hide_timeout_sec) и этот каталог не изменялся в течение последних [database_catalog_unused_dir_rm_timeout_sec]/operations/server-configuration-parameters/settings#database_catalog_unused_dir_rm_timeout_sec) секунд, задача удалит этот каталог. Параметр также применяется к каталогам, наличие которых clickhouse-server не ожидает внутри store/.

Примечание

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

database_replicated_allow_detach_permanently

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

database_replicated_drop_broken_tables

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

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>

dictionary_background_reconnect_interval

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

disable_insertion_and_mutation

Отключает запросы INSERT/ALTER/DELETE. Этот параметр включают, когда требуются узлы только для чтения, чтобы операции вставки и мутации не влияли на производительность чтения. Вставки во внешние движки (S3, DataLake, MySQL, PostrgeSQL, 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-резолверов, а также как переменную окружения для environment-резолвера. Поддерживаются 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

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

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>
    <!-- Путь в ZooKeeper к очереди DDL-запросов -->
    <path>/clickhouse/task_queue/ddl</path>

    <!-- Настройки из этого профиля будут использованы для выполнения DDL-запросов -->
    <profile>default</profile>

    <!-- Определяет, сколько запросов ON CLUSTER может выполняться одновременно. -->
    <pool_size>1</pool_size>

    <!--
         Настройки очистки (активные задачи не удаляются)
    -->

    <!-- Определяет TTL задачи (по умолчанию 1 неделя) -->
    <task_max_lifetime>604800</task_max_lifetime>

    <!-- Определяет частоту выполнения очистки (в секундах) -->
    <cleanup_delay_period>60</cleanup_delay_period>

    <!-- Определяет максимальное количество задач в очереди -->
    <max_tasks_in_queue>1000</max_tasks_in_queue>
</distributed_ddl>

distributed_ddl_use_initial_user_and_roles

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

dns_allow_resolve_names_to_ipv4

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

dns_allow_resolve_names_to_ipv6

Позволяет разрешать DNS-имена в IPv6-адреса.

dns_cache_max_entries

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

dns_cache_update_period

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

dns_max_consecutive_failures

Максимальное количество последовательных неудачных попыток разрешения DNS‑имени хоста перед его удалением из DNS‑кэша ClickHouse.

drop_distributed_cache_pool_size

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

drop_distributed_cache_queue_size

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

enable_azure_sdk_logging

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

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

format_parsing_thread_pool_queue_size

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

Примечание

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

format_schema_path

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

Пример

<!-- Директория, содержащая файлы схем для различных входных форматов. -->
<format_schema_path>format_schemas/</format_schema_path>

global_profiler_cpu_time_period_ns

Период таймера процессорных тактов для глобального профилировщика (в наносекундах). Установите значение 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>

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>

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 отсутствует query string

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

Sub-tagsDefinition
urlАдрес для перенаправления
typeПоддерживаемые типы: static, dynamic_query_handler, predefined_query_handler, redirect
statusИспользуется с типом static, код статуса ответа
query_param_nameИспользуется с типом dynamic_query_handler, извлекает и выполняет значение параметра HTTP-запроса, соответствующее <query_param_name>
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.

Подробнее см. раздел «Configuration files».

Пример

<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_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_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.

ldap_servers

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

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

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

ПараметрОписание
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 узла (peer). Допустимые значения: 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 может быть задана с помощью подтегов:

ПараметрОписание
base_dnШаблон, используемый для построения базового 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.

Пример:

<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_key

Лицензионный ключ ClickHouse Enterprise Edition

listen_backlog

Очередь (размер очереди ожидающих подключений) для listen-сокета. Значение по умолчанию 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_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Политика ротации: максимальный размер файлов журнала в байтах. Когда размер файла журнала превышает это значение, он переименовывается и архивируется, а новый файл журнала создаётся.
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Последние 2 цифры года по недельной системе исчисления ISO 8601, то есть года, в который входит указанная неделя.23
%bСокращённое название месяца, например Oct (в зависимости от локали)Июл
%hСиноним для %bиюл.
%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Сокращённое название дня недели, например, «Пт» (зависит от локали)чт
%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-часовом формате (зависит от настроек локали)18:32:07
%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>
        <!-- Можно настроить для каждого канала отдельно (log, errorlog, console, syslog) или глобально для всех каналов (в этом случае просто опустите параметр). -->
        <!-- <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>.

macros

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

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

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

Пример

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

Политика кэширования меток

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

mark_cache_prewarm_ratio

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

mark_cache_size

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

Примечание

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

mark_cache_size_ratio

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

max_active_parts_loading_thread_pool_size

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

max_authentication_methods_per_user

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

Примечание

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

max_backup_bandwidth_for_server

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

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 (по умолчанию) означает отсутствие ограничения.

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

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

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

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>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. Для применения этого SETTING не требуется перезапуск сервера 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 использует потоки из пула десериализации префиксов для параллельного чтения метаданных столбцов и подстолбцов из префиксов файлов в широких частях таблиц 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

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

max_replicated_sends_network_bandwidth_for_server

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

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% доступной памяти.

Позволяет снизить использование памяти на системах с небольшим объёмом оперативной памяти. На хостах с малым объёмом RAM и 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

Если количество простаивающих потоков в глобальном пуле потоков больше, чем 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

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

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

Период тиков фонового обработчика памяти, который корректирует учет использования памяти в трекере памяти и очищает неиспользуемые страницы при высоком уровне использования памяти. Если установлено значение 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

Устанавливает лимит на объем оперативной памяти, который можно использовать для выполнения операций слияния и мутаций. Если 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

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

mlock_executable

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

Примечание

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

Пример

<mlock_executable>false</mlock_executable>

mmap_cache_size

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

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

Примечание

Объём данных в отображённых файлах напрямую не занимает оперативную память и не учитывается в использовании памяти запросом или сервером, поскольку эта память может быть освобождена, подобно кэшу страниц ОС. Кэш сбрасывается (файлы закрываются) автоматически при удалении старых частей в таблицах семейства 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.

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Будут ли использоваться встроенные сертификаты удостоверяющих центров (CA) 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>
        <!-- Для самоподписанных сертификатов: <verificationMode>none</verificationMode> -->
        <invalidCertificateHandler>
            <!-- Для самоподписанных сертификатов: <name>AcceptCertificateHandler</name> -->
            <name>RejectCertificateHandler</name>
        </invalidCertificateHandler>
    </client>
</openSSL>

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_cpu_busy_time_threshold

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

os_threads_nice_value_distributed_cache_tcp_handler

Значение nice в Linux для потоков обработчика TCP распределённого кэша. Меньшие значения означают более высокий приоритет использования CPU.

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

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

os_threads_nice_value_merge_mutate

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

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

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

os_threads_nice_value_zookeeper_client_send_receive

Значение nice в Linux для потоков отправки и получения в клиенте ZooKeeper. Меньшие значения означают более высокий приоритет по отношению к CPU.

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

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

page_cache_free_memory_ratio

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

page_cache_history_window_ms

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

page_cache_max_size

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

page_cache_min_size

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

page_cache_policy

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

page_cache_shards

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

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 секунд, чтобы избежать «эффекта стада» и последующей DoS-атаки на ZooKeeper в случае очень большого числа таблиц. Доступно только в ClickHouse Cloud.

parts_killer_pool_size

Потоки, выполняющие очистку устаревших потоков shared MergeTree. Доступно только в ClickHouse Cloud

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.

prefetch_threadpool_pool_size

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

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

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>

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

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

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_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>скрыть номер SSN</name>
        <regexp>(^|\D)\d{3}-\d{2}-\d{4}($|\D)</regexp>
        <replace>000-00-0000</replace>
    </rule>
</query_masking_rules>

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

ПараметрОписание
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») с использованием больших страниц памяти (huge pages).

Примечание

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

Пример:

<remap_executable>false</remap_executable>

remote_servers

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

Пример

<remote_servers incl="clickhouse_remote_servers" />

Значение атрибута incl см. в разделе «Configuration files».

См. также

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. Этот SETTING имеет более высокий приоритет.

Для получения дополнительных сведений см. заголовочный файл 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

Отключает потоковую обработку в 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, это ошибка (bug) в ClickHouse. Этот булевый флаг включает отправку этих исключений (по умолчанию true).
endpointВы можете переопределить URL конечной точки для отправки отчётов о сбоях.

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

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

series_keeper_path

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

show_addresses_in_stack_traces

Если включено, в трассировках стека будут отображаться адреса

shutdown_wait_backups_and_restores

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

shutdown_wait_unfinished

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

shutdown_wait_unfinished_queries

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

skip_binary_checksum_checks

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

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

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

storage_configuration

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

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

<storage_configuration>
    <disks>
        <!-- конфигурация -->
    </disks>
    <policies>
        <!-- конфигурация -->
    </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:

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

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

Настройка политик

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

SettingDescription
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.

Примечание

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

tables_loader_background_pool_size

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

Примечание

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

tables_loader_foreground_pool_size

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

Примечание

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

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

Размер кэша блока словаря текстового индекса (в элементах). Значение 0 отключает кэш.

text_index_dictionary_block_cache_policy

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

text_index_dictionary_block_cache_size

Размер кэша для блоков словаря текстового индекса. Ноль означает, что кэш отключен.

Примечание

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

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

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

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

Дополнительно:

ПараметрОписаниеЗначение по умолчанию
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_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 игнорируются.
  • Политика должна содержать ровно один том.

Для получения дополнительной информации см. документацию по MergeTree Table Engine.

Пример

Когда /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 и возвращает часть домена, включающую поддомены верхнего уровня вплоть до первого значимого поддомена.

total_memory_profiler_sample_max_allocation_size

Собирает случайные выделения памяти (allocations) размером, меньшим или равным указанному значению, с вероятностью, равной 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 для более детализированного семплирования.

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

  • Положительное число типа double.
  • 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. Этот SETTING применяется только к семейству 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.

Пример

<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 со следующими параметрами:

ПараметрОписание
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_scripts_path

Каталог с файлами пользовательских скриптов. Используется для пользовательских функций типа Executable Executable User Defined Functions.

Пример

<user_scripts_path>/var/lib/clickhouse/user_scripts/</user_scripts_path>

Тип:

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

users_config

Путь к файлу, в котором содержатся:

  • Конфигурации пользователей.
  • Права доступа.
  • Профили настроек.
  • Настройки QUOTA.

Пример

<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

Размер кэша для индексов векторного сходства. Нулевое значение отключает кэш.

Примечание

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

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 для хранения метаданных реплик при использовании реплицируемых таблиц. Если реплицируемые таблицы не используются, этот раздел параметров можно опустить.

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

ПараметрОписание
nodeТочка входа 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 с резервным узлом, когда основной недоступен (балансировка нагрузки). Задаётся в секундах. По умолчанию: 3 часа.
fallback_session_lifetime.max (optional)Максимальный предел времени жизни сессии ZooKeeper с резервным узлом, когда основной недоступен (балансировка нагрузки). Задаётся в секундах. По умолчанию: 6 часов.
identity (optional)Пользователь и пароль, которые ZooKeeper запрашивает для доступа к запрашиваемым znode.
use_compression (optional)Включает сжатие в протоколе Keeper, если установлено значение true.

Также существует параметр zookeeper_load_balancing (необязательно), который позволяет выбрать алгоритм выбора узла ZooKeeper:

Имя алгоритмаОписание
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>
    <!-- Необязательный параметр. Суффикс chroot. Должен существовать. -->
    <root>/path/to/zookeeper/node</root>
    <!-- Необязательный параметр. Строка digest ACL для Zookeeper. -->
    <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>