前言
本文主要摘录自《ClickHouse原理解析与应用实践》
ClickHouse原理解析与应用实践 朱凯著 北京:机械工业出版社,2020.5(2021.10 重印) 书中使用 ClickHouse 版本为 19.17.4.11
摘录
2.1.7 多主架构
HDFS、Spark、HBase和Elasticsearch这类分布式系统,都采用了Master-Slave主从架构,有一个管控节点作为Leader统筹全局。而ClickHouse则采用Multi-Master多主架构,集群中的每个节点角色对等,客户端访问任意一个节点都能得到相同的效果。
这种多主的架构由许多优势,例如对等的的角色使系统架构变得更加简单,不用再区分主控节点、数据节点和计算节点,集群中的所有节点功能相同。所以它天然规避饿了单点故障的问题,非常适用用于多数据中心、异地多活的场景。
2.1.9 数据分片与分布式查询
数据分片是将数据进行横向切分,这是一种在面对海量数据的场景下,解决存储和查询瓶颈的有效手段,是一种分治思想的体现。
ClickHouse支持分片,而分片则依赖集群。每个集群由1到多个分片组成,而每个分片则对应了ClickHouse的一个服务节点。分片的数量上限取决于节点数量(一个分片只能对应一个服务节点)。
10.1 副本与分片概述
抛开表引擎的不同,单纯从数据层面来看,副本和分片有时候只有一线之隔。
10.2.3 副本的定义形式
ClickHouse的副本采用了多主架构,每个副本实例都可以作为数据读、写的入口。
10.4 数据分片
ClickHouse中的每个服务节点都可以称为一个shard(分片)。ClickHouse的数据分片需要结合Distributed表引擎一同使用。
10.4.1 集群的配置方式
本节介绍了几种典型分布式配置。
shard 更像是逻辑层面的分组,而无论是副本还是分片,他们的载体都是replica,所以从某种角度来看,副本也是分片。
- 不包含副本的分片:有 node,没有 shard/replica
- 不包含副本的分片:没有 node,有 shard/replica
- N个分片和N个副本:没有 node,有 shard/replica
查看分布式集群节点信息
SELECT * FROM system.clusters;
10.5 Distributed原理解析
Distributed表引擎是分布式的代名词,它自身不存储任何数据,而是作为数据分片的透明代理,能够自动路由数据至集群中的各个节点,所以Distributed表引擎需要和其他数据表引擎一起协同工作。
本文出自 qbit snap
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。