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