ClickHouse如何引用多个配置文件


ClickHouse如何引用多个配置文件

对新手来说配置文件这块刚开始可能有点晕。

官方有个关于多个配置文件的说明,可以说基本看不懂,传送口:https://clickhouse.com/docs/zh/operations/configuration-files/

我摸索了一番在这里做个说明以免以后又忘了。

1.ClickHouse默认的主配置文件是/etc/clickhouse-server/config.xml

2.其余需要生效的配置文件需要位于/etc/clickhouse-server/config.d/目录,并且必须为xml格式

3.以两个常用的元素为例子,比如元素remote_servers(集群相关)和zookeeper(zk相关),在/etc/clickhouse-server/config.xml均有例子给出,以如下标签块显示:

...配置信息...

..配置信息..(默认被注释)

当在/etc/clickhouse-server/config.xml或者/etc/clickhouse-server/config.d/目录中xml配置以上两个标签后,会自动生效。并且元素remote_servers无需重启即可生效,元素zookeeper则需要重启生效

4.以元素remote_servers为例子,

若该元素按照标签块...配置信息1...配置在/etc/clickhouse-server/config.xml,

按照标签块...配置信息2...配置在比如/etc/clickhouse-server/config.d/cluster2.xml中,则配置1和配置2均可同时生效。

5.以元素remote_servers为例子,

在同一配置文件中,配置了两次元素remote_servers,以第一个为准生效。

比如/etc/clickhouse-server/config.d/cluster2.xml同时存在...配置信息1......配置信息2...,生效的是配置1

6.以元素remote_servers为例子,该元素默认标签为..,若想自定义标签名字比如改为..并且生效,则需要配置:

,并会使得..失效。

注意,新的标签..需要配置在文件/etc/metrika.xml中,该文件是默认进行标签替换后的存放文件。

7.在第6点中,若标签..不想放在/etc/metrika.xml中,而且比如放在/home/clickhouse/substitutions.xml中,则需在/etc/clickhouse-server/config.xml(config.d其他xml文件没试验过)中配置:

/home/clickhouse/substitutions.xml

8./etc/clickhouse-server/config.xml和/etc/clickhouse-server/config.d/*.xml中所有配置文件的配置信息,在clickhouse启动后会整理这些文件的配置并展示在/var/lib/clickhouse/preprocessed_configs/config.xml。

该文件不能去修改,会自动根据/etc/clickhouse-server/config.xml和/etc/clickhouse-server/config.d/*.xml被热修改生效的配置而自动修改。