本节介绍云数据库ClickHouse所涉及的基本概念。

总体架构

云数据库ClickHouse是基于开源列式数据库ClickHouse的云托管产品,在开源版本基础上提升了稳定性、安全性、可运维性。在架构设计上,它与开源版本ClickHouse类似。

云数据库ClickHouse总体架构图如下:

总体架构图

每个ClickHouse集群包含1个或多个分片(Shard),每个分片内部包含1个或多个副本(Replica)。

所有ClickHouse节点都部署在阿里云弹性计算服务器ECS之上,底层采用高可靠的云盘作为持久化存储介质。

地域(Region)

Region是指购买的云数据库ClickHouse的服务器所处地理位置。您需要在购买云数据库ClickHouse服务时指定Region,Region一旦指定后就不允许更改。

可用区(Zone)

可用区是指在同一Region下(例如华东1(杭州)),电力、网络隔离的物理区域,可用区之间内网互通,可用区内网络延时更小。

ClickHouse集群(Cluster)

在物理构成上,ClickHouse集群是由多个ClickHouse server实例组成的分布式数据库。这些ClickHouse server根据购买规格的不同而可能包含1个或多个副本(Replica)、1个或多个分片(Shard)。在逻辑构成上,一个ClickHouse集群可以包含多个数据库(Database)对象。

系列

ClickHouse集群包含两个系列,分别是高可用系列和单副本系列。高可用系列每个节点包含两个副本,即是双副本集群;单副本系列每个节点只有1个副本。

高可用集群的某个副本服务不可用的时候,同一节点(分片)的另一个副本还可以继续服务,因此集群是高可用集群;单副本集群的某一个副本服务不可用的时候,会导致整个集群不可用,需要等待该副本完全恢复服务状态,集群才能继续提供稳定服务。

因此,高可用集群的资源以及对应的购买成本都是单副本集群的2倍。

规格

规格描述单计算节点的CPU、内存资源大小,目前支持的主要规格如下

规格 资源描述
C4 4核8G内存 *2
C8 8核32G内存*2
C24 24核96G内存*2
C64 64核256G内存*2
C104 104核384G内存*2
S4 4核8G内存
S8 8核32G内存
S24 24核96G内存
S32 64核256G内存
S104 104核384G内存
说明 高可用集群单个节点提供两个副本,因此资源规格是单副本集群的2倍,例如C4节点包含 2台4核8G内存的服务器,S4节点只包含1台4核8G内存的服务器。

分片(Shard)

在超大规模海量数据处理场景下,单台服务器的存储、计算资源会成为瓶颈。为了进一步提高效率,云数据库ClickHouse将海量数据分散存储到多台服务器上,每台服务器只存储和处理海量数据的一部分,在这种架构下,每台服务器被称为一个分片(Shard)。

副本(Replica)

为了在异常情况下保证数据的安全性和服务的高可用性,ClickHouse提供了副本机制,将单台服务器的数据冗余存储在2台或多台服务器上。

数据库(Database)

数据库是ClickHouse集群中的最高级别对象,内部包含表(Table)、列(Column)、视图(View)、函数、数据类型等。

表(Table)

表是数据的组织形式,由多行、多列构成。ClickHouse的表从数据分布上,可以分为本地表、分布式表两种类型。从存储引擎上,可以分为单机表、复制表两种类型。

本地表(Local Table)

本地表的数据,只会存储在当前写入的节点上,不会被分散到多台机器上。

说明 公测期间,云数据库ClickHouse不支持本地表,只支持分布式表。

分布式表(Distributed Table)

分布式表是本地表的集合,它将多个本地表抽象为一张统一的表,对外提供写入、查询功能。当写入分布式表时,数据会被自动分发到集合中的各个本地表中;当查询分布式表时,集合中的各个本地表都会被分别查询,并且把最终结果汇总后返回。

说明 本地表与分布式表的区别在于:本地表的写入和查询,受限于单台服务器的存储、计算资源,不具备横向拓展能力;而分布式表的写入和查询,则可以利用多台服务器的存储、计算资源,具有较好的横向拓展能力。

单机表(Non-Replicated Table)

单机表的数据,只会存储在当前机器上,不会被复制到其他机器,即只有一个副本。

说明 公测期间,云数据库ClickHouse不支持单机表,只支持复制表。

复制表(Replicated Table)

复制表的数据,会被自动复制到多台机器上,形成多个副本。

说明 单机表与复制表的区别在于:
  • 单机表在异常情况下无法保证服务高可用。
  • 复制表在至少有一个正常副本的情况下,仍旧能够对外提供服务。