Clickhouse internal_replication的配置

  1. 如果底层是非复制表,那么这个值设为false(默认)。表示insert分布式表时,会在分片的所有副本都写入一份。
  2. 如果底层是复制表,那么这个值配置为true。表示分布式表不会往所有副本都写入。仅写入到一个副本。

internal_replication这个参数是控制写入数据到分布式表时,分布式表会控制这个写入是否的写入到所有副本中。与复制表的同步是不一样的。为什么<2>中要设置为true,这就是为了避免和复制表的同步复制机制出现冲突,导致数据重复或者不一致。

因为如果既是复制表、internal_replication又为false,那么写入到分布式表时会写入到同一分片的所有副本,而此时复制表的机制也会把不同副本之间的数据进行同步。而且分布式表写入到所有副本并不是原子性的,也就是说,写入到所有副本时,写入某个副本失败了,那这个副本就写入失败了,不会矫正。复制表的同步是会保证同步的。

参考博客
https://blog.csdn.net/qq_36951116/article/details/105511422

猜你喜欢

转载自blog.csdn.net/wenyichuan/article/details/113867979