clickhouse副本只有一个节点有数据原因
基础
ClickHouse 分片、 Distributed 表、副本机制https://docker.blog.csdn.net/article/details/15112315
只有使用了 ReplicatedMergeTree 复制表系列引擎,才能应用副本的能力。
ReplicatedMergeTree 在设计上有一些显著特点:
- 依赖 ZooKeeper:在执行 INSERT 和 ALTER 查询的时候,ReplicatedMergeTree 需要借助 ZooKeeper 的分布式协同能力,来实现多个副本之间的同步。但是在查询副本的时候,并不需要使用 ZooKeeper。
- 表级别的副本:副本是在表级别定义的,所以每张表的副本配置都可以按照它的实际需求进行个性化定义,包括副本的数量,以及副本在集群内的分布位置。
- 多主架构(Multi Master):可以在任意一个副本上执行 INSERT 和 ALTER 查询,它们的效果是相同的,这些操作会借助 ZooKeeper 的协同能力被分发至每个副本以本地形式执行。
- Block 数据块:在执行 INSERT 命令写入数据时,会依据 max_insert_block_size 的大小(默认 1048576 行)将数据切分成若干个 Block 数据块。因此 Block 数据块是数据写入的基本单元,并且具有写入的原子性和唯一性。
- 原子性:在数据写入时,一个 Block 数据块内的数据要么全部写入成功,要么全部写入失败。
- 唯一性:在