首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClickHouse分布式表与insert_quorum

ClickHouse分布式表与insert_quorum
EN

Stack Overflow用户
提问于 2020-09-18 10:06:21
回答 1查看 1.8K关注 0票数 0

我正在尝试配置一个同时具有切分和复制的集群,并对insert_quorum如何与分布式引擎和内部复制一起工作有一些疑问。

insert_quorum控制复制*表的多个实例的同步插入(如果insert_quorum>=2只在数据成功插入insert_quorum副本之后才返回)。

insert_distributed_sync控制对分布式表的同步插入。如果insert_distributed_sync=1客户端仅在数据成功插入目标表后才返回(如果internal_replication为真,则一个副本)。

但insert_distributed_sync、insert_quorum和internal_replication是如何协同工作的呢?我的理解是,如果我使用insert_distributed_sync=1和insert_quorum=2执行insert到分布式表,语句只会在数据插入至少两个副本之后才返回吗?或者,对于分布式引擎,insert_quorum是否被忽略,并且仅在直接使用复制的*表编写时才能工作?

EN

回答 1

Stack Overflow用户

发布于 2020-09-19 15:26:18

据我所知

  • internal_replicationinsert_distributed_sync适用于应用于ReplicatedMergeTree

的分布式engine

  • insert_quorum

INSERTDistributed表的查询使用insert_distributed_sync=1在多个*ReplicatedMergeTree上创建,将在初始的clickhouse-服务器进程中调用多个插入到ReplicatedMergeTree表中的插入,使用来自remote_servers配置部分的身份验证。

它将根据您在创建Distributed表时定义的切分键为每个碎片插入一次。

如果您定义了internal_replication=true,那么应该只编写一个*ReplicatedMergeTree表,但是当分布式引擎插入到ReplicatedMergeTree中时,初始clickhouse服务器将查询作为客户端,因此insert_quorum应该应用于目标clickhouse-server,而初始服务器只有在所有插入的部分在ZK上复制之后才会得到答案。

如果您定义了internal_replication=false,那么Distributed引擎应该启动对所有*ReplicatedMergeTree的插入,并且insert_quorum也会应用,但是复制冲突应该在ReplicatedMergeTree侧的over Zookeeper队列上解决,因为插入的部分将具有相同的控制和名称。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63953644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档