架構(gòu)比對(duì)
Apache Doris、Clickhouse 赐稽、Greenplum都是基于MPP架構(gòu)的實(shí)現(xiàn)的可用于數(shù)倉(cāng)分析的數(shù)據(jù)庫(kù)管理系統(tǒng)。下邊通過(guò)具體的架構(gòu)設(shè)計(jì)分析三者的區(qū)別。
Apache Dodis
官網(wǎng)描述
Apache Doris是一個(gè)現(xiàn)代化的MPP分析型數(shù)據(jù)庫(kù)產(chǎn)品贞岭。
架構(gòu)圖
架構(gòu)描述
1. 高可靠
Apache Doris 使用了主從架構(gòu)進(jìn)行設(shè)計(jì)。通過(guò)Fronted Engine(前端引擎) 的主從達(dá)到高可用的目的搓侄。FE主要有有三個(gè)??瞄桨,?個(gè)是leader,?個(gè)是follower讶踪,還有?個(gè)observer芯侥。leader跟follower,主要是?來(lái)達(dá)到元數(shù)據(jù)的?可?乳讥,保證單節(jié)點(diǎn)宕機(jī)的情況下柱查,元數(shù)據(jù)能夠?qū)崟r(shí)地在線恢復(fù),?不影響整個(gè)服務(wù)云石。erver只是?來(lái)擴(kuò)展查詢節(jié)點(diǎn)唉工,就是說(shuō)如果在發(fā)現(xiàn)集群壓??常?的情況下,需要去擴(kuò)展整個(gè)查詢的能?汹忠,那么可以加observer的節(jié)點(diǎn)淋硝。observer不參與任何的寫?深啤,只參與讀取赁酝。Apache Doris?元數(shù)據(jù)層?,Doris采?Paxos協(xié)議以及Memory + Checkpoint + Journal的機(jī)制來(lái)確保元數(shù)據(jù)的?性能及?可靠何吝。
2. 高可用
Apache Doris 通過(guò)建表的時(shí)候指定多副本的機(jī)制實(shí)現(xiàn)高可靠的功能铅乡。
3. 高效查詢
Doris整體架構(gòu)整合Coogle Mesa + Apache Impala + ORC列式從存儲(chǔ)三種技術(shù)继谚。通過(guò)Mesa實(shí)現(xiàn)預(yù)聚合特性,Impala 實(shí)現(xiàn)MPP連接處理的特性阵幸,ORC列式存儲(chǔ)更適合OLAP數(shù)據(jù)分析花履。
多副本的機(jī)制減少數(shù)據(jù)網(wǎng)絡(luò)拷貝,也提供了查詢的效率挚赊。
將數(shù)據(jù)進(jìn)行分區(qū)臭挽、分桶然后分發(fā)散列到各個(gè)節(jié)點(diǎn)實(shí)現(xiàn)分布式計(jì)算。還有其他的索引咬腕、引擎等優(yōu)化暫不從架構(gòu)層面對(duì)比分析了欢峰。
ClickHouse
官網(wǎng)描述
ClickHouse是一個(gè)用于聯(lián)機(jī)分析(OLAP)的列式數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)。
架構(gòu)圖
架構(gòu)描述
1. 高可靠
ClickHouse則采用Multi-Master多主架構(gòu),集群中每個(gè)角色對(duì)等纽帖,客戶端訪問(wèn)任意一個(gè)節(jié)點(diǎn)都能得到相同的效果宠漩。
2. 高可用
同樣也是支持?jǐn)?shù)據(jù)的多副本,這樣單點(diǎn)故障不影響數(shù)據(jù)的查詢懊直。
3. 高效查詢
多副本節(jié)點(diǎn)計(jì)算可以基于本地?cái)?shù)據(jù)較少IO傳輸扒吁。
純列式存儲(chǔ)適合OLAP聚合分析。
數(shù)據(jù)分區(qū)室囊、分片雕崩、分塊多進(jìn)程+多線程并行計(jì)算。分塊數(shù)和cpu核心數(shù)相同融撞,充分利用CPU多線程并行計(jì)算盼铁。
表引擎豐富,尤其是MergeTree引擎做了通過(guò)各種維度的優(yōu)化更適合OLAP分析尝偎。
Greenplum
官網(wǎng)描述
GP(GreenPlum)是業(yè)界最快最高性價(jià)比的關(guān)系型分布式數(shù)據(jù)庫(kù)饶火,它在開源的PG(PostgreSql)的基礎(chǔ)上采用MPP架構(gòu)(Massive Parallel Processing,海量并行處理),具有強(qiáng)大的大規(guī)模數(shù)據(jù)分析任務(wù)處理能力致扯。Greenplum 是全球領(lǐng)先的大數(shù)據(jù)分析引擎肤寝,專為分析、機(jī)器學(xué)習(xí)和AI而打造抖僵。
架構(gòu)圖
架構(gòu)描述
1:高可靠
采用master+standby的方式實(shí)現(xiàn)服務(wù)的高可靠鲤看。
1)????????創(chuàng)建與客戶端的會(huì)話鏈接和管理;
2)????????SQL的解析并造成分布式的執(zhí)行計(jì)劃耍群;
3)????????將生成好的執(zhí)行計(jì)劃分發(fā)到每一個(gè)Segment上執(zhí)行义桂;
4)????????收集Segment的執(zhí)行結(jié)果;
5)????????不存儲(chǔ)業(yè)務(wù)數(shù)據(jù)世吨,只存儲(chǔ)數(shù)據(jù)字典澡刹;
6)????????能夠一主一備(standby)呻征,分布在兩臺(tái)機(jī)器上耘婚,為了提升性能,最好單獨(dú)占用一臺(tái)機(jī)器陆赋。
2:高可用
數(shù)據(jù)冗余-Segment 鏡像保護(hù)沐祷。主節(jié)點(diǎn)(Primary Segment)故障后會(huì)自動(dòng)切換到鏡像節(jié)點(diǎn)(Mirror Segment),集群仍然保持可用狀態(tài)攒岛。當(dāng)主節(jié)點(diǎn)恢復(fù)并啟動(dòng)以后赖临,主節(jié)點(diǎn)會(huì)自動(dòng)恢復(fù)期間的變動(dòng)。
3:高效查詢
多級(jí)分區(qū)灾锯、也支持列式存儲(chǔ)兢榨。多節(jié)點(diǎn)并行計(jì)算。
當(dāng)然Greenplum不僅僅支持OLAP,同時(shí)OLTP 是一款優(yōu)秀的HTAP數(shù)據(jù)庫(kù)。
小結(jié)
以上對(duì)三款數(shù)據(jù)庫(kù)架構(gòu)層面進(jìn)行了簡(jiǎn)單介紹吵聪,由于使用場(chǎng)景不同凌那,穩(wěn)定性,易用性吟逝、擴(kuò)展性以及生態(tài)各有千秋帽蝶,不存在孰好孰壞,可以根據(jù)自己的使用場(chǎng)景块攒,詳細(xì)了解哪款數(shù)據(jù)庫(kù)更能契合自己的場(chǎng)景解決自己的問(wèn)題励稳。