ClickHouse/docs/ru/operations/server_settings/settings.rst

804 lines
39 KiB
ReStructuredText
Raw Normal View History

.. _server_settings-builtin_dictionaries_reload_interval:
builtin_dictionaries_reload_interval
------------------------------------
Интервал (в секундах) перезагрузки встроенных словарей.
ClickHouse перезагружает встроенные словари с заданным интервалом. Это позволяет править словари "на лету" без перезапуска сервера.
Значение по умолчанию - 3600.
**Пример**
.. code-block:: xml
<builtin_dictionaries_reload_interval>3600</builtin_dictionaries_reload_interval>
.. _server_settings-compression:
compression
-----------
Настройки компрессии данных.
.. warning:: Не используйте, если вы только начали работать с ClickHouse.
Общий вид конфигурации:
.. code-block:: xml
<compression>
<case>
<parameters/>
</case>
...
</compression>
Можно сконфигурировать несколько разделов ``<case>``.
Поля блока ``<case>``:
+---------------------+--------------------------------------------------------------------------+
| Параметр | Описание |
+=====================+==========================================================================+
| min_part_size | Минимальный размер части таблицы. |
+---------------------+--------------------------------------------------------------------------+
| min_part_size_ratio | Отношение размера минимальной части таблицы к полному размеру таблицы. |
+---------------------+--------------------------------------------------------------------------+
| method | Метод сжатия. Возможные значения: ``lz4``, ``zstd`` (экспериментальный). |
+---------------------+--------------------------------------------------------------------------+
ClickHouse проверит условия ``min_part_size`` и ``min_part_size_ratio`` и выполнит те блоки ``case``, для которых условия совпали. Если ни один ``<case>`` не подходит, то ClickHouse применит алгоритм сжатия ``lz4``.
**Пример**
.. code-block:: xml
<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>
</case>
</compression>
.. _server_settings-default_database:
default_database
----------------
База данных по умолчанию.
Перечень баз данных можно получить запросом :ref:`query_language_queries_show_databases`.
**Пример**
.. code-block:: xml
<default_database>default</default_database>
.. _server_settings-default_profile:
default_profile
---------------
Профиль настроек по умолчанию.
Профили настроек находятся в файле, указанном в параметре :ref:`server_settings-users_config`.
**Пример**
.. code-block:: xml
<default_profile>default</default_profile>
.. _server_settings-dictionaries_config:
dictionaries_config
-------------------
Конфигурация внешних словарей.
Смотрите раздел :ref:`dicts-external_dicts`.
**Пример**
.. code-block:: xml
<dictionaries_config>*_dictionary.xml</dictionaries_config>
.. _server_settings-dictionaries_lazy_load:
dictionaries_lazy_load
----------------------
Отложенная загрузка словарей.
С установленным параметром словари подгружаются не при запуске сервера, а при первом обращении.
**Пример**
.. code-block:: xml
<dictionaries_lazy_load>true</dictionaries_lazy_load>
.. _server_settings-graphite:
graphite
--------
Отправка даных в `Graphite <https://github.com/graphite-project>`_.
Настройки:
+----------------------+------------------------------------------------------------------------------+
| Настройка | Описание |
+======================+==============================================================================+
| host | Сервер Graphite. |
+----------------------+------------------------------------------------------------------------------+
| port | Порт сервера Graphite. |
+----------------------+------------------------------------------------------------------------------+
| interval | Период отправки в секундах. |
+----------------------+------------------------------------------------------------------------------+
| timeout | Таймаут отправки данных в секундах. |
+----------------------+------------------------------------------------------------------------------+
| root_path | Префикс для ключей. |
+----------------------+------------------------------------------------------------------------------+
| metrics | Отправка данных из таблицы :ref:`system_tables-system.metrics`. |
+----------------------+------------------------------------------------------------------------------+
| events | Отправка данных из таблицы :ref:`system_tables-system.events`. |
+----------------------+------------------------------------------------------------------------------+
| asynchronous_metrics | Отправка данных из таблицы :ref:`system_tables-system.asynchronous_metrics`. |
+----------------------+------------------------------------------------------------------------------+
Можно определить несколько секций ``<graphite>``, например, для передачи различных данных с различной частотой.
**Пример**
.. code-block:: xml
<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>
<asynchronous_metrics>true</asynchronous_metrics>
</graphite>
.. _server_settings-graphite_rollup:
graphite_rollup
---------------
Настройка прореживания данных для Graphite.
Подробнее читайте в разделе :ref:`table_engines-graphitemergetree`.
**Пример**
.. code-block:: xml
<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>
.. _server_settings-http_port:
http_port/https_port
--------------------
Порт для обращений к серверу по протоколу HTTP(s).
Если указан ``https_port``, то требуется конфигурирование :ref:`server_settings-openSSL`.
Если указан ``http_port``, то настройка :ref:`server_settings-openSSL` игнорируется, даже если она задана.
**Пример**
.. code-block:: xml
<https>0000</https>
.. _server_settings-http_server_default_response:
http_server_default_response
----------------------------
Страница, показываемая по умолчанию, при обращении к HTTP(s) серверу ClickHouse.
**Пример**
Показывает ``https://tabix.io/`` при обращенинии к ``http://localhost:http_port``.
.. code-block:: xml
<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>
.. _server_settings-include_from:
include_from
------------
Путь к файлу с подстановками.
Подробности смотрите в разделе :ref:`configuration_files`.
**Пример**
.. code-block:: xml
<include_from>/etc/metrica.xml</include_from>
.. _server_settings-interserver_http_port:
interserver_http_port
---------------------
Порт для обмена между серверами ClickHouse.
**Пример**
.. code-block:: xml
<interserver_http_port>9009</interserver_http_port>
.. _server_settings-interserver_http_host:
interserver_http_host
---------------------
Имя хоста, которое могут использовать другие серверы для обращения к этому.
Если не указано, то определяется аналогично команде ``hostname -f``.
Удобно использовать, чтобы отвязаться от конкретного сетевого интерфейса.
**Пример**
.. code-block:: xml
<interserver_http_host>example.yandex.ru</interserver_http_host>
.. _server_settings-keep_alive_timeout:
keep_alive_timeout
------------------
Время в миллисекундах, в течение которого ClickHouse ожидает входящих запросов прежде, чем закрыть соединение.
**Пример**
.. code-block:: xml
<keep_alive_timeout>3</keep_alive_timeout>
.. _server_settings-listen_host:
listen_host
-----------
Ограничение по хостам, с которых может прийти запрос. Если необходимо, чтобы сервер отвечал всем, то надо указать ``::``.
Примеры:
.. code-block:: xml
<listen_host>::1</listen_host>
<listen_host>127.0.0.1</listen_host>
.. _server_settings-logger:
logger
------
Настройки логгирования.
Ключи:
+----------+-----------------------------------------------------------------------------------------------------------+
| Ключ | Описание |
+==========+===========================================================================================================+
| level | Уровень логгирования. Допустимые значения: ``trace``, ``debug``, ``information``, ``warning``, ``error``. |
+----------+-----------------------------------------------------------------------------------------------------------+
| log | Файл лога. Содержит все записи согласно ``level``. |
+----------+-----------------------------------------------------------------------------------------------------------+
| errorlog | Файл лога ошибок. |
+----------+-----------------------------------------------------------------------------------------------------------+
| size | Размер файла. Действует для ``log`` и ``errorlog``. Как только файл достиг размера ``size``, |
| | ClickHouse архивирует и переименовывает его, а на его месте создает новый файл лога. |
+----------+-----------------------------------------------------------------------------------------------------------+
| count | Количество заархивированных файлов логов, которые сохраняет ClickHouse. |
+----------+-----------------------------------------------------------------------------------------------------------+
**Пример**
.. code-block:: xml
<logger>
<level>trace</level>
<log>/var/log/clickhouse-server/clickhouse-server.log</log>
<errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog>
<size>1000M</size>
<count>10</count>
</logger>
.. _server_settings-macros:
macros
------
Подстановки параметров реплицируемых таблиц.
Можно не указывать, если реплицируемых таблицы не используются.
Подробнее смотрите в разделе :ref:`table_engines-replication-creation_of_rep_tables`.
**Пример**
.. code-block:: xml
<macros incl="macros" optional="true" />
.. _server_settings-mark_cache_size:
mark_cache_size
---------------
Приблизительный размер (в байтах) кеша "засечек", используемых движками таблиц семейства :ref:`table_engines-mergetree`.
Кеш общий для сервера, память выделяется по мере необходимости. Кеш не может быть меньше, чем 5368709120.
**Пример**
.. code-block:: xml
<mark_cache_size>5368709120</mark_cache_size>
.. _server_settings-max_concurrent_queries:
max_concurrent_queries
----------------------
Максимальное количество одновременно обрабатываемых запросов.
**Пример**
.. code-block:: xml
<max_concurrent_queries>100</max_concurrent_queries>
.. _server_settings-max_connections:
max_connections
---------------
Максимальное количество входящих соединений.
**Пример**
.. code-block:: xml
<max_connections>4096</max_connections>
.. _server_settings-max_open_files:
max_open_files
--------------
Максимальное количество открытых файлов.
По умолчанию - ``maximum``.
Рекомендуется использовать в Mac OS X, поскольу функция ``getrlimit()`` возвращает некорректное значение.
**Пример**
.. code-block:: xml
<max_open_files>262144</max_open_files>
.. _server_settings-max_table_size_to_drop:
max_table_size_to_drop
----------------------
Ограничение на удаление таблиц.
Если размер таблицы семейства :ref:`table_engines-mergetree` превышает ``max_table_size_to_drop`` (в байтах), то ее нельзя удалить запросом DROP.
Если таблицу все же необходимо удалить, не перезапуская при этом сервер ClickHouse, то необходимо создать файл ``<clickhouse-path>/flags/force_drop_table`` и выполнить запрос DROP.
Значение по умолчанию - 50GB.
Значение 0 означает, что можно удалять все таблицы без ограничений.
**Пример**
.. code-block:: xml
<max_table_size_to_drop>0</max_table_size_to_drop>
.. _server_settings-merge_tree:
merge_tree
----------
Тонкая настройка таблиц семейства :ref:`table_engines-mergetree`.
Подробнее смотрите в заголовочном файле MergeTreeSettings.h.
**Пример**
.. code-block:: xml
<merge_tree>
<max_suspicious_broken_parts>5</max_suspicious_broken_parts>
</merge_tree>
.. _server_settings-openSSL:
openSSL
-------
Настройки клиента/сервера SSL.
Поддержку SSL обеспечивает библиотека ``libpoco``. Описание интерфейса находится в файле `SSLManager.h <https://github.com/yandex/ClickHouse/blob/master/contrib/libpoco/NetSSL_OpenSSL/include/Poco/Net/SSLManager.h>`_
Ключи настроек сервера/клиента:
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
| Ключ | Описание |
+=============================+==========================================================================================================================+
| privateKeyFile | Путь к файлу с секретным ключем сертификата в формате PEM. Файл может содержать ключ и сертификат одновременно. |
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
| certificateFile | Путь к файлу сертификата клиента/сервера в формате PEM. Можно не указывать, если ``privateKeyFile`` содержит сертификат. |
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
| caConfig | Путь к файлу или каталогу, которые содержат доверенные корневые сертификаты. |
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
| verificationMode | Способ проверки сертификатов узла. Подробности находятся в описании класса |
| | `Context <https://github.com/yandex/ClickHouse/blob/master/contrib/libpoco/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)запрашивающий кодовую фразу доступа к |
| | секретному ключу. Например, ``<privateKeyPassphraseHandler>`` ``<name>KeyFileHandler</name>`` |
| | ``<options><password>test</password></options>`` ``</privateKeyPassphraseHandler>``. |
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
| invalidCertificateHandler | Класс (подкласс CertificateHandler) для подтвеждения невалидных сертификатов. |
| | Например, ``<invalidCertificateHandler> <name>ConsoleCertificateHandler</name> </invalidCertificateHandler>``. |
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
| disableProtocols | Запрещенные к искользованию протоколы. |
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
| preferServerCiphers | Предпочтение серверных шифров на клиенте. |
+-----------------------------+--------------------------------------------------------------------------------------------------------------------------+
**Пример настройки:**
.. code-block:: xml
<openSSL>
<server>
<!-- openssl req -subj "/CN=localhost" -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/clickhouse-server/server.key -out /etc/clickhouse-server/server.crt -->
<certificateFile>/etc/clickhouse-server/server.crt</certificateFile>
<privateKeyFile>/etc/clickhouse-server/server.key</privateKeyFile>
<!-- openssl dhparam -out /etc/clickhouse-server/dhparam.pem 4096 -->
<dhParamsFile>/etc/clickhouse-server/dhparam.pem</dhParamsFile>
<verificationMode>none</verificationMode>
<loadDefaultCAFile>true</loadDefaultCAFile>
<cacheSessions>true</cacheSessions>
<disableProtocols>sslv2,sslv3</disableProtocols>
<preferServerCiphers>true</preferServerCiphers>
</server>
<client>
<loadDefaultCAFile>true</loadDefaultCAFile>
<cacheSessions>true</cacheSessions>
<disableProtocols>sslv2,sslv3</disableProtocols>
<preferServerCiphers>true</preferServerCiphers>
<!-- Use for self-signed: <verificationMode>none</verificationMode> -->
<invalidCertificateHandler>
<!-- Use for self-signed: <name>AcceptCertificateHandler</name> -->
<name>RejectCertificateHandler</name>
</invalidCertificateHandler>
</client>
</openSSL>
.. _server_settings-part_log:
part_log
--------
Логгирование событий, связанных с данными типа :ref:`table_engines-mergetree`. Например, события добавления или мержа данных. Лог можно использовать для симуляции алгоритмов слияния, чтобы сравнивать их характеристики. Также, можно визуализировать процесс слияния.
Запросы логгируются не в отдельный файл, а в таблицу ClickHouse.
Столбцы лога:
+---------------+-----------------------------------------------------------------------------------------------------------------------+
| Столбец | Описание |
+===============+=======================================================================================================================+
| event_time | Дата события. |
+---------------+-----------------------------------------------------------------------------------------------------------------------+
| duration_ms | Время события. |
+---------------+-----------------------------------------------------------------------------------------------------------------------+
| event_type | Тип события. 1 - кусок новый, 2 - результат мержа, 3 - кусок скачан с реплики, 4 - кусок удаляется. |
+---------------+-----------------------------------------------------------------------------------------------------------------------+
| database_name | Имя базы даных. |
+---------------+-----------------------------------------------------------------------------------------------------------------------+
| table_name | Имя таблицы. |
+---------------+-----------------------------------------------------------------------------------------------------------------------+
| part_name | Имя куска данных. |
+---------------+-----------------------------------------------------------------------------------------------------------------------+
| size_in_bytes | Размер куска данных в байтах. |
+---------------+-----------------------------------------------------------------------------------------------------------------------+
| merged_from | Массив имён кусков, из которых он образован при мерже (так же заполняется в случае скачивания уже смерженного куска). |
+---------------+-----------------------------------------------------------------------------------------------------------------------+
| merge_time_ms | Время, потраченное на мерж. |
+---------------+-----------------------------------------------------------------------------------------------------------------------+
При настройке логгирования используются следующие параметры:
+-----------------------------+-----------------------------------------------------+
| Параметр | Описание |
+=============================+=====================================================+
| database | Имя базы данных. |
+-----------------------------+-----------------------------------------------------+
| table | Имя таблицы. |
+-----------------------------+-----------------------------------------------------+
| flush_interval_milliseconds | Период сброса данных из оперативной памяти на диск. |
+-----------------------------+-----------------------------------------------------+
**Пример**
.. code-block:: xml
<part_log>
<database>system</database>
<table>part_log</table>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
</part_log>
.. _server_settings-path:
path
----
Путь к каталогу с данными.
.. warning:: Завершающий слеш обязателен.
**Пример**
.. code-block:: xml
<path>/var/lib/clickhouse/</path>
.. _server_settings-query_log:
query_log
---------
Настройка логгирования запросов, принятых с настройкой :ref:`log_queries=1 <settings-log_queries>`.
Запросы логгируются не в отдельный файл, а в таблицу ClickHouse.
При настройке логгирования используются следующие параметры:
+-----------------------------+-----------------------------------------------------+
| Параметр | Описание |
+=============================+=====================================================+
| database | Имя базы данных. |
+-----------------------------+-----------------------------------------------------+
| table | Имя таблицы. |
+-----------------------------+-----------------------------------------------------+
| flush_interval_milliseconds | Период сброса данных из оперативной памяти на диск. |
+-----------------------------+-----------------------------------------------------+
Если таблица не существует, то ClickHouse создаст её. Если структура журнала запросов изменилась при обновлении сервера ClickHouse, то таблица со старой структурой переименовывается, а новая таблица создается автоматически.
**Пример**
.. code-block:: xml
<query_log>
<database>system</database>
<table>query_log</table>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
</query_log>
.. _server_settings-remote_servers:
remote_servers
--------------
Конфигурация кластеров, которые использует движок таблиц Distributed.
Пример настройки смотрите в разделе :ref:`Движки таблиц/Distributed <table_engines-distributed>`.
**Пример**
.. code-block:: xml
<remote_servers incl="clickhouse_remote_servers" />
Значение атрибута ``incl`` смотрите в разделе :ref:`configuration_files`.
.. _server_settings-resharding:
resharding
----------
Путь в ZooKeeper к очереди задач.
Подробнее читайте в разделе :ref:`table_engines-resharding`.
**Пример**
.. code-block:: xml
<resharding>
<task_queue_path>/clickhouse/task_queue</task_queue_path>
</resharding>
.. _server_settings-timezone:
timezone
--------
Временная зона сервера.
Указывается идентификатором IANA в виде часового пояса UTC или географического положения (например, Africa/Abidjan).
Временная зона необходима при преобразованиях между форматами String и DateTime, которые возникают при выводе полей DateTime в текстовый формат (на экран или в файл) и при получении DateTime из строки. Также, временная зона используется в функциях, которые работают со временем и датой, если они не получили временную зону в параметрах вызова.
**Пример**
.. code-block:: xml
<timezone>Europe/Moscow</timezone>
.. _server_settings-tcp_port:
tcp_port
--------
Порт для взаимодействия с клиентами по протоколу TCP.
**Пример**
.. code-block:: xml
<tcp_port>9000</tcp_port>
.. _server_settings-tmp_path:
tmp_path
--------
Путь ко временным данным для обработки больших запросов.
.. warning:: Завершающий слеш обязателен.
**Пример**
.. code-block:: xml
<tmp_path>/var/lib/clickhouse/tmp/</tmp_path>
.. _server_settings-uncompressed_cache_size:
uncompressed_cache_size
-----------------------
Размер кеша (в байтах) для несжатых данных, используемых движками таблиц семейства :ref:`table_engines-mergetree`.
Кеш единый для сервера. Память выделяется по-требованию. Кеш используется в том случае, если включена опция :ref:`settings-use_uncompressed_cache`.
Несжатый кеш выгодно использовать для очень коротких запросов в отдельных случаях.
**Пример**
.. code-block:: xml
<uncompressed_cache_size>8589934592</uncompressed_cache_size>
.. _server_settings-users_config:
users_config
------------
Путь к файлу, который содержит:
- Конфигурации пользователей.
- Права доступа.
- Профили настроек.
- Настройки квот.
**Пример**
.. code-block:: xml
<users_config>users.xml</users_config>
.. _server_settings-zookeeper:
zookeeper
---------
Конфигурация серверов ZooKeeper.
ClickHouse использует ZooKeeper для хранения метаданных о репликах при использовании реплицированных таблиц.
Параметр можно не указывать, если реплицированные таблицы не используются.
Подробно о репликации читайте в разделе :ref:`table_engines-replication`.
**Пример**
.. code-block:: xml
<zookeeper incl="zookeeper-servers" optional="true" />