# Конфигурационные параметры сервера {#konfiguratsionnye-parametry-servera} ## builtin\_dictionaries\_reload\_interval {#builtin-dictionaries-reload-interval} Интервал (в секундах) перезагрузки встроенных словарей. ClickHouse перезагружает встроенные словари с заданным интервалом. Это позволяет править словари «на лету» без перезапуска сервера. Значение по умолчанию - 3600. **Пример** ``` xml 3600 ``` ## compression {#compression} Настройки компрессии данных. !!! warning "Внимание" Лучше не использовать, если вы только начали работать с ClickHouse. Общий вид конфигурации: ``` xml ... ``` Можно сконфигурировать несколько разделов ``. Поля блока ``: - `min_part_size` - Минимальный размер части таблицы. - `min_part_size_ratio` - Отношение размера минимальной части таблицы к полному размеру таблицы. - `method` - Метод сжатия. Возможные значения: `lz4`, `zstd` (экспериментальный). ClickHouse проверит условия `min_part_size` и `min_part_size_ratio` и выполнит те блоки `case`, для которых условия совпали. Если ни один `` не подходит, то ClickHouse применит алгоритм сжатия `lz4`. **Пример** ``` xml 10000000000 0.01 zstd ``` ## default\_database {#default-database} База данных по умолчанию. Перечень баз данных можно получить запросом [SHOW DATABASES](../../query_language/show.md#show-databases). **Пример** ``` xml default ``` ## default\_profile {#default-profile} Профиль настроек по умолчанию. Профили настроек находятся в файле, указанном в параметре `user_config`. **Пример** ``` xml default ``` ## dictionaries\_config {#dictionaries-config} Путь к конфигурации внешних словарей. Путь: - Указывается абсолютным или относительно конфигурационного файла сервера. - Может содержать wildcard-ы \* и ?. Смотрите также «[Внешние словари](../../query_language/dicts/external_dicts.md)». **Пример** ``` xml *_dictionary.xml ``` ## dictionaries\_lazy\_load {#dictionaries-lazy-load} Отложенная загрузка словарей. Если `true`, то каждый словарь создаётся при первом использовании. Если словарь не удалось создать, то вызов функции, использующей словарь, сгенерирует исключение. Если `false`, то все словари создаются при старте сервера, и в случае ошибки сервер завершает работу. По умолчанию - `true`. **Пример** ``` xml true ``` ## format\_schema\_path {#server_settings-format_schema_path} Путь к каталогу со схемами для входных данных. Например со схемами для формата [CapnProto](../../interfaces/formats.md#capnproto). **Пример** ``` xml format_schemas/ ``` ## graphite {#server_settings-graphite} Отправка данных в [Graphite](https://github.com/graphite-project). Настройки: - host – Сервер Graphite. - port – Порт сервера Graphite. - interval – Период отправки в секундах. - timeout – Таймаут отправки данных в секундах. - root\_path – Префикс для ключей. - metrics – Отправка данных из таблицы [system.metrics](../system_tables.md#system_tables-metrics). - events – Отправка дельты данных, накопленной за промежуток времени из таблицы [system.events](../system_tables.md#system_tables-events). - events\_cumulative – Отправка суммарных данных из таблицы [system.events](../system_tables.md#system_tables-events). - asynchronous\_metrics – Отправка данных из таблицы [system.asynchronous\_metrics](../system_tables.md#system_tables-asynchronous_metrics). Можно определить несколько секций ``, например, для передачи различных данных с различной частотой. **Пример** ``` xml localhost 42000 0.1 60 one_min true true false true ``` ## graphite\_rollup {#server_settings-graphite-rollup} Настройка прореживания данных для Graphite. Подробнее читайте в разделе [GraphiteMergeTree](../table_engines/graphitemergetree.md). **Пример** ``` xml max 0 60 3600 300 86400 3600 ``` ## http\_port/https\_port {#http-porthttps-port} Порт для обращений к серверу по протоколу HTTP(s). Если указан `https_port`, то требуется конфигурирование [openSSL](#server_settings-openssl). Если указан `http_port`, то настройка openSSL игнорируется, даже если она задана. **Пример** ``` xml 0000 ``` ## http\_server\_default\_response {#server_settings-http_server_default_response} Страница, показываемая по умолчанию, при обращении к HTTP(s) серверу ClickHouse. Значение по умолчанию «Ok.» (с переводом строки на конце). **Пример** Показывает `https://tabix.io/` при обращении к `http://localhost:http_port`. ``` xml
]]>
``` ## include\_from {#server_settings-include_from} Путь к файлу с подстановками. Подробности смотрите в разделе «[Конфигурационный файлы](../configuration_files.md#configuration_files)». **Пример** ``` xml /etc/metrica.xml ``` ## interserver\_http\_port {#interserver-http-port} Порт для обмена между серверами ClickHouse. **Пример** ``` xml 9009 ``` ## interserver\_http\_host {#interserver-http-host} Имя хоста, которое могут использовать другие серверы для обращения к этому. Если не указано, то определяется аналогично команде `hostname -f`. Удобно использовать, чтобы отвязаться от конкретного сетевого интерфейса. **Пример** ``` xml example.yandex.ru ``` ## interserver\_http\_credentials {#server-settings-interserver-http-credentials} Имя пользователя и пароль, использующиеся для аутентификации при [репликации](../table_engines/replication.md) движками Replicated\*. Это имя пользователя и пароль используются только для взаимодействия между репликами кластера и никак не связаны с аутентификацией клиентов ClickHouse. Сервер проверяет совпадение имени и пароля для соединяющихся с ним реплик, а также использует это же имя и пароль для соединения с другими репликами. Соответственно, эти имя и пароль должны быть прописаны одинаковыми для всех реплик кластера. По умолчанию аутентификация не используется. Раздел содержит следующие параметры: - `user` — имя пользователя. - `password` — пароль. **Пример конфигурации** ``` xml admin 222 ``` ## keep\_alive\_timeout {#keep-alive-timeout} Время в секундах, в течение которого ClickHouse ожидает входящих запросов прежде, чем закрыть соединение. **Пример** ``` xml 3 ``` ## listen\_host {#server_settings-listen_host} Ограничение по хостам, с которых может прийти запрос. Если необходимо, чтобы сервер отвечал всем, то надо указать `::`. Примеры: ``` xml ::1 127.0.0.1 ``` ## logger {#server_settings-logger} Настройки логирования. Ключи: - level - Уровень логирования. Допустимые значения: `trace`, `debug`, `information`, `warning`, `error`. - log - Файл лога. Содержит все записи согласно `level`. - errorlog - Файл лога ошибок. - size - Размер файла. Действует для `log` и `errorlog`. Как только файл достиг размера `size`, ClickHouse архивирует и переименовывает его, а на его месте создает новый файл лога. - count - Количество заархивированных файлов логов, которые сохраняет ClickHouse. **Пример** ``` xml trace /var/log/clickhouse-server/clickhouse-server.log /var/log/clickhouse-server/clickhouse-server.err.log 1000M 10 ``` Также, существует поддержка записи в syslog. Пример конфига: ``` xml 1
syslog.remote:10514
myhost.local LOG_LOCAL6 syslog
``` Ключи: - use\_syslog - обязательная настройка, если требуется запись в syslog - address - хост\[:порт\] демона syslogd. Если не указан, используется локальный - hostname - опционально, имя хоста, с которого отсылаются логи - facility - [категория syslog](https://en.wikipedia.org/wiki/Syslog#Facility), записанная в верхнем регистре, с префиксом «LOG\_»: (`LOG_USER`, `LOG_DAEMON`, `LOG_LOCAL3` и прочие). Значения по умолчанию: при указанном `address` - `LOG_USER`, иначе - `LOG_DAEMON` - format - формат сообщений. Возможные значения - `bsd` и `syslog` ## macros {#macros} Подстановки параметров реплицируемых таблиц. Можно не указывать, если реплицируемых таблицы не используются. Подробнее смотрите в разделе «[Создание реплицируемых таблиц](../../operations/table_engines/replication.md)». **Пример** ``` xml ``` ## mark\_cache\_size {#server-mark-cache-size} Приблизительный размер (в байтах) кэша засечек, используемых движками таблиц семейства [MergeTree](../table_engines/mergetree.md). Кэш общий для сервера, память выделяется по мере необходимости. **Пример** ``` xml 5368709120 ``` ## max\_concurrent\_queries {#max-concurrent-queries} Максимальное количество одновременно обрабатываемых запросов. **Пример** ``` xml 100 ``` ## max\_connections {#max-connections} Максимальное количество входящих соединений. **Пример** ``` xml 4096 ``` ## max\_open\_files {#max-open-files} Максимальное количество открытых файлов. По умолчанию - `maximum`. Рекомендуется использовать в Mac OS X, поскольку функция `getrlimit()` возвращает некорректное значение. **Пример** ``` xml 262144 ``` ## max\_table\_size\_to\_drop {#max-table-size-to-drop} Ограничение на удаление таблиц. Если размер таблицы семейства [MergeTree](../table_engines/mergetree.md) превышает `max_table_size_to_drop` (в байтах), то ее нельзя удалить запросом DROP. Если таблицу все же необходимо удалить, не перезапуская при этом сервер ClickHouse, то необходимо создать файл `/flags/force_drop_table` и выполнить запрос DROP. Значение по умолчанию - 50GB. Значение 0 означает, что можно удалять все таблицы без ограничений. **Пример** ``` xml 0 ``` ## merge\_tree {#server_settings-merge_tree} Тонкая настройка таблиц семейства [MergeTree](../table_engines/mergetree.md). Подробнее смотрите в заголовочном файле MergeTreeSettings.h. **Пример** ``` xml 5 ``` ## openSSL {#server_settings-openssl} Настройки клиента/сервера SSL. Поддержку SSL обеспечивает библиотека `libpoco`. Описание интерфейса находится в файле [SSLManager.h](https://github.com/ClickHouse-Extras/poco/blob/master/NetSSL_OpenSSL/include/Poco/Net/SSLManager.h) Ключи настроек сервера/клиента: - privateKeyFile - Путь к файлу с секретным ключом сертификата в формате PEM. Файл может содержать ключ и сертификат одновременно. - certificateFile - Путь к файлу сертификата клиента/сервера в формате PEM. Можно не указывать, если `privateKeyFile` содержит сертификат. - caConfig - Путь к файлу или каталогу, которые содержат доверенные корневые сертификаты. - verificationMode - Способ проверки сертификатов узла. Подробности находятся в описании класса [Context](https://github.com/ClickHouse-Extras/poco/blob/master/NetSSL_OpenSSL/include/Poco/Net/Context.h). Допустимые значения: `none`, `relaxed`, `strict`, `once`. - verificationDepth - Максимальная длина верификационной цепи. Верификация завершится ошибкой, если длина цепи сертификатов превысит установленное значение. - loadDefaultCAFile - Признак того, что будут использоваться встроенные CA-сертификаты для OpenSSL. Допустимые значения: `true`, `false`. \| - cipherList - Поддерживаемые OpenSSL-шифры. Например, `ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH`. - cacheSessions - Включение/выключение кеширования сессии. Использовать обязательно вместе с `sessionIdContext`. Допустимые значения: `true`, `false`. - sessionIdContext - Уникальный набор произвольных символов, которые сервер добавляет к каждому сгенерированному идентификатору. Длина строки не должна превышать `SSL_MAX_SSL_SESSION_ID_LENGTH`. Рекомендуется к использованию всегда, поскольку позволяет избежать проблем как в случае, если сервер кеширует сессию, так и если клиент затребовал кеширование. По умолчанию `${application.name}`. - sessionCacheSize - Максимальное количество сессий, которые кэширует сервер. По умолчанию - 1024\*20. 0 - неограниченное количество сессий. - sessionTimeout - Время кеширования сессии на сервере. - extendedVerification - Автоматическая расширенная проверка сертификатов после завершении сессии. Допустимые значения: `true`, `false`. - requireTLSv1 - Требование соединения TLSv1. Допустимые значения: `true`, `false`. - requireTLSv1\_1 - Требование соединения TLSv1.1. Допустимые значения: `true`, `false`. - requireTLSv1\_2 - Требование соединения TLSv1.2. Допустимые значения: `true`, `false`. - fips - Активация режима OpenSSL FIPS. Поддерживается, если версия OpenSSL, с которой собрана библиотека поддерживает fips. - privateKeyPassphraseHandler - Класс (подкласс PrivateKeyPassphraseHandler)запрашивающий кодовую фразу доступа к секретному ключу. Например, ``, `KeyFileHandler`, `test`, ``. - invalidCertificateHandler - Класс (подкласс CertificateHandler) для подтверждения не валидных сертификатов. Например, ` ConsoleCertificateHandler `. - disableProtocols - Запрещенные к использованию протоколы. - preferServerCiphers - Предпочтение серверных шифров на клиенте. **Пример настройки:** ``` xml /etc/clickhouse-server/server.crt /etc/clickhouse-server/server.key /etc/clickhouse-server/dhparam.pem none true true sslv2,sslv3 true true true sslv2,sslv3 true RejectCertificateHandler ``` ## part\_log {#server_settings-part-log} Логирование событий, связанных с данными типа [MergeTree](../table_engines/mergetree.md). Например, события добавления или мержа данных. Лог можно использовать для симуляции алгоритмов слияния, чтобы сравнивать их характеристики. Также, можно визуализировать процесс слияния. Запросы логируются не в отдельный файл, а в таблицу [system.part\_log](../system_tables.md#system_tables-part-log). Вы можете изменить название этой таблицы в параметре `table` (см. ниже). При настройке логирования используются следующие параметры: - `database` — имя базы данных; - `table` — имя таблицы; - `partition_by` — устанавливает [произвольный ключ партиционирования](../../operations/table_engines/custom_partitioning_key.md); - `flush_interval_milliseconds` — период сброса данных из буфера в памяти в таблицу. **Пример** ``` xml system part_log
toMonday(event_date) 7500
``` ## path {#server_settings-path} Путь к каталогу с данными. !!! warning "Обратите внимание" Завершающий слеш обязателен. **Пример** ``` xml /var/lib/clickhouse/ ``` ## query\_log {#server_settings-query-log} Настройка логирования запросов, принятых с настройкой [log\_queries=1](../settings/settings.md). Запросы логируются не в отдельный файл, а в системную таблицу [system.query\_log](../system_tables.md#system_tables-query-log). Вы можете изменить название этой таблицы в параметре `table` (см. ниже). При настройке логирования используются следующие параметры: - `database` — имя базы данных; - `table` — имя таблицы, куда будет записываться лог; - `partition_by` — [произвольный ключ партиционирования](../../operations/table_engines/custom_partitioning_key.md) для таблицы с логами; - `flush_interval_milliseconds` — период сброса данных из буфера в памяти в таблицу. Если таблица не существует, то ClickHouse создаст её. Если структура журнала запросов изменилась при обновлении сервера ClickHouse, то таблица со старой структурой переименовывается, а новая таблица создается автоматически. **Пример** ``` xml system query_log
toMonday(event_date) 7500
``` ## query\_thread\_log {#server_settings-query-thread-log} Настройка логирования потоков выполнения запросов, принятых с настройкой [log\_query\_threads=1](../settings/settings.md#settings-log-query-threads). Запросы логируются не в отдельный файл, а в системную таблицу [system.query\_thread\_log](../system_tables.md#system_tables-query-thread-log). Вы можете изменить название этой таблицы в параметре `table` (см. ниже). При настройке логирования используются следующие параметры: - `database` — имя базы данных; - `table` — имя таблицы, куда будет записываться лог; - `partition_by` — [произвольный ключ партиционирования](../../operations/table_engines/custom_partitioning_key.md) для таблицы с логами; - `flush_interval_milliseconds` — период сброса данных из буфера в памяти в таблицу. Если таблица не существует, то ClickHouse создаст её. Если структура журнала запросов изменилась при обновлении сервера ClickHouse, то таблица со старой структурой переименовывается, а новая таблица создается автоматически. **Пример** ``` xml system query_thread_log
toMonday(event_date) 7500
``` ## trace\_log {#server_settings-trace_log} Settings for the [trace\_log](../system_tables.md#system_tables-trace_log) system table operation. Parameters: - `database` — Database for storing a table. - `table` — Table name. - `partition_by` — [Custom partitioning key](../../operations/table_engines/custom_partitioning_key.md) for a system table. - `flush_interval_milliseconds` — Interval for flushing data from the buffer in memory to the table. The default server configuration file `config.xml` contains the following settings section: ``` xml system trace_log
toYYYYMM(event_date) 7500
``` ## remote\_servers {#server-settings-remote-servers} Конфигурация кластеров, которые использует движок таблиц [Distributed](../../operations/table_engines/distributed.md) и табличная функция `cluster`. **Пример** ``` xml ``` Значение атрибута `incl` смотрите в разделе «[Конфигурационные файлы](../configuration_files.md#configuration_files)». **Смотрите также** - [skip\_unavailable\_shards](../settings/settings.md#settings-skip_unavailable_shards) ## timezone {#server_settings-timezone} Временная зона сервера. Указывается идентификатором IANA в виде часового пояса UTC или географического положения (например, Africa/Abidjan). Временная зона необходима при преобразованиях между форматами String и DateTime, которые возникают при выводе полей DateTime в текстовый формат (на экран или в файл) и при получении DateTime из строки. Также, временная зона используется в функциях, которые работают со временем и датой, если они не получили временную зону в параметрах вызова. **Пример** ``` xml Europe/Moscow ``` ## tcp\_port {#server_settings-tcp_port} Порт для взаимодействия с клиентами по протоколу TCP. **Пример** ``` xml 9000 ``` ## tcp\_port\_secure {#server_settings-tcp_port-secure} TCP порт для защищённого обмена данными с клиентами. Используйте с настройкой [OpenSSL](#server_settings-openssl). **Возможные значения** Положительное целое число. **Значение по умолчанию** ``` xml 9440 ``` ## mysql\_port {#server_settings-mysql_port} Порт для взаимодействия с клиентами по протоколу MySQL. Пример ``` xml 9004 ``` ## tmp\_path {#tmp-path} Путь ко временным данным для обработки больших запросов. !!! warning "Обратите внимание" Завершающий слеш обязателен. **Пример** ``` xml /var/lib/clickhouse/tmp/ ``` ## uncompressed\_cache\_size {#server-settings-uncompressed_cache_size} Размер кеша (в байтах) для несжатых данных, используемых движками таблиц семейства [MergeTree](../table_engines/mergetree.md). Кеш единый для сервера. Память выделяется по требованию. Кеш используется в том случае, если включена опция [use\_uncompressed\_cache](../settings/settings.md). Несжатый кеш выгодно использовать для очень коротких запросов в отдельных случаях. **Пример** ``` xml 8589934592 ``` ## user\_files\_path {#server_settings-user_files_path} Каталог с пользовательскими файлами. Используется в табличной функции [file()](../../query_language/table_functions/file.md). **Пример** ``` xml /var/lib/clickhouse/user_files/ ``` ## users\_config {#users-config} Путь к файлу, который содержит: - Конфигурации пользователей. - Права доступа. - Профили настроек. - Настройки квот. **Пример** ``` xml users.xml ``` ## zookeeper {#server-settings_zookeeper} Содержит параметры, позволяющие ClickHouse взаимодействовать с кластером [ZooKeeper](http://zookeeper.apache.org/). ClickHouse использует ZooKeeper для хранения метаданных о репликах при использовании реплицированных таблиц. Если реплицированные таблицы не используются, этот раздел параметров может отсутствовать. Раздел содержит следующие параметры: - `node` — адрес ноды (сервера) ZooKeeper. Можно сконфигурировать несколько нод. Например: ``` xml example_host 2181 ``` Атрибут `index` задает порядок опроса нод при попытках подключиться к кластеру ZooKeeper. - `session_timeout` — максимальный таймаут клиентской сессии в миллисекундах. - `root` — [znode](http://zookeeper.apache.org/doc/r3.5.5/zookeeperOver.html#Nodes+and+ephemeral+nodes), который используется как корневой для всех znode, которые использует сервер ClickHouse. Необязательный. - `identity` — пользователь и пароль, которые может потребовать ZooKeeper для доступа к запрошенным znode. Необязательный. **Пример конфигурации** ``` xml example1 2181 example2 2181 30000 /path/to/zookeeper/node user:password ``` **Смотрите также** - [Репликация](../../operations/table_engines/replication.md) - [ZooKeeper Programmer’s Guide](http://zookeeper.apache.org/doc/current/zookeeperProgrammers.html) ## use\_minimalistic\_part\_header\_in\_zookeeper {#server-settings-use_minimalistic_part_header_in_zookeeper} Способ хранения заголовков кусков данных в ZooKeeper. Параметр применяется только к семейству таблиц `MergeTree`. Его можно установить: - Глобально в разделе [merge\_tree](#server_settings-merge_tree) файла `config.xml`. ClickHouse использует этот параметр для всех таблиц на сервере. Вы можете изменить настройку в любое время. Существующие таблицы изменяют свое поведение при изменении параметра. - Для каждой отдельной таблицы. При создании таблицы укажите соответствующую [настройку движка](../table_engines/mergetree.md#table_engine-mergetree-creating-a-table). Поведение существующей таблицы с установленным параметром не изменяется даже при изменении глобального параметра. **Возможные значения** - 0 — функциональность выключена. - 1 — функциональность включена. Если `use_minimalistic_part_header_in_zookeeper = 1`, то [реплицированные](../table_engines/replication.md) таблицы хранят заголовки кусков данных в компактном виде, используя только одну `znode`. Если таблица содержит много столбцов, этот метод хранения значительно уменьшает объём данных, хранящихся в Zookeeper. !!! attention "Внимание" После того как вы установили `use_minimalistic_part_header_in_zookeeper = 1`, невозможно откатить ClickHouse до версии, которая не поддерживает этот параметр. Будьте осторожны при обновлении ClickHouse на серверах в кластере. Не обновляйте все серверы сразу. Безопаснее проверять новые версии ClickHouse в тестовой среде или только на некоторых серверах кластера. Заголовки частей данных, ранее сохранённые с этим параметром, не могут быть восстановлены в их предыдущем (некомпактном) представлении. **Значение по умолчанию**: 0. ## disable\_internal\_dns\_cache {#server-settings-disable-internal-dns-cache} Отключает внутренний кеш DNS записей. Используется при эксплуатации ClickHouse в системах с часто меняющейся инфраструктурой, таких как Kubernetes. **Значение по умолчанию**: 0. ## dns\_cache\_update\_period {#server-settings-dns-cache-update-period} Период обновления IP адресов у записей во внутреннем DNS кеше ClickHouse (в секундах). Обновление выполняется асинхронно, отдельным системным потоком. **Значение по умолчанию**: 15. [Оригинальная статья](https://clickhouse.tech/docs/ru/operations/server_settings/settings/)