注意:
自 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;