Теперь, когда ClickHouse уже установлен, мы можем более детально посмотреть на его конфигурацию. Основной конфигурационный файл - это config.xml
, который расположен в папке по умолчанию /etc/clickhouse-server
.
Любые изменения можно вносить сразу в этот файл, либо создать отдельный файл конфигурации и положить его в папку /etc/clickhouse-server/config.d/
. В этом случае данные отдельного конфига перепишут значения по-умолчанию. Помимо этого кликхаус для части параметров может обновлять их значения на лету - достаточно всего лишь обновить параметр в файле и кликхаус применит его. Давайте рассмотрим некоторые ключевые параметры:
Порт для обращений к серверу по протоколу HTTP(s). При использовании https
нужна конфигурация openSSL
.
Пример: <https_port>9999</https_port>
<http_port>8123</http_port>
Порт для общения с клиентами по TCP протоколу. Здесь стоит отметить, что кликхаус поддерживает два режима подключений - по http и по бинарному протоколу. Очевидно, что общение по бинарному протоколу идет быстрее чем по http, но http наиболее распространен и его очень легко интегрировать в ваше приложение для чтения и записи данных, поэтому определяющим фактором выбора протокола (как чаще всего и бывает) будет именно скорость внедрения в ваши сервисы.
Пример: <tcp_port>9000</tcp_port>
Порт для обмена репликационными данными с серверами ClickHouse.
Пример: <interserver_http_port>9009</interserver_http_port>
На каких хостах слушать входящие подключения.
Примеры: <listen_host>::</listen_host>
— сервер слушает все адреса. <listen_host>::1</listen_host>
— сервер слушает ipv6 localhost. <listen_host>127.0.0.1</listen_host>
— сервер слушает только запросы с localhost. <listen_host>0.0.0.0</listen_host>
— сервер слушает все запросы с ipv4 адресов.
Максимальное количество входящих соединений.
Примеры: <max_connections>4096</max_connections>
Максимальное количество одновременно обрабатываемых запросов. Очень важный параметр, поскольку иногда быстрее обработать 100 запросов последовательно с максимальным параллелизом 10 штук, нежели пытаться обработать сразу все 100 запросов в параллель.
Примеры: <max_concurrent_queries>100</max_concurrent_queries>
Путь к файлу, который отвечает за конфигурацию пользователей, права, профили и квоты. Мы затронем эту тему в следующем задании.
Пример: <users_config>users.xml</users_config>
Контент, который возвращается при обращении к HTTP(s) серверу. По умолчанию сервер отдает "Ok." Таким образом вы сможете настроить базовую проверку доступности вашего кликхаус сервера - если подключение на http порт удалось и сервер вернул код ответа 200 - значит он по крайней мере запущен.
Пример: <http_server_default_response>Success!</http_server_default_response>
Путь к данным ClickHouse. Завершающий слеш обязателен. На самом деле данный путь вам понадобится либо при создании бекапов, либо при восстановлении после сбоя. Мы не рекомендуем менять дефолтное расположение, чтобы не сбивать с толку других участников команды поддержки. Если же вы хотите вынести ваши данные на более быстрые диски - то есть смысл подмонтировать их напрямую в /var/lib/clickhouse.
Пример: <path>/var/lib/clickhouse/</path>
Здесь были выделены только основные пункты конфигурации ClickHouse, все возможные опции вы можете найти здесь. Часть из них мы будем обсуждать в следующих заданиях при настройке соответствующих функций.
В завершении хотелось бы отметить, что если вы хотите переопределить какие-либо настройки, то есть смысл записать их в отдельный файл в директорию /etc/clickhouse-server/config.d/
. Например, вы можете создать файл my-config.xml
по пути /etc/clickhouse-server/config.d/my-config.xml
, который переопределяет http port, который будет слушать сервер.
<?xml version="1.0"?>
<yandex>
<http_port>8663</http_port>
</yandex>
Мы советуем использовать этот функционал по максимому и переопределять настройки КХ в отдельных файлах, тогда у вас не возникнет проблем с обновлением сервера - дефолтная конфигурация может быть легко перезаписана, поскольку все изменения вы вынесли в отдельные файлы.