clickhouse副本问题
大家好,我现在在搭建clickhouse的分布式集群,在数据副本的地方遇到了一些不懂的地方,在网上找了一些文章,但是出来的结果也跟我预期的不一致,所以发出来请大家帮帮忙。 我写了一个1分片2副本的配置。本机docker启动了两个实例。 metrika里面的配置如下:
<clickhouse_remote_servers>
<ckcluster_1_2>
<!--分片1-->
<shard>
<!--副本1-->
<replica>
<host>172.17.0.3</host>
<port>9000</port>
</replica>
<!--副本2-->
<replica>
<host>172.17.0.4</host>
<port>9000</port>
</replica>
</shard>
</ckcluster_1_2>
</clickhouse_remote_servers>
macros的配置是:
<yandex>
<macros>
<shard>01</shard>
<replica>01</replica> 另一个实例的配置是02
</macros>
</yandex>
建表语句是:
CREATE TABLE cluster_test.user_local ON CLUSTER ckcluster_1_2 (
name String,
age UInt8
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/ckcluster_1_2/user_local', '{replica}')
PARTITION BY age
ORDER BY tuple()
SETTINGS index_granularity = 8192;
然后我在一个节点上写入数据后,在另一个节点并不能读到数据。 然后我又创建创建了一个分布式表
CREATE TABLE IF NOT EXISTS cluster_test.user_all ON CLUSTER ckcluster_1_2
AS cluster_test.user_local
ENGINE = Distributed(ckcluster_1_2, cluster_test, user_local, rand());
向这个分布式表插入数据后,在另一个节点还是读取不到备份的数据。 然后查看挂载出来的存储位置,发现并没有数据备份到备份节点。 请教一下大家,多分片多副本的配置到底是如何配置的。。。 以及,我如果使用6台机器做分片,3台机器做副本(每台备份两个节点)是否可行,如果可行配置该怎么写。 谢谢。