# Конфигурационные параметры сервера ## builtin_dictionaries_reload_interval Интервал (в секундах) перезагрузки встроенных словарей. ClickHouse перезагружает встроенные словари с заданным интервалом. Это позволяет править словари "на лету" без перезапуска сервера. Значение по умолчанию - 3600. **Пример** ```xml 3600 ``` ## 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 База данных по умолчанию. Перечень баз данных можно получить запросом [SHOW DATABASES](../../query_language/show.md#show-databases). **Пример** ```xml default ``` ## default_profile Профиль настроек по умолчанию. Профили настроек находятся в файле, указанном в параметре `user_config`. **Пример** ```xml default ``` ## dictionaries_config Путь к конфигурации внешних словарей. Путь: - Указывается абсолютным или относительно конфигурационного файла сервера. - Может содержать wildcard-ы \* и ?. Смотрите также "[Внешние словари](../../query_language/dicts/external_dicts.md)". **Пример** ```xml *_dictionary.xml ``` ## 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](../../operations/table_engines/graphitemergetree.md). **Пример** ```xml max 0 60 3600 300 86400 3600 ``` ## http_port/https_port Порт для обращений к серверу по протоколу HTTP(s). Если указан `https_port`, то требуется конфигурирование [openSSL](#server_settings-openssl). Если указан `http_port`, то настройка openSSL игнорируется, даже если она задана. **Пример** ```xml 0000 ``` ## http_server_default_response Страница, показываемая по умолчанию, при обращении к HTTP(s) серверу ClickHouse. **Пример** Показывает `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 Порт для обмена между серверами ClickHouse. **Пример** ```xml 9009 ``` ## 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 Время в секундах, в течение которого 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 Подстановки параметров реплицируемых таблиц. Можно не указывать, если реплицируемых таблицы не используются. Подробнее смотрите в разделе "[Создание реплицируемых таблиц](../../operations/table_engines/replication.md)". **Пример** ```xml ``` ## mark_cache_size {#server-mark-cache-size} Приблизительный размер (в байтах) кэша засечек, используемых движками таблиц семейства [MergeTree](../../operations/table_engines/mergetree.md). Кэш общий для сервера, память выделяется по мере необходимости. **Пример** ```xml 5368709120 ``` ## max_concurrent_queries Максимальное количество одновременно обрабатываемых запросов. **Пример** ```xml 100 ``` ## max_connections Максимальное количество входящих соединений. **Пример** ```xml 4096 ``` ## max_open_files Максимальное количество открытых файлов. По умолчанию - `maximum`. Рекомендуется использовать в Mac OS X, поскольку функция `getrlimit()` возвращает некорректное значение. **Пример** ```xml 262144 ``` ## max_table_size_to_drop Ограничение на удаление таблиц. Если размер таблицы семейства [MergeTree](../../operations/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](../../operations/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](../../operations/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
``` ## 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 Временная зона сервера. Указывается идентификатором 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 ``` ## tmp_path Путь ко временным данным для обработки больших запросов. !!! warning "Обратите внимание" Завершающий слеш обязателен. **Пример** ```xml /var/lib/clickhouse/tmp/ ``` ## uncompressed_cache_size {#server-settings-uncompressed_cache_size} Размер кеша (в байтах) для несжатых данных, используемых движками таблиц семейства [MergeTree](../../operations/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 Путь к файлу, который содержит: - Конфигурации пользователей. - Права доступа. - Профили настроек. - Настройки квот. **Пример** ```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.yandex/docs/ru/operations/server_settings/settings/)