如何解决ClickHouse分布式表格和insert_quorum
我正在尝试配置具有分片和复制功能的群集,并且对insert_quorum如何与分布式引擎和内部复制一起工作有疑问。
insert_quorum控制向多个Replicated *表实例的同步插入(如果insert_quorum> = 2,则只有在将数据成功插入insert_quorum副本后,客户端才会返回)。
insert_distributed_sync控制向distributed表的同步插入。如果insert_distributed_sync = 1客户端将仅在成功将数据插入目标表后返回(如果internal_replication为true,则为一个副本)。
但是insert_distributed_sync,insert_quorum和internal_replication如何一起工作? 我的理解是否正确,如果我使用insert_distributed_sync = 1和insert_quorum = 2执行对分布式表的插入操作,则仅在将数据插入至少两个副本中后,语句才会返回? 还是为分布式引擎忽略了insert_quorum,并且仅在直接使用Replicated *表进行写操作时有效?
解决方法
据我了解
-
internal_replication
和insert_distributed_sync
适用于分布式引擎 -
insert_quorum
应用于ReplicatedMergeTree
INSERT
在多个Distributed
上创建的*ReplicatedMergeTree
表进行 insert_distributed_sync=1
查询,将在初始Clickhouse-server进程内部使用来自{ {1}}配置部分。
将根据您在创建remote_servers
表时定义的分片键为每个分片插入一个插入。
如果您定义internal_replication = true,则只应写入一个* ReplicatedMergeTree表,但是当分布式引擎插入ReplicatedMergeTree时,初始的Clickhouse-server充当查询的客户端,因此Distributed
应该应用于目标{{ 1}},只有在所有插入的部件都将通过ZK复制之后,初始服务器才能得到答案。
如果您定义internal_replication = false,则insert_quorum
引擎应启动对所有* ReplicatedMergeTree的插入,并且clickhouse-server
也将适用,但是复制冲突应在{{1 }},导致插入的零件具有相同的控制总和和名称。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。