ClickHouse入门、实战与进阶
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.15 分片和副本

ClickHouse提供完整的分布式集群解决方案,基于分片+副本实现线性扩展和高可用。

ClickHouse支持单机模式和分布式集群模式。在分布式模式下,ClickHouse会将数据分成多块,并分发到不同的节点。不同的分片策略在处理不同的SQL模式时各有优势。ClickHouse提供了丰富的分片策略,用户可以根据自己的实际需求进行选择。

ClickHouse支持分布式SQL查询。首先,SQL会被分解为多个任务发送给集群。然后,ClickHouse会在多台机器上进行并行处理。最后,在一台机器上将结果汇总在一起,返回客户端用户。

在多个副本的情况下,ClickHouse提供了多种查询分发策略,列举如下。

❑随机分布:从多个副本中随机选择一个。

❑最新主机名原则:选择与当前分布的机器最相似的主机名节点并发出查询。在特定的网络拓扑中,这种策略可以减少网络延迟,而且可以保证查询分布到固定的副本机器上,充分利用系统缓存。

❑按顺序:尽量按照特定的顺序一一分发。当前副本不可用时,将推迟到下一个副本。

❑第一个或者随机:在顺序模式下,当第一个副本不可用时,所有的工作负载都会积压到第二个副本,导致负载不平衡。“第一个或随机策略”解决了这个问题:当第一个副本不可用时,随机选择另一个副本,确保剩余副本之间的负载平衡。另外,在跨地域复制场景下,将第一个副本设置为地域内的副本,可以显著降低网络延迟。