前言

  • 本文主要摘录自《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

qbit
268 声望279 粉丝