青島網(wǎng)景互聯(lián)網(wǎng)站建設(shè)公司年度關(guān)鍵詞
MPP 架構(gòu)
什么是 MPP?
MPP 架構(gòu)是傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)中常見的技術(shù)架構(gòu),將單機(jī)數(shù)據(jù)庫(kù)節(jié)點(diǎn)組成集群,從而提升處理性能。
集群中,這些節(jié)點(diǎn)間使用非共享架構(gòu),每個(gè)節(jié)點(diǎn)擁有獨(dú)立的磁盤存儲(chǔ)和內(nèi)存系統(tǒng),在計(jì)算過(guò)程中獨(dú)立運(yùn)行,而不必去關(guān)心整個(gè)集群的狀態(tài),也不關(guān)心其他節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)信息。
每臺(tái)數(shù)據(jù)節(jié)點(diǎn)通過(guò)專用網(wǎng)絡(luò)或者商業(yè)通用網(wǎng)絡(luò)互相連接,在計(jì)算過(guò)程中,如果需要用到其他節(jié)點(diǎn)的數(shù)據(jù),使用網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸、協(xié)同計(jì)算。
需要注意的是,MPP 集群是作為整體向外提供服務(wù)的,每臺(tái)節(jié)點(diǎn)無(wú)法單獨(dú)運(yùn)行局部程序。
架構(gòu)優(yōu)點(diǎn)
MPP 集群的每臺(tái)節(jié)點(diǎn)本質(zhì)上還是數(shù)據(jù)庫(kù),所以在架構(gòu)設(shè)計(jì)上,優(yōu)先考慮 C(一致性),其次考慮 A(可靠性),盡量做好 P(分區(qū)容錯(cuò)性)。
所以每臺(tái)節(jié)點(diǎn)的內(nèi)存管理方式、運(yùn)算方式都比較精細(xì),注重鎖、事務(wù)、內(nèi)外存交互等細(xì)節(jié),從而保證數(shù)據(jù)一致性。在這種模式下,MPP 各個(gè)節(jié)點(diǎn)的運(yùn)算延遲很低;但正因?yàn)榫?xì)的管理,其吞吐較差,在數(shù)據(jù)規(guī)模達(dá)到一定量級(jí)后,便成為局限性能的一個(gè)瓶頸。
所以 MPP 數(shù)據(jù)庫(kù)更適合中等規(guī)模的結(jié)構(gòu)化數(shù)據(jù)處理,性能上有很好的體現(xiàn)。
架構(gòu)缺點(diǎn)
但 MPP 因?yàn)榉枪蚕砑軜?gòu),所以其存儲(chǔ)位置是不透明的;數(shù)據(jù)在存儲(chǔ)時(shí),通過(guò) Hash 來(lái)確定物理節(jié)點(diǎn)。但在執(zhí)行任務(wù)時(shí),因無(wú)法斷定數(shù)據(jù)的位置,所以查詢?nèi)蝿?wù)會(huì)在所有節(jié)點(diǎn)執(zhí)行。這個(gè)是架構(gòu)所決定的,基本對(duì)性能沒有影響。
MPP 真正的問(wèn)題是擴(kuò)展性,因?yàn)?MPP 在并行計(jì)算時(shí),單節(jié)點(diǎn)瓶頸會(huì)成為整個(gè)系統(tǒng)的短板;在一個(gè)協(xié)同運(yùn)算過(guò)程中,當(dāng)一個(gè)節(jié)點(diǎn)運(yùn)行緩慢時(shí),其它節(jié)點(diǎn)便會(huì)進(jìn)行等待。當(dāng)然,緩慢節(jié)點(diǎn)可以通過(guò)網(wǎng)絡(luò)將數(shù)據(jù)傳輸?shù)狡渌?jié)點(diǎn)來(lái)提升運(yùn)行速度;但隨著集群規(guī)模的增大,節(jié)點(diǎn)的故障率會(huì)逐漸升高,瓶頸就會(huì)越發(fā)明顯。這也是為什么 MPP 數(shù)據(jù)庫(kù)的擴(kuò)展性較差的原因。
而且 MPP 一般致力實(shí)現(xiàn)分布式事務(wù),但在分布式環(huán)境中實(shí)現(xiàn)事務(wù)后,擴(kuò)展性一定會(huì)受到影響。
分布式架構(gòu)
什么是分布式架構(gòu)?
分布式架構(gòu)是大數(shù)據(jù)中常見的技術(shù)架構(gòu),也稱為 Hadoop 架構(gòu)/批處理架構(gòu)。
分布式架構(gòu)組成的集群中,各節(jié)點(diǎn)實(shí)現(xiàn)場(chǎng)地自治,即可以獨(dú)立運(yùn)行局部應(yīng)用。而在 MPP 架構(gòu)中是無(wú)法做到的,它只能作為一個(gè)整體對(duì)外提供服務(wù)。
因?yàn)榉植际郊軜?gòu)中,數(shù)據(jù)在集群中是全局透明共享的,每個(gè)節(jié)點(diǎn)擁有自治的運(yùn)算資源。而各個(gè)節(jié)點(diǎn)的存儲(chǔ)資源,組成了一個(gè)公共的數(shù)據(jù)存儲(chǔ)系統(tǒng);節(jié)點(diǎn)在進(jìn)行運(yùn)算時(shí),可以訪問(wèn)公共的數(shù)據(jù)存儲(chǔ)系統(tǒng),實(shí)現(xiàn)數(shù)據(jù)的透明訪問(wèn)。
分布式架構(gòu)中對(duì)網(wǎng)絡(luò)的要求不高,每臺(tái)節(jié)點(diǎn)可以通過(guò)局域網(wǎng)或廣域網(wǎng)相連,因此節(jié)點(diǎn)間的通信開銷比較大;在計(jì)算時(shí),盡量避免數(shù)據(jù)移動(dòng)。
架構(gòu)特點(diǎn)
分布式架構(gòu)在設(shè)計(jì)時(shí),優(yōu)先考慮的是 P(分區(qū)容錯(cuò)性),然后是 A(可用性),最后再考慮 C(一致性)。
所以數(shù)據(jù)被拆分為多個(gè)分區(qū)后,每個(gè)分區(qū)又會(huì)有多個(gè)副本,從而保證容錯(cuò)。這樣的話,就解決了單點(diǎn)故障的問(wèn)題,如果一個(gè)節(jié)點(diǎn)運(yùn)行緩慢,可以將節(jié)點(diǎn)上的任務(wù)取消,然后分發(fā)到數(shù)據(jù)的其它副本節(jié)點(diǎn)進(jìn)行運(yùn)算。
而且正因?yàn)榉植际郊軜?gòu)中數(shù)據(jù)一致性的優(yōu)先級(jí)最低,所以它的存儲(chǔ)、運(yùn)算方式粗獷,吞吐量較大;也正是因?yàn)檫@樣,在數(shù)據(jù)量較低的情況下,運(yùn)行速度遠(yuǎn)不及 MPP 架構(gòu);但數(shù)據(jù)量一旦超過(guò)某個(gè)量級(jí),吞吐量的優(yōu)勢(shì)會(huì)極大的發(fā)揮出來(lái)。
因?yàn)槭褂昧斯驳臄?shù)據(jù)存儲(chǔ),所以它的擴(kuò)展性極強(qiáng),而且非常適合處理非結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù)。
這種粗獷的方式,非常適合海量數(shù)據(jù)的存儲(chǔ)、處理。但它需要對(duì)中間結(jié)果進(jìn)行存儲(chǔ),且數(shù)據(jù)移動(dòng)開銷較大。
MPP+ 分布式架構(gòu)
有些大數(shù)據(jù)數(shù)據(jù)倉(cāng)庫(kù)產(chǎn)品也會(huì)采用 MPP+ 分布式架構(gòu),融合兩者的優(yōu)點(diǎn),來(lái)提升性能。
這種架構(gòu)的數(shù)據(jù)存儲(chǔ)層采用分布式架構(gòu)中的公共存儲(chǔ),提升了分區(qū)容錯(cuò)性,也將 MPP 的擴(kuò)展性得到了質(zhì)的提升。上層處理架構(gòu)依然采用 MPP,減少運(yùn)算的延遲。
MPP+ 分布式架構(gòu)的數(shù)據(jù)倉(cāng)庫(kù)相對(duì)于其它大數(shù)據(jù)產(chǎn)品來(lái)說(shuō),延遲低,速度快;所以在實(shí)時(shí)流處理場(chǎng)景中經(jīng)常被采用。
小結(jié)
MPP 架構(gòu)和分布式架構(gòu)的適用場(chǎng)景不同。MPP 適合中等規(guī)模的數(shù)據(jù)處理,延遲低、SQL 支持高是它主要的優(yōu)勢(shì);分布式(批處理)架構(gòu)更適合海量數(shù)據(jù)規(guī)模的批處理計(jì)算,吞吐高、運(yùn)算速度快、擴(kuò)展性強(qiáng)是它的優(yōu)勢(shì),而這也是離線批處理數(shù)倉(cāng)所看重的。
MPP+ 分布式架構(gòu)集成了兩者的優(yōu)勢(shì),擴(kuò)展性強(qiáng)、延遲低、SQL 支持率高,實(shí)際上是兩者間取了個(gè)折中,能夠在海量數(shù)據(jù)規(guī)模下依然具有較好的低延遲特性。
這些架構(gòu)并沒有好壞之分,對(duì)于不同的場(chǎng)景只有適合和不適合之分。如果使用分布式架構(gòu)的數(shù)據(jù)倉(cāng)庫(kù)對(duì)較少的數(shù)據(jù)量進(jìn)行交互式的 SQL 查詢,需要 5 分鐘,但使用傳統(tǒng)數(shù)倉(cāng)只需要 1 秒;那不是產(chǎn)品的問(wèn)題,而是用錯(cuò)的場(chǎng)景而已。