ClickHouse 基础架构
我们从两块来看ClickHouse的基础架构
- ClickHouse集群结构
- ClickHouse 内部结构
1. ClickHouse集群结构
ClickHouse 采用了 Multi Master 多主架构,集群中的每个节点角色对等,客户端访问任意一个节点都能得到相同的效果。
多主架构中每个节点对等的角色使系统架构变得更加简单,不用再区分主控节点、数据节点和计算节点,集群中的所有节点功能相同。
多主架构天然规避了单点故障的问题,非常适合用于多数据中心、异地多活的场景。
2. ClickHouse 内部结构
2.1 Column
ClickHouse 内存中的一列数据由一个Column对象表示。Column 对象分为接口和实现两个部分。
在IColumn接口对象中,定义了对数据进行各种关系运算的方法,例如插入数据的insertRangeFrom和insertFrom方法、用于分页的cut,以及用于过滤的filter方法等,几乎所有的操作都是不可变的,这些操作不会更改原始列