配置 DDL on Cluster 功能

最近更新时间:2025-08-11 09:58:51

我的收藏
注意:
自 24.8.14.39 版本起将不再支持 DDL on Cluster 功能,从早期版本升级至 24.8.14.39 以及之后版本时,DDL on Cluster 相关配置将会失效。
开启 DDL on Cluster 功能后,执行删除命令需要谨慎操作,删除单个节点上的本地表将导致集群所有节点的本地表均被删除。
默认情况下,开源 ClickHouse 在集群维度执行建表等 DDL 操作时需要手动添加 ON CLUSTER XXX 语法,例如 CREATE TABLE testdb.account ON CLUSTER default_cluster,否则所建的数据表只存在于单节点上。
腾讯云数据仓库 TCHouse-C 从 21.8.8.12 版本起增加 DDL on Cluster 新功能,在执行 DDL 操作时可以自动添加 Cluster,无需用户在建表时增加 ON CLUSTER 语句。
DDL on Cluster 功能默认状态为不开启,如需配置要新增如下参数:
<!--default_on_cluster为默认添加的Cluster,默认为""-->
<default_on_cluster>default_cluster</default_on_cluster>
<!--enable_default_on_cluster为是否开启DDL on Cluster功能,默认为0-->
<enable_default_on_cluster>1</enable_default_on_cluster>

使用方式

配置文件永久配置

在 users.xml 文件中添加如下配置参数,配置后不需要重启:
<yandex>
<!-- Profiles of settings. -->
<profiles>
<!-- Default of settings. -->
<default>
<default_on_cluster>default_cluster</default_on_cluster>
<enable_default_on_cluster>1</enable_default_on_cluster>
</default>
</profiles>
</yandex>
通过如下 SQL 确认 DDL on Cluster 功能是否生效,0 为不生效,1 为生效。
SELECT * FROM system.settings WHERE name = 'enable_default_on_cluster';

用户 session 级别临时修改

set default_on_cluster='default_cluster';
set enable_default_on_cluster=1;