1.创建4个vm(ubuntu),分别安装clickhouse,配置集群信息,ck版本21.11.4.14

2.配置集群信息,2个分片,1个副本

sudo vim /etc/clickhouse-server/config.xml

在该文件中,配置3个部分内容:a) remote_servers, b) zookeeper, c)macros

a) 标明各个分片、副本信息,host、port

<internal_replication>true</internal_replication> //添加这一句,可减少distributed压力,用已有的复制表引擎分发同步数据

b) 配置zookeeper集群模式,一般是3个节点,或3个以上的奇数。用来协调多个副本、分片之间的同步,在各个节点上配置一致便于维护

c) 动态变量,类似别名,取replica和shard的名字,之后创建副本表或分布式表时引擎所需要内容,{shard}、{replica}

<macros>
        <shard>01</shard>
        <replica>table_01</replica>
</macros>

3.创建数据库

CREATE database data_test

4.创建两个实例 "shard 1 replica 1","shard 1 replica 2" 的副本表,需要分别在两个实例中手动建立副本表

CREATE TABLE data_test.repl_test
(
    "id" String,
    "price" Float64,
    "create_time" DateTime
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/01/repl_test','table_01')
PARTITION BY toYYYYMM(create_time)
ORDER BY id
​
CREATE TABLE data_test.repl_test
(
    "id" String,
    "price" Float64,
    "create_time" DateTime
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/01/repl_test','table_02')
PARTITION BY toYYYYMM(create_time)
ORDER BY id
​
//这里可以利用动态变量,使用一样的zk路径('/clickhouse/tables/{shard}/repl_test','{replica}'
//副本是表级别
//完成后就可在其中一个节点插入数据,在另一个节点能查到数据

5.创建用于分布式存储的数据表

CREATE TABLE data_test.repl_abc on cluster ck_cluster
(
    `id` String,
    `price` Float64,
    `create_time` DateTime
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/repl_abc','{replica}')
PARTITION BY toYYYYMM(create_time)
ORDER BY id
​
//ck_cluster 集群名字
//集群上每个实例上都成功创建了该表,同一个分片的zk路径一致,副本名不同

6.创建Distributed引擎分布式表

CREATE TABLE data_test.repl_abc_all on cluster ck_cluster
(
    `id` String,
    `price` Float64,
    `create_time` DateTime
)
ENGINE = Distributed('ck_cluster','data_test','repl_abc', rand())
​
//ck_cluster 集群名字,xuan_test 数据库名字,repl_abc 表名,rand()按照随机数拆分
//集群上每个实例上成功创建了该视图表,其自身不存储数据

7.创建完成后,在任意节点向该表 repl_abc_all 插入数据,即可在各个节点的该视图中查看全部数据,也可在各自节点数据中查看被分配到的部分数据(主要是将数据随机分给了两个分片),各分片中的副本数据是一致的

参考文章,写的比较仔细,建议阅读

[​1]  https://www.cnblogs.com/zhoujinyi/p/14890319.html 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐