如何为加入引擎创建复制 table

How to create Replicated table for Join Engine

集群上有复制的分片,由于我无法创建 'ReplicatedJoin' 引擎 table,我创建了一个分布式引擎 table(join_dist ) 在加入引擎本地 table(join_local) 上。通过代理将数据插入本地 table 后,我执行以下查询: select count(1) from join_dist 我发现它的结果大约是实际值的一半。我认为这个查询只收集集群的一半分片结果。我该如何解决?

您可以使用分布式 table 的多路复用功能。


因此您创建了一个额外的集群 remote_serves,其中所有 Clickhouse 节点都是单个分片中的副本 internal_replication = false

然后使用该新集群创建分布式 table。

然后将数据插入分布式 table 和分布式 table 多路复用插入并将完全相同的数据写入所有副本(到所有引擎=Join table)。

然后你使用来自 join 的 select count(1)——你不需要使用来自 _dist 的 select count(1) 因为所有的 join tables 都有相同的数据。