我这里因为数据是从hive表导入的,所以无需副本,所以选择方案一
2、独立配置文件clickhouse可以通过substitutions来将部分配置项单独写在一个文件中。这样的好处是方便管理,不需要每次都维护config.xml
3、配置文件1)users.xml
因为是写本地表,所以可以配置新增一个分布式表专用的只读账号,用于分布式表读取,在
2)config.xml
添加include_from标签,和incl属性
1、在
2、修改
3)metrika.xml
创建分布式表配置文件,以下是一个完整的配置文件
4)创建分布式表
重启服务后,创建分布式表:
-- 创建本地表,多个节点都需要创建create table dw_local.hits(p Date, i Int32) ENGINE =MergeTree order by p;-- 插入本地表数据,节点1insert into dw_local.hits(p,i) values('2021-01-01',1),('2021-01-01',2),('2021-01-02',3),('2021-01-02',4);-- 插入本地表数据,节点2insert into dw_local.hits(p,i) values('2021-01-01',5),('2021-01-01',6),('2021-01-02',7),('2021-01-02',8);-- 创建分布式表:-- dw.hits :分布式表名-- dw_cluster:集群名称-- dw_local:本地表的库名-- hits:本地表名CREATE TABLE IF NOT EXISTS dw.hits (p Date, i Int32) ENGINE = Distributed(dw_cluster, dw_local, hits);-- 查询分布式表select * from dw.hits t limit 10;-- 查询本地表select * from dw_local.hits t limit 10;