ClickHouse Dist表的Replica选择逻辑深度解析-- Custom Key以及Sample的执行逻辑我们经常使用ClickHouse的Dist表来实现集群内部的分布式查询。我们的问题是,基于ClickHouse的Shard和Replica概念,在多shard、多Replica环境下,ClickHouse是怎么做到不重复地读取数据的呢?最简单的,对于一个Shard内部的数据,是一个Replica在为它服务,还是所有的Replica都提供数据? 本文就带着这个问题,从代码层面探究整个Dist表查询时候在数据层面的处理逻辑。其中,Dist表针对Sample查询,Custom Key查询,在查询任务的分配和分布