clickhouseclickhouse There is no DistributedDDL configuration in server config
Posted 九师兄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了clickhouseclickhouse There is no DistributedDDL configuration in server config相关的知识,希望对你有一定的参考价值。
1.概述
在平常使用clickhouse中会有一些建表,删表等操作,但是对于整个集群来说每台服务器都需要建表。在ClickHouse集群中,我们可以在DDL语句上附加ON CLUSTER <cluster_name>
的语法,使得该DDL语句执行一次即可在集群中所有实例上都执行,简单方便。但是需要一些配置才行,如果不配置在使用这个语法的时候会报错:
Code: 139, e.displayText() = DB::Exception: There is no DistributedDDL configuration in server config (version 21.3.4.25 (official build))
2.解决办法
在config.xml加上以下配置:
<distributed_ddl>
<!-- Path in ZooKeeper to queue with DDL queries -->
<path>/clickhouse/task_queue/ddl</path>
<cleanup_delay_period>60</cleanup_delay_period>
<task_max_lifetime>86400</task_max_lifetime>
<max_tasks_in_queue>1000</max_tasks_in_queue>
</distributed_ddl>
解释一下;
- path:分布式DDL写入zk的路径,默认就是
/clickhouse/task_queue/ddl
cleanup_delay_period
:检查DDL记录清理的间隔,单位为秒,默认60秒task_max_lifetime
:分布式DDL记录可以保留的最大时长,单位为秒,默认保留7天max_tasks_in_queue
:分布式DDL队列中可以保留的最大记录数,默认为1000条
以上是关于clickhouseclickhouse There is no DistributedDDL configuration in server config的主要内容,如果未能解决你的问题,请参考以下文章
clickhouseClickHouse表引擎 MergeTree 建表方式与分区规则