新聞中心
從架構(gòu)特點(diǎn)到功能缺陷,帶你重新認(rèn)識分析型分布式數(shù)據(jù)庫
作者:王磊 2018-05-07 08:55:26
數(shù)據(jù)庫
分布式 本文會將OLAP類場景的分布式數(shù)據(jù)也納入進(jìn)來,從兩個(gè)維度對“分布式數(shù)據(jù)庫”進(jìn)行拆解,第一部分會橫向談?wù)劜煌摹胺植际綌?shù)據(jù)庫”,把它們分為五類并對其中OLAP場景的三類做概要分析;第二部分結(jié)合NoSQL與NewSQL的差異,縱向來談?wù)凮LTP場景“分布式數(shù)據(jù)庫”實(shí)現(xiàn)方案的關(guān)鍵技術(shù)要點(diǎn)。

成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、成都網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站制作等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:成都資質(zhì)代辦等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶的一致贊揚(yáng)!
隨著大規(guī)?;ヂ?lián)網(wǎng)應(yīng)用的廣泛出現(xiàn),分布式數(shù)據(jù)庫成為近兩年的一個(gè)熱門話題。同樣,在銀行業(yè)主推X86限制主機(jī)與小型機(jī)的背景下,傳統(tǒng)的單機(jī)數(shù)據(jù)庫逐漸出現(xiàn)了一些瓶頸,馬上會面臨是否引入分布式數(shù)據(jù)庫的問題。
近期,我在個(gè)人公眾號就“銀行引入分布式數(shù)據(jù)庫的必要性”做過一些展望,并收到了一些朋友的反饋,除了對分布式數(shù)據(jù)庫具體技術(shù)探討外,還有一類很有趣的建議,“能不能也講講Teradata、Greenplum這類MPP,這些也是分布式數(shù)據(jù)庫,但老板總是認(rèn)為OLTP場景下的才算數(shù)”。
的確,為了解決OLAP場景需求,其實(shí)很早就出現(xiàn)了分布式架構(gòu)的產(chǎn)品和解決方案,其與目前的OLTP方案有很多共通的地方。而且我相信,今后OLAP和OLTP兩個(gè)分支技術(shù)的發(fā)展也必然是交錯(cuò)前行,可以相互借鑒的。
鑒于此,本文會將OLAP類場景的分布式數(shù)據(jù)也納入進(jìn)來,從兩個(gè)維度對“分布式數(shù)據(jù)庫”進(jìn)行拆解,第一部分會橫向談?wù)劜煌摹胺植际綌?shù)據(jù)庫”,把它們分為五類并對其中OLAP場景的三類做概要分析;第二部分結(jié)合NoSQL與NewSQL的差異,縱向來談?wù)凮LTP場景“分布式數(shù)據(jù)庫”實(shí)現(xiàn)方案的關(guān)鍵技術(shù)要點(diǎn),是前文的延伸,也是分布式數(shù)據(jù)庫專題文章的一個(gè)總綱,其中的要點(diǎn)也都會單獨(dú)撰文闡述。
首先,我們從橫向談?wù)劜煌摹胺植际綌?shù)據(jù)庫”:
一、萬法同宗RDBMS
1990年代開始,關(guān)系型數(shù)據(jù)庫(RDBMS)成為主流,典型的產(chǎn)品包括Sybase、Oracle、DB2等,同期大約也是國內(nèi)IT產(chǎn)業(yè)的起步階段。RDBMS的基本特征已有學(xué)術(shù)上的定義,這里不再贅述。
但從實(shí)際應(yīng)用的角度看,我認(rèn)為有兩點(diǎn)最受關(guān)注:
- 內(nèi)部以關(guān)系模型存儲數(shù)據(jù),對外支持ANSI SQL接口;
- 支持事務(wù)管理ACID特性,尤其是強(qiáng)一致性(指事務(wù)內(nèi)的修改要么全部失敗要么全部成功,不會出現(xiàn)中間狀態(tài))。
而后出現(xiàn)的各種“分布式數(shù)據(jù)庫”,大多都是在這兩點(diǎn)上做權(quán)衡以交換其他方面的能力。
“數(shù)據(jù)庫”雖然有經(jīng)典定義,但很多大數(shù)據(jù)產(chǎn)品或許是為了標(biāo)榜對傳統(tǒng)數(shù)據(jù)庫部分功能的替代作用,也借用了“數(shù)據(jù)庫”的名號,導(dǎo)致在實(shí)踐中這個(gè)概念被不斷放大,邊界越來越模糊。本文一個(gè)目標(biāo)是要厘清這些產(chǎn)品與經(jīng)典數(shù)據(jù)庫的差異與傳承,所以不妨先弱化“數(shù)據(jù)庫”,將其放大為“數(shù)據(jù)存儲”。
那么怎樣才算是“分布式數(shù)據(jù)存儲”系統(tǒng)?
“分布式”是一種架構(gòu)風(fēng)格,用其實(shí)現(xiàn)“數(shù)據(jù)存儲”,最現(xiàn)實(shí)的目的是為了打開數(shù)據(jù)庫產(chǎn)品的性能天花板,并保證系統(tǒng)的高可靠,進(jìn)一步展開,“分布式數(shù)據(jù)庫”的必要條件有兩點(diǎn):
- 支持水平擴(kuò)展,保證高性能
通過增加機(jī)器節(jié)點(diǎn)的方式提升系統(tǒng)整體處理能力,擺脫對專用設(shè)備的依賴,并且突破專用設(shè)備方案的性能上限。這里的機(jī)器節(jié)點(diǎn),通常是要支持X86服務(wù)器。
- 廉價(jià)設(shè)備+軟件,保證高可靠
在單機(jī)可靠性較低的前提下,依靠軟件保證系統(tǒng)整體的高可靠,又可以細(xì)分為“數(shù)據(jù)存儲的高可靠”和“服務(wù)的高可靠”??傊?,任何單點(diǎn)的故障,可能會帶來短時(shí)間、局部的服務(wù)水平下降,但不會影響系統(tǒng)整體的正常運(yùn)轉(zhuǎn)。
將這兩點(diǎn)作為“分布式數(shù)據(jù)庫”的必要條件,我大致歸納了一下,至少有五種不同的“分布式數(shù)據(jù)庫”:
- NoSQL
- NewSQL
- MPP
- Hadoop技術(shù)生態(tài)
- Like-Mesa
注:也許有些同學(xué)會提到Kafka、Zookeeper等,這些雖然也是分布式數(shù)據(jù)存儲,但因?yàn)榫哂絮r明的特點(diǎn)和適用場景,無需再納入“數(shù)據(jù)庫”概念進(jìn)行探討。
這五類中,前兩類以支持OLTP場景為主,后三類則以O(shè)LAP場景為主。我將按照時(shí)間線,主要對OLAP場景下的三類進(jìn)行概要分析。
二、OLAP場景下的分布式數(shù)據(jù)庫
1990-2000年代,隨著應(yīng)用系統(tǒng)廣泛建設(shè)與深入使用,數(shù)據(jù)規(guī)模越來越大,國內(nèi)銀行業(yè)的“全國大集中”基本都是在這個(gè)階段完成。這期間,RDBMS得到了廣泛運(yùn)用,Oracle也擊敗Sybase成為數(shù)據(jù)庫領(lǐng)域的王者。
在滿足了基本的交易場景后,數(shù)據(jù)得到了累積,進(jìn)一步的分析性需求自然就涌現(xiàn)了出來。單一數(shù)據(jù)庫內(nèi)同時(shí)支持聯(lián)機(jī)交易和分析需求存在很多問題,往往會造成對聯(lián)機(jī)交易的干擾,因此需要新的解決方案。這就為MPP崛起提供了機(jī)會。
1、MPP
MPP(Massively Parallel Processing)是指多個(gè)處理器(或獨(dú)立的計(jì)算機(jī))并行處理一組協(xié)同計(jì)算[1]。
為了保證各節(jié)點(diǎn)的獨(dú)立計(jì)算能力,MPP數(shù)據(jù)庫通常采用ShareNothing架構(gòu),最為典型的產(chǎn)品是Teradata(簡稱TD),后來也出現(xiàn)Greenplum(簡稱GPDB)、Vertica、Netezza等競爭者。
架構(gòu)特點(diǎn):
MPP是多機(jī)可水平擴(kuò)展的架構(gòu),符合“分布式”的基本要求,其中TD采用外置集中存儲而GPDB直接使用本地磁盤,從這點(diǎn)來說GPDB是更徹底的Share Nothing架構(gòu)。
考慮到TD商業(yè)策略上采用一體機(jī)方案,不具有開放性,而GPDB具有較高的開源程度,下文中通過分析后者架構(gòu)特點(diǎn)來分析MPP工作機(jī)制。
GPDB屬于主從架構(gòu)[2],Slave稱為Segment是主要的數(shù)據(jù)加工節(jié)點(diǎn),是在PostgreSQL基礎(chǔ)上的封裝和修改,天然具備事務(wù)處理的能力,可進(jìn)行水平擴(kuò)展;集群內(nèi)有唯一Active狀態(tài)的Master節(jié)點(diǎn),除了元數(shù)據(jù)存儲和調(diào)度功能外,同時(shí)承擔(dān)一定的工作負(fù)載,即所有外部對集群的數(shù)據(jù)聯(lián)機(jī)訪問都要經(jīng)過Master節(jié)點(diǎn)。
在高可靠設(shè)計(jì)方面,首先設(shè)置了Standby Master節(jié)點(diǎn),在Master節(jié)點(diǎn)宕機(jī)時(shí)接管其任務(wù),其次將Segment節(jié)點(diǎn)則細(xì)分為兩類不同角色Primary和Mirror,后者是前者的備節(jié)點(diǎn),數(shù)據(jù)提交時(shí)在兩者間進(jìn)行強(qiáng)同步,以此保證Primary宕機(jī)時(shí),Mirror可以被調(diào)度起來接替前者的任務(wù)。
數(shù)據(jù)分析性需求對IT能力的要求包括:
- 復(fù)雜查詢能力;
- 批量數(shù)據(jù)處理;
- 一定的并發(fā)訪問能力。
MPP較好的實(shí)現(xiàn)了對上述能力的支撐,在前大數(shù)據(jù)時(shí)代得到了廣泛的應(yīng)用,但這個(gè)時(shí)期的數(shù)據(jù)總量相對仍然有限,普遍在TB級別,對應(yīng)的集群規(guī)模也通常在單集群百節(jié)點(diǎn)以下。
隨著數(shù)據(jù)價(jià)值關(guān)注度的不斷提升,越來越多的數(shù)據(jù)被納入企業(yè)分析范圍;同時(shí)實(shí)際應(yīng)用中考慮到數(shù)據(jù)存儲和傳輸成本,往往傾向于將數(shù)據(jù)集中在一個(gè)或少數(shù)幾個(gè)集群中,這樣推動了集群規(guī)模的快速增長。
在大規(guī)模集群(幾百至上千)的使用上,MPP從批處理和聯(lián)機(jī)訪問兩個(gè)方面都顯現(xiàn)了一些不足。以下內(nèi)容主要借鑒了Pivotal(GPDB原廠)的一篇官方博客[3]。
注:有位同學(xué)給出的譯文也具有較好的質(zhì)量,推薦閱讀[4]。
缺陷:
- 批處理
MPP架構(gòu)下,工作負(fù)載節(jié)點(diǎn)(對GPDB而言是Segment節(jié)點(diǎn))是完全對稱的,數(shù)據(jù)均勻的存儲在這些節(jié)點(diǎn),處理過程中每個(gè)節(jié)點(diǎn)(即該節(jié)點(diǎn)上的Executor)使用本地的CPU、內(nèi)存和磁盤等資源完成本地的數(shù)據(jù)加工。這個(gè)架構(gòu)雖然提供了較好的擴(kuò)展性,但隱藏了極大的問題——Straggler,即當(dāng)某個(gè)節(jié)點(diǎn)出現(xiàn)問題導(dǎo)致速度比其他節(jié)點(diǎn)慢時(shí),該節(jié)點(diǎn)會成為Straggler。
此時(shí),無論集群規(guī)模多大,批處理的整體執(zhí)行速度都由Straggler決定,其他節(jié)點(diǎn)上的任務(wù)執(zhí)行完畢后則進(jìn)入空閑狀態(tài)等待Straggler,而無法分擔(dān)其工作。導(dǎo)致節(jié)點(diǎn)處理速度降低的原因多數(shù)是磁盤等硬件損壞,考慮到磁盤本身的一定故障率(根據(jù)Google統(tǒng)計(jì)前三個(gè)月內(nèi)2%損壞率,第二年時(shí)達(dá)到8%)當(dāng)集群規(guī)模達(dá)到一定程度時(shí),故障會頻繁出現(xiàn)使straggler成為一個(gè)常規(guī)問題。
- 并發(fā)
由于MPP的“完全對稱性”,即當(dāng)查詢開始執(zhí)行時(shí),每個(gè)節(jié)點(diǎn)都在并行的執(zhí)行完全相同的任務(wù),這意味著MPP支持的并發(fā)數(shù)和集群的節(jié)點(diǎn)數(shù)完全無關(guān)。根據(jù)該文中的測試數(shù)據(jù),4個(gè)節(jié)點(diǎn)的集群和400個(gè)節(jié)點(diǎn)的集群支持的并發(fā)查詢數(shù)是相同的,隨著并發(fā)數(shù)增加,這二者幾乎在相同的時(shí)點(diǎn)出現(xiàn)性能驟降。
傳統(tǒng)MPP的聯(lián)機(jī)查詢主要面向企業(yè)管理層的少數(shù)用戶,對并發(fā)能力的要求較低。而在大數(shù)據(jù)時(shí)代,數(shù)據(jù)的使用者從戰(zhàn)略管理層轉(zhuǎn)向戰(zhàn)術(shù)執(zhí)行層乃至一線人員,從孤立的分析場景轉(zhuǎn)向與業(yè)務(wù)交易場景的融合。對于聯(lián)機(jī)查詢的并發(fā)能力已經(jīng)遠(yuǎn)超MPP時(shí)代,成為OLAP場景分布式數(shù)據(jù)庫要考慮的一個(gè)重要問題。
除上述兩點(diǎn)以外,GPDB架構(gòu)中的Master節(jié)點(diǎn)承擔(dān)了一定的工作負(fù)載,所有聯(lián)機(jī)查詢的數(shù)據(jù)流都要經(jīng)過該節(jié)點(diǎn),這樣Master也存在一定的性能瓶頸。同時(shí),在實(shí)踐中GPDB對數(shù)據(jù)庫連接數(shù)量的管理也是非常謹(jǐn)慎的。在我曾參與的項(xiàng)目中,Pivotal專家給出了一個(gè)建議的最大值且不會隨著集群規(guī)模擴(kuò)大而增大。
綜上,大致可以得出結(jié)論,MPP(至少是GPDB)在集群規(guī)模上是存在一定限制的。
2000-2010年代,大多數(shù)股份制以上銀行和少部分城商行都建立了數(shù)據(jù)倉庫或ODS系統(tǒng),主要采用了MPP產(chǎn)品??梢哉f,這十余年是MPP產(chǎn)品最輝煌的時(shí)代。到目前為止,MPP仍然是銀行業(yè)建設(shè)數(shù)據(jù)倉庫和數(shù)據(jù)集市類系統(tǒng)的主要技術(shù)選擇。為了規(guī)避MPP并發(fā)訪問上的缺陷以及批量任務(wù)對聯(lián)機(jī)查詢的影響,通常會將數(shù)據(jù)按照應(yīng)用粒度拆分到不同的單體OLTP數(shù)據(jù)庫中以支持聯(lián)機(jī)查詢。
2、Hadoop生態(tài)體系
MPP在相當(dāng)長的一段時(shí)期內(nèi)等同于一體機(jī)方案(以TD為代表),其價(jià)格高昂到普通企業(yè)無法承受,多數(shù)在銀行、電信等行業(yè)的頭部企業(yè)中使用。2010年代,隨著大數(shù)據(jù)時(shí)代的開啟,Hadoop生態(tài)體系以開源優(yōu)勢,獲得了蓬勃發(fā)展和快速普及。
Hadoop技術(shù)體系大大降低了數(shù)據(jù)分析類系統(tǒng)的建設(shè)成本,數(shù)據(jù)分析挖掘等工作由此步入“數(shù)據(jù)民主化”時(shí)代。在Hadoop生態(tài)體系中,分析需求所需要的能力被拆分為批量加工和聯(lián)機(jī)訪問,通過不同的組件搭配實(shí)現(xiàn)。批量加工以MapReduce、Tez、Spark等為執(zhí)行引擎,為了獲得友好的語義支持,又增加了Hive、SparkSQL等組件提供SQL訪問接口。
聯(lián)機(jī)訪問部分,則從早期Hive過渡到Impala、Hawk以及Kylin、Presto等方案逐漸降低了訪問延時(shí)。
架構(gòu)特點(diǎn):
Hadoop生態(tài)體系下HDFS、Spark、Hive等組件已經(jīng)有很多文章介紹,本文不再贅述。總的來說,其架構(gòu)的著力點(diǎn)在于數(shù)據(jù)高吞吐處理能力,在事務(wù)方面相較MPP更簡化,僅提供粗粒度的事務(wù)管理。
缺陷:
Hadoop也有其明顯的缺陷,主要是三點(diǎn):
- 批量加工效率較低
MPP的擁護(hù)者往往會詬病Hadoop計(jì)算引擎執(zhí)行效率低。的確,在同等規(guī)模的集群執(zhí)行相同的數(shù)據(jù)加工邏輯,即使與Spark對比,MPP所耗費(fèi)的時(shí)間也會明顯更少些[3],其主要的原因在于兩者對于數(shù)據(jù)在磁盤和內(nèi)存中的組織形式不同。
MPP從RDBMS而來(例如Vertica和GPDB都是基于PostgreSQL開發(fā)),對數(shù)據(jù)的組織形式更貼近傳統(tǒng)方式,按區(qū)、段、塊等單位組織,對數(shù)據(jù)進(jìn)行了預(yù)處理工作以提升使用時(shí)的效率;Hadoop生態(tài)體系以HDFS文件存儲為基礎(chǔ),HDFS并不像傳統(tǒng)數(shù)據(jù)庫那樣獨(dú)立管理一塊連續(xù)的磁盤空間,而是將數(shù)據(jù)表直接映射成不同的數(shù)據(jù)文件,甚至表分區(qū)也以目錄、文件等方式體現(xiàn)。
HDFS最簡單的txt格式干脆就是平鋪的數(shù)據(jù)文件,處理過程難免要簡單粗暴一些,但隨著Avro、ORCFile、Parquet等很多新的存儲格式相繼被引入,基于HDFS的批處理也更加精細(xì)。從整體架構(gòu)來看,Hadoop更加看重大數(shù)據(jù)量批量處理的吞吐能力。
同時(shí),Hadoop具備MPP所缺失的批量任務(wù)調(diào)整能力,數(shù)據(jù)的多副本存儲使其具有更多“本地化”數(shù)據(jù)加工的備選節(jié)點(diǎn),而且數(shù)據(jù)加工處理與數(shù)據(jù)存儲并不綁定,可以根據(jù)節(jié)點(diǎn)的運(yùn)行效率動態(tài)調(diào)整任務(wù)分布,從而在大規(guī)模部署的情況下具有整體上更穩(wěn)定的效率。相比之下,MPP在相對較小的數(shù)據(jù)量下具有更好的執(zhí)行效率。
- 不能無縫銜接EDW實(shí)施方法論
在長期的實(shí)踐中,企業(yè)級市場的主流集成商針對EDW項(xiàng)目沉淀了一套固定的實(shí)施方法,與MPP特性相匹配,但Hadoop并不能與之無縫對接。一個(gè)最典型的例子是歷史數(shù)據(jù)的存儲,傳統(tǒng)方法是采用“拉鏈表”的形式,即對于當(dāng)前有效的數(shù)據(jù)會記錄其生效的起始時(shí)間,在數(shù)據(jù)被更改或刪除后,在該行記錄的另外一列記錄失效時(shí)間。這樣,當(dāng)前數(shù)據(jù)即變更為歷史數(shù)據(jù),通過這種增量的表述方式,節(jié)省了大量的存儲空間和磁盤IO。
可以看出,拉鏈表的設(shè)計(jì)思想其實(shí)與基于時(shí)間戳的MVCC機(jī)制是相同的。
HDFS作為Hadoop的存儲基礎(chǔ),其本身不提供Update操作,這樣所有在數(shù)據(jù)操作層面的Update最終會被轉(zhuǎn)換為文件層面的Delete和Insert操作,效率上顯著降低。據(jù)我所知,在很多企業(yè)實(shí)踐中會將這種增量存儲轉(zhuǎn)換為全量存儲,帶來大量數(shù)據(jù)冗余的同時(shí),也造成實(shí)施方法上的變更。
- 聯(lián)機(jī)查詢并發(fā)能力不足
對于聯(lián)機(jī)查詢場景,最常見的是SQL on Hadoop方案,將Impala、HAWQ等MPP引擎架設(shè)在HDFS基礎(chǔ)上,批量數(shù)據(jù)與聯(lián)機(jī)查詢共用一份數(shù)據(jù)。MPP引擎借鑒了MPP數(shù)據(jù)庫的設(shè)計(jì)經(jīng)驗(yàn),相對Hive等組件提供了更低的延遲。但存在一個(gè)與MPP相同的問題,即并發(fā)能力不足。
通過一些項(xiàng)目測試中,我發(fā)現(xiàn)在大體相同的數(shù)據(jù)量和查詢邏輯情況下, Impala并發(fā)會低于GPDB。其原因可能是多方面的,不排除存在一些調(diào)優(yōu)空間,但在系統(tǒng)架構(gòu)層面也有值得探討的內(nèi)容。例如在元數(shù)據(jù)讀取上,Impala復(fù)用了Hive MetaStore,但后者提供的訪問服務(wù)延時(shí)相對較長,這也限制了Impala的并發(fā)能力[7]。
3、Like-Mesa
Mesa是Google開發(fā)的近實(shí)時(shí)分析型數(shù)據(jù)倉庫,2014年發(fā)布了論文披露其設(shè)計(jì)思想[5],其通過預(yù)聚合合并Delta文件等方式減少查詢的計(jì)算量,提升了并發(fā)能力。
Mesa充分利用了現(xiàn)有的Google技術(shù)組件,使用BigTable來存儲所有持久化的元數(shù)據(jù),使用了Colossus (Google的分布式文件系統(tǒng))來存儲數(shù)據(jù)文件,使用MapReduce來處理連續(xù)的數(shù)據(jù)。
Mesa相關(guān)的開源產(chǎn)品為Clickhouse[6](2016年Yandex開源)和Palo[7](2017年百度開源)。
特點(diǎn):
目前ClickHouse的資料仍以俄語社區(qū)為主,為便于大家理解和進(jìn)一步研究,下面主要以Palo為例進(jìn)行說明。
Palo沒有完全照搬Mesa的架構(gòu)設(shè)計(jì)的思路,其借助了Hadoop的批量處理能力,但將加工結(jié)果導(dǎo)入到了Palo自身存儲,專注于聯(lián)機(jī)查詢場景,在聯(lián)機(jī)查詢部分主要借鑒了Impala技術(shù)。同時(shí)Palo沒有復(fù)用已有的分布式文件系統(tǒng)和類BigTable系統(tǒng),而是設(shè)計(jì)了獨(dú)立的分布式存儲引擎。雖然數(shù)據(jù)存儲上付出了一定的冗余,但在聯(lián)機(jī)查詢的低延遲、高并發(fā)兩方面都得到了很大的改善。
Palo在事務(wù)管理上與Hadoop體系類似,數(shù)據(jù)更新的原子粒度最小為一個(gè)數(shù)據(jù)加載批次,可以保證多表數(shù)據(jù)更新的一致性。
整體架構(gòu)由Frontend和Backend兩部分組成,查詢編譯、查詢執(zhí)行協(xié)調(diào)器和存儲引擎目錄管理被集成到Frontend;查詢執(zhí)行器和數(shù)據(jù)存儲被集成到Backend。Frontend負(fù)載較輕,通常配置下,幾個(gè)節(jié)點(diǎn)即可滿足要求;而Backend作為工作負(fù)載節(jié)點(diǎn)會大幅擴(kuò)展到幾十至上百節(jié)點(diǎn)。數(shù)據(jù)處理部分與Mesa相同采用了物化Rollup(上卷表)的方式實(shí)現(xiàn)預(yù)計(jì)算。
Palo和ClickHouse都宣稱實(shí)現(xiàn)了MPP Data Warehouse,但從架構(gòu)上看已經(jīng)與傳統(tǒng)的MPP發(fā)生很大的變化,幾乎完全舍棄了批量處理,專注于聯(lián)機(jī)部分。
ClickHouse和Palo作為較晚出現(xiàn)的開源項(xiàng)目,還在進(jìn)一步發(fā)展過程中,設(shè)定的使用場景以廣告業(yè)務(wù)時(shí)序數(shù)據(jù)分析為主,存在一定局限性,但值得持續(xù)關(guān)注。
以上是我對OLAP場景“分布式數(shù)據(jù)庫”橫向的概要分析,我們兩個(gè)拆解維度中的第一部分,對不同的“分布式數(shù)據(jù)庫”的橫向探討至此就告一段落了,其中還有很多有趣的話題,我們可以留待后續(xù)文章繼續(xù)討論。
至于第二部分——對“分布式數(shù)據(jù)庫”的縱向探討,我將結(jié)合NoSQL與NewSQL的差異,縱向來談?wù)凮LTP場景“分布式數(shù)據(jù)庫”實(shí)現(xiàn)方案的關(guān)鍵技術(shù)要點(diǎn)。感興趣的同學(xué)敬請繼續(xù)關(guān)注DBAplus社群后續(xù)文章的發(fā)布。
文獻(xiàn)參考:
[1] http://en.wikipedia.org/wiki/Massively_parallel
[2] http://greenplum.org/gpdb-sandbox-tutorials/introduction-greenplum-database-architecture/#ffs-tabbed-11
[3] Apache HAWQ: Next Step In Massively Parallel Processing,
https://content.pivotal.io/blog/apache-hawq-next-step-in-massively-parallel-processing
[4] 對比MPP計(jì)算框架和批處理計(jì)算框架,
http://blog.csdn.net/rlnLo2pNEfx9c/article/details/78955006
[5] A. Gupta and et al., “Mesa: Geo-replicated, near real-time, scalabledata warehousing,”PVLDB, vol. 7, no. 12, pp. 1259–1270, 2014.
[6] http://clickhouse.yandex
[7] http://github.com/baidu/palo
當(dāng)前名稱:從架構(gòu)特點(diǎn)到功能缺陷,帶你重新認(rèn)識分析型分布式數(shù)據(jù)庫
文章出自:http://www.dlmjj.cn/article/djosdco.html


咨詢
建站咨詢
