ClickHouse 分散式架構(qbit)

qbit 發表於 2022-06-13

前言

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

10.5 Distributed原理解析

Distributed表引擎是分散式的代名詞,它自身不儲存任何資料,而是作為資料分片的透明代理,能夠自動路由資料至叢集中的各個節點,所以Distributed表引擎需要和其他資料表引擎一起協同工作。

本文出自 qbit snap

相關文章