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均有例子给出,以如下标签块显示:

<remote_servers>...配置信息...</remote_servers>

<zookeeper>..配置信息..</zookeeper>(默认被注释)

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

4.以元素remote_servers为例子,

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

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

5.以元素remote_servers为例子,

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

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

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

<remote_servers incl="cluster_config" optional="true" />,并会使得<remote_servers>..</remote_servers>失效。

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

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

<include_from>/home/clickhouse/substitutions.xml</include_from>

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被热修改生效的配置而自动修改。

 

posted @ 2022-04-12 15:30  PiscesCanon  阅读(496)  评论(0编辑  收藏  举报