Конфигурационные файлы ====================== Основной конфигурационный файл сервера - ``config.xml``. Он расположен в директории ``/etc/clickhouse-server/``. Отдельные настройки могут быть переопределены в файлах ``*.xml`` и ``*.conf`` из директорий ``conf.d`` и ``config.d`` рядом с конфигом. У элементов этих конфигурационных файлов могут быть указаны атрибуты ``replace`` или ``remove``. Если ни один не указан - объединить содержимое элементов рекурсивно с заменой значений совпадающих детей. Если указано ``replace`` - заменить весь элемент на указанный. Если указано ``remove`` - удалить элемент. Также в конфиге могут быть указаны "подстановки". Если у элемента присутствует атрибут ``incl``, то в качестве значения будет использована соответствующая подстановка из файла. По умолчанию, путь к файлу с подстановками - ``/etc/metrika.xml``. Он может быть изменён в конфиге в элементе ``include_from``. Значения подстановок указываются в элементах ``/yandex/имя_подстановки`` этого файла. Подстановки могут также выполняться из ZooKeeper. Для этого укажите у элемента атрибут ``from_zk="/path/to/node"``. Значение элемента заменится на содержимое узла ``/path/to/node`` в ZooKeeper. В ZooKeeper-узел также можно положить целое XML-поддерево, оно будет целиком вставлено в исходный элемент. В ``config.xml`` может быть указан отдельный конфиг с настройками пользователей, профилей и квот. Относительный путь к нему указывается в элементе users_config. По умолчанию - ``users.xml``. Если ``users_config`` не указан, то настройки пользователей, профилей и квот, указываются непосредственно в ``config.xml``. Для ``users_config`` могут также существовать переопределения в файлах из директории ``users_config.d`` (например, ``users.d``) и подстановки. Для каждого конфигурационного файла, сервер при запуске генерирует также файлы ``file-preprocessed.xml``. Эти файлы содержат все выполненные подстановки и переопределения, и предназначены для информационных целей. Если в конфигурационных файлах были использованы ZooKeeper-подстановки, но при старте сервера ZooKeeper недоступен, то сервер загрузит конфигурацию из preprocessed-файла. Сервер следит за изменениями конфигурационных файлов, а также файлов и ZooKeeper-узлов, которые были использованы при выполнении подстановок и переопределений, и перезагружает настройки пользователей и кластеров на лету. То есть, можно изменять кластера, пользователей и их настройки без перезапуска сервера.