歷史上,數(shù)據(jù)分析需求的不斷提升(更大的數(shù)據(jù)規(guī)模、更快的處理速度、更低的使用成本)和計算基礎(chǔ)設(shè)施的不斷進化(從專用的高端硬件、到低成本的商用硬件、到云計算服務(wù)),這兩大因素推動數(shù)據(jù)倉庫的架構(gòu)大體經(jīng)歷了三個時代:軟硬一體的一體機時代、存算一體的分布式時代以及存算分離的云原生時代。
Apache Doris 誕生于存算一體的分布式時代,是典型的 Shared Nothing 架構(gòu):BE 節(jié)點上存儲與計算緊密耦合、多 BE 節(jié)點采用 MPP 分布式計算架構(gòu),這種架構(gòu)為 Apache Doris 帶來了高可用、極簡部署、橫向可擴展以及強大的實時分析性能等一系列核心特色。
隨著云時代的到來,無論是公有云、私有云還是 K8S 容器平臺,越來越多的企業(yè)都希望 Apache Doris 針對云計算這種新型基礎(chǔ)設(shè)施提供更加深度的適配,以便提供更加靈活強大的彈性能力。 在過去的一年,飛輪科技(SelectDB)技術(shù)團隊在基于 Apache Doris 內(nèi)核研發(fā)全托管企業(yè)級云數(shù)倉產(chǎn)品的過程中,設(shè)計并實現(xiàn)了全新的云原生存算分離架構(gòu)(即 SelectDB Cloud)。
基于云原生存算分離的架構(gòu),SelectDB Cloud 在此基礎(chǔ)上提供了多計算集群負(fù)載隔離和計算彈性擴縮容等功能。 秉持著“推動開源技術(shù)創(chuàng)新、繁榮開源社區(qū)生態(tài)”的首要目標(biāo),在 Apache Doris 2.0 即將發(fā)布之際,SelectDB 技術(shù)團隊正式宣布,將存算分離架構(gòu)實現(xiàn)貢獻至 Apache Doris 社區(qū)。
這一工作預(yù)計將于 2023 年 10 月前后完成,屆時全部存算分離的代碼都將會提交到 Apache Doris 社區(qū)主干分支中。 當(dāng)存算分離代碼合入 Apache Doris 社區(qū)后,Apache Doris 可以采用以下兩種模式之一運行:存算一體的部署模式和存算分離的部署模式。
在兩種模式下運行的 Apache Doris 將以不同的方式來存儲主數(shù)據(jù)。從用戶使用體驗上而言,絕大部分功能都是一致的,但是也會因為實現(xiàn)架構(gòu)和部署模式的不同,帶來一些功能上的差異。下面我們將分別介紹兩種部署模式的核心特點和適用場景差異。
存算一體的分布式架構(gòu)
存算一體架構(gòu),也是 Apache Doris 長久以來經(jīng)歷過數(shù)千家企業(yè)生產(chǎn)環(huán)境打磨、無論是性能亦或是易用性和穩(wěn)定性都最為成熟的 MPP 分布式架構(gòu),總體架構(gòu)圖如下:
Apache Doris 存算一體架構(gòu)
部署簡易
在存算一體模式下,Apache Doris 不需要依賴類似外部共享文件系統(tǒng)或者對象存儲,僅依賴物理服務(wù)器部署 FE 和 BE 兩個進程即可完成集群的搭建,可以從一個節(jié)點擴展到數(shù)百個節(jié)點。這種不依賴第三方組件的部署模式極大降低了 Apache Doris 的使用門檻,甚至一臺辦公筆記本就可以完成 Apache Doris 的部署。 部署簡單的同時,也擁有極簡的運維成本:
FE 和 BE 都支持橫向線性擴展,擴縮容過程中無需停服,可正常提供穩(wěn)定可靠的在線服務(wù)
數(shù)據(jù)多副本存儲,自身的分布式管理框架自動管理數(shù)據(jù)副本的分布、修復(fù)和均衡,擴縮容時數(shù)據(jù)副本會自動在節(jié)點間負(fù)載均衡,無需任何人工操作
因為存算一體架構(gòu)依賴少,不需要依賴任何其他其他系統(tǒng),也增強了系統(tǒng)的穩(wěn)定性。而存算分離模式則需要依賴于共享的存儲系統(tǒng)。對于絕大多數(shù)企業(yè)來說,提供一個共享的存儲系統(tǒng)并非如此輕而易舉。依賴組件越多、任一組件的不穩(wěn)定都會導(dǎo)致整個系統(tǒng)的穩(wěn)定性受到影響。存算分離架構(gòu)依賴共享存儲系統(tǒng),那么存儲系統(tǒng)的穩(wěn)定性和可用性、連接存儲系統(tǒng)和計算節(jié)點的網(wǎng)絡(luò)延遲以及穩(wěn)定性,都會對整個存算分離架構(gòu)的穩(wěn)定性有著至關(guān)重要的影響。
性能優(yōu)異
在存算一體模式下,Apache Doris 執(zhí)行計算時,計算節(jié)點可直接訪問本地存儲數(shù)據(jù),充分利用機器的 IO、減少不必要的網(wǎng)絡(luò)開銷、獲得更極致的查詢性能。而存算分離模式下網(wǎng)絡(luò)傳輸帶寬和耗時往往會制約系統(tǒng)性能的發(fā)揮,因此即便是 Hadoop、Spark 這種一開始便采用存算分離模式的分布式框架,也會盡量將計算邏輯推送到數(shù)據(jù)所在的節(jié)點,以此來提升計算任務(wù)的執(zhí)行性能。
與此同時,存算一體模式對于謂詞下推(Predicate Pushdown)更加友好,將條件判斷邏輯更貼近數(shù)據(jù)源,減少查詢時掃描、傳輸和計算的數(shù)據(jù)量,更能發(fā)揮系統(tǒng)的查詢性能。相比存算分離模式,一般存儲系統(tǒng)都沒有執(zhí)行謂詞計算的能力,因此無法實現(xiàn)謂詞下推,繼而需要網(wǎng)絡(luò)將大量的數(shù)據(jù)傳輸至計算側(cè)。
冷熱分層
在 Apache Doris 2.0 版本中,也實現(xiàn)了存算一體模式下的冷熱數(shù)據(jù)分層。冷熱數(shù)據(jù)分層功能使 Apache Doris 可以將冷數(shù)據(jù)下沉到存儲成本更加低廉的對象存儲中,同時冷數(shù)據(jù)在對象存儲上的保存方式也從多副本變?yōu)閱胃北?,存儲成本進一步降至原先的三分之一。通過冷熱數(shù)據(jù)分層,使得 Apache Doris 集群配置不再需要隨著歷史數(shù)據(jù)量的堆積而不斷擴容機器。本質(zhì)上,Apache Doris 2.0 版本的冷熱數(shù)據(jù)分層也是一種存算分離的形態(tài),只是實現(xiàn)了冷數(shù)據(jù)的存儲分離。
關(guān)于 Apache Doris 2.0 冷熱數(shù)據(jù)分層功能的詳細(xì)介紹,可以參考Apache Doris 冷熱分層技術(shù)如何實現(xiàn)存儲成本降低 70%?
分存算一體架構(gòu)的適用場景
基于以上的原因,如果滿足下面任一條件,那么 Apache Doris 存算一體模式更加適合你:
簡單使用 Doris,想快速試用一下,或者開發(fā)和測試使用
沒有可靠的共享存儲可用,比如 HDFS、Ceph、對象存儲等
業(yè)務(wù)線獨立維護 Apache Doris,沒有專職 DBA 來維護 Doris 集群
不需要極致彈性擴縮容,不需要K8S容器化,不需要運行在公有云或者私有云上
存算分離的新架構(gòu)
如上所述,如果存算一體模式有這么多優(yōu)勢,為何我們還需要提供存儲計算分離的新架構(gòu)?核心動力來自于新興云計算基礎(chǔ)設(shè)施的成熟,無論是公有云、私有云以及基于 K8s 的容器平臺,云計算基礎(chǔ)設(shè)施的革新催生了新的需求。
云本身就是存儲計算分離的,其極致彈性帶來極大的成本經(jīng)濟優(yōu)勢:
計算資源的彈性:可以根據(jù)計算負(fù)載的需求,按需購買或者按需擴縮容計算節(jié)點,在滿足計算需求的情況下,使得成本達到最低;
存儲資源的低成本與彈性:對象存儲提供極其可靠的低成本存儲,并且按照使用容量計費,這樣可以讓數(shù)據(jù)存儲得更多更久。
即便是沒有使用云平臺的公司,也可以利用低成本的共享存儲系統(tǒng),在降低存儲成本和提高計算彈性的同時,還能獲得多計算集群等額外的優(yōu)質(zhì)特性。
未來存算分離架構(gòu)如下圖所示:
存算分離新架構(gòu)
基于共享存儲系統(tǒng)的主數(shù)據(jù)存儲
在存算一體的架構(gòu)下,數(shù)據(jù)主要存儲在計算節(jié)點上,即使使用了冷熱數(shù)據(jù)分層,熱數(shù)據(jù)依舊只在計算節(jié)點上存儲,計算節(jié)點需要依靠自身的多副本機制保證數(shù)據(jù)的可靠性。在存算分離架構(gòu)下,計算節(jié)點不再存儲主數(shù)據(jù),而是將共享存儲層作為統(tǒng)一的數(shù)據(jù)主存儲空間,這將帶來如下收益:
上層的計算節(jié)點可以做到無狀態(tài),可以實現(xiàn)完全關(guān)機
更便捷的數(shù)據(jù)共享,不同的集群之間以及不同的倉庫可以便捷地進行數(shù)據(jù)共享
更簡易的數(shù)據(jù)備份與恢復(fù),以及實現(xiàn)數(shù)據(jù)的 Time Travel
當(dāng)然,成熟穩(wěn)定的 HDFS/對象存儲還為系統(tǒng)帶來極低的存儲成本和極高的數(shù)據(jù)可靠性,并且大大簡化上層計算節(jié)點的實現(xiàn)復(fù)雜度。
基于本地高速緩存的性能優(yōu)化
存算分離依賴從網(wǎng)絡(luò)上讀取存儲系統(tǒng)的數(shù)據(jù)來進行計算,在一定程度上會造成計算性能的下降,這也是相較于存算一體架構(gòu)的主要劣勢。為了解決這一問題,可以在本地利用 SSD 提供高速緩存。
正如存算一體通過冷熱數(shù)據(jù)分層技術(shù)來大大緩解了存儲和計算必須同時擴展的問題,同樣在存算分離架構(gòu)中引入計算節(jié)點本地高速緩存實際也是融合了存算一體的能力。這種本地高速緩存加上共享存儲系統(tǒng),我們也可以稱之為混合模式,無論是 Snowflake 還是 Redshift,實際上都是采用了這種方式來應(yīng)對底層對象存儲系統(tǒng)性能不佳和網(wǎng)絡(luò)傳輸帶來的性能下降。
引入本地高速緩存后,系統(tǒng)會自動根據(jù) LRU 來緩存最新寫入和訪問數(shù)據(jù),當(dāng)然也可以手動設(shè)定表的緩存策略。由于只是緩存,因此本地只存儲了單個副本,這樣大大提升了緩存利用率,相比存算一體模式可以降低 2/3 的高速存儲使用。
另外,在存算一體的模式下,每個 Tablet 有 3 個節(jié)點來存儲其 3 個數(shù)據(jù)副本,在三副本上都需要獨立進行數(shù)據(jù)合并(Compaction)計算。而在存算分離下,只有一個節(jié)點進行數(shù)據(jù)合并計算,這樣就可以降低 2/3 的數(shù)據(jù)合并計算量。
所以,通過引入本地高速緩存,不僅僅可以基本達到原來存算一體的性能,在有些情況下還會超越原來存算一體的性能。
多計算集群實現(xiàn)工作負(fù)載隔離
用戶通常希望對同一份數(shù)據(jù)上的分析負(fù)載進行隔離。例如,導(dǎo)入的工作負(fù)載與查詢的負(fù)載進行隔離,Adhoc 的大查詢負(fù)載和在線點查詢的負(fù)載間相互隔離,避免不同負(fù)載間相互資源搶占。 在 Apache Doris 2.0 版本中提供了工作負(fù)載組(Workload Group)的資源隔離方案。
這個方案是一種軟限隔離,可以為特定查詢或者特定用戶指定查詢優(yōu)先級,但是基于 Workload Group 的隔離無法達到存算分離模式下多計算集群的真正物理隔離性。 在存算分離模式下,提供了同一個倉庫多個物理計算集群的隔離方式。因為主數(shù)據(jù)存儲在共享的對象存儲上,因此用戶可以按需創(chuàng)建多個計算集群但共享同一份數(shù)據(jù)。計算集群之間是物理隔離的,可以獨立擴縮容,其計算節(jié)點的本地高速緩存都是隔離的,這樣保證了盡可能比較好的隔離性。
極致的彈性擴縮容
存儲與計算的分離,帶來的最大優(yōu)勢是存儲和計算可以獨立擴縮容。數(shù)據(jù)存儲在 HDFS 或?qū)ο蟠鎯ι?,可以按需擴縮容。每個計算集群的計算節(jié)點,可以實現(xiàn)更加高效的彈性擴縮容,包括手動擴縮容、分時擴縮容以及自動停機。
存算分離特性演示
在此我們以 SelectDB Cloud 現(xiàn)有產(chǎn)品為例,來向大家演示全新存儲計算分離模式的特性和功能。 SelectDB Cloud 上新建倉庫 SelectDB Cloud 上多集群演示 SelectDB Cloud 上的手動擴縮容 SelectDB Cloud 上的分時擴縮容 SelectDB Cloud上的集群自動啟停
存算分離架構(gòu)的適用場景
基于以上的介紹,毫無疑問也幫助我們進一步明晰了存算分離架構(gòu)的適用場景,滿足下列任一條件,存算分離架構(gòu)更適合你:
如果已經(jīng)使用公有云服務(wù),那么存算分離架構(gòu)絕對值得嘗試
擁有可靠的共享存儲系統(tǒng),比如 HDFS、Ceph、對象存儲等
需要極致彈性擴縮容,需要 K8S 容器化,需要運行在私有云上
有專職的團隊維護整個公司的數(shù)據(jù)倉庫平臺
數(shù)據(jù)湖分析
需要說明的是,針對不同的技術(shù)群體,存儲、計算與存算分離這些概念指代著不同的含義。 無論是 Apache Doris 的存算分離、還是 Snowflake 的存算分離,都是指單一系統(tǒng)內(nèi)部存儲和計算模塊之間的分離。對于數(shù)據(jù)湖和湖倉一體(Lakehouse)的用戶,則是希望做到更加徹底的分離,即計算系統(tǒng)和存儲系統(tǒng)是兩個不同的產(chǎn)品。
存儲系統(tǒng)通過統(tǒng)一的開放表格式面向計算系統(tǒng)開放,而計算系統(tǒng)也可以開放地對接不同的底層存儲系統(tǒng)。 對于 Apache Doris 而言,無論是存算一體的架構(gòu)還是存儲計算分離的架構(gòu),都支持湖倉一體這種新型 Lakehouse 系統(tǒng)形態(tài),即可以直接查詢湖存儲以及當(dāng)前流行的各類開放表格式,包括 Hive、Iceberg 和 Hudi 等。
需要說明的是,Apache Doris 目前對數(shù)據(jù)湖的讀取已經(jīng)比較完備,包括支持 Snapshot 讀和 Time Travel,而后續(xù)還會進一步支持湖上數(shù)據(jù)的寫回,形成更加閉環(huán)的數(shù)據(jù)分析和流轉(zhuǎn)。 除了對數(shù)據(jù)湖的集成與分析,Apache Doris 目前還支持了對當(dāng)前常見的關(guān)系型數(shù)據(jù)庫、對象存儲以及 HDFS 上 CSV、Parquet 等格式數(shù)據(jù)的直接查詢分析。
未來計劃
圍繞著存算分離,SelectDB 技術(shù)團隊會與 Apache Doris 社區(qū)未來一起推進下面相關(guān)方向的研發(fā): Workload Group 與多計算集群的融合
當(dāng)前存算一體架構(gòu)下的 Workload Group 與存算分離架構(gòu)的多計算集群實際都是用來解決負(fù)載隔離的,一個偏軟限,一個是硬限,當(dāng)前具體實現(xiàn)方式存在一定差異,后面將考慮二者融合,對用戶而言提供統(tǒng)一一致的使用體驗。
與外部數(shù)據(jù)湖更便捷的數(shù)據(jù)導(dǎo)入導(dǎo)出
外部數(shù)據(jù)湖的數(shù)據(jù)可以增量持續(xù)寫入內(nèi)表,也可以使得內(nèi)表的數(shù)據(jù)可以增量持續(xù)寫入到外表數(shù)據(jù)湖的格式。
通過提供更加便捷的外表導(dǎo)入內(nèi)表的功能,Doris 可以持續(xù)加載最新的數(shù)據(jù)湖數(shù)據(jù),以便提供更高的數(shù)據(jù)計算性能。
通過提供更加便捷的內(nèi)表導(dǎo)出外表的功能,使得內(nèi)表的數(shù)據(jù)可以增量寫出為開放的外表格式。數(shù)據(jù)轉(zhuǎn)換為開放格式,一個是方便與相關(guān)大數(shù)據(jù)生態(tài)系統(tǒng)打通,另一個是打消企業(yè)對封閉數(shù)據(jù)格式被鎖定的擔(dān)憂。
實現(xiàn)共享的高速緩存,與計算節(jié)點進一步分離
當(dāng)前存算分離模式下,高速緩存使用的是計算節(jié)點的本地磁盤,所以計算節(jié)點還不能做成真正的無狀態(tài)。當(dāng)進行節(jié)點快速擴容的時候,需要考慮緩存的預(yù)熱均衡;當(dāng)進行節(jié)點快速縮容的時候,需要考慮緩存的失效,以及向其他節(jié)點的緩存轉(zhuǎn)移。未來,我們將實現(xiàn)一種與計算節(jié)點分離的共享高速緩存,實現(xiàn)計算、緩存和對象存儲完全的分離,以便提供秒級擴縮容能力。 存算一體和存算分離兩種模式的融合
存算一體和存算分離的架構(gòu)在部署之初就需要確定下來,而對于多數(shù)用戶都可能存在不同架構(gòu)之間的轉(zhuǎn)化,因此后續(xù)也會不斷改進實現(xiàn)方式,讓兩種模式間可以更便捷地進行相互轉(zhuǎn)換,甚至逐步融合成一套架構(gòu)。
審核編輯:劉清
-
存儲器
+關(guān)注
關(guān)注
38文章
7528瀏覽量
164350 -
計算機
+關(guān)注
關(guān)注
19文章
7540瀏覽量
88649 -
耦合器
+關(guān)注
關(guān)注
8文章
727瀏覽量
59865 -
MPP
+關(guān)注
關(guān)注
0文章
24瀏覽量
10625 -
HDFS
+關(guān)注
關(guān)注
1文章
30瀏覽量
9641
原文標(biāo)題:Apache Doris巨大飛躍:存算分離新架構(gòu)
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
存算一體行業(yè)2024年回顧與2025年展望
中國聯(lián)通實現(xiàn)30TB樣本數(shù)據(jù)跨城存算分離訓(xùn)練
開源芯片系列講座第24期:基于SRAM存算的高效計算架構(gòu)
![開源芯片系列講座第24期:基于SRAM<b class='flag-5'>存</b><b class='flag-5'>算</b>的高效計算<b class='flag-5'>架構(gòu)</b>](https://file1.elecfans.com/web2/M00/E5/E7/wKgZomZFcsyAcT-5AAA2A4dQRkQ217.png)
直播預(yù)約 |開源芯片系列講座第24期:SRAM存算一體:賦能高能效RISC-V計算
![直播預(yù)約 |開源芯片系列講座第24期:SRAM<b class='flag-5'>存</b><b class='flag-5'>算</b>一體:賦能高能效RISC-V計算](https://file1.elecfans.com/web2/M00/E5/E7/wKgZomZFcsyAcT-5AAA2A4dQRkQ217.png)
存算一體化與邊緣計算:重新定義智能計算的未來
![<b class='flag-5'>存</b><b class='flag-5'>算</b>一體化與邊緣計算:重新定義智能計算的未來](https://file.elecfans.com/web2/M00/4E/DC/poYBAGLCjeiALm_WAAAYmfR7Qec474.png)
存算一體架構(gòu)創(chuàng)新助力國產(chǎn)大算力AI芯片騰飛
【「算力芯片 | 高性能 CPU/GPU/NPU 微架構(gòu)分析」閱讀體驗】--全書概覽
科技新突破:首款支持多模態(tài)存算一體AI芯片成功問世
![科技新突破:首款支持多模態(tài)<b class='flag-5'>存</b><b class='flag-5'>算</b>一體AI芯片成功問世](https://file1.elecfans.com/web2/M00/09/01/wKgaomb09rmARsAYAANISILK6RA658.jpg)
名單公布!【書籍評測活動NO.43】 算力芯片 | 高性能 CPU/GPU/NPU 微架構(gòu)分析
后摩智能推出邊端大模型AI芯片M30,展現(xiàn)出存算一體架構(gòu)優(yōu)勢
HyperRapid NXT 266——精密材料加工領(lǐng)域的巨大飛躍
![HyperRapid NXT 266——精密材料加工領(lǐng)域的<b class='flag-5'>巨大飛躍</b>](https://file1.elecfans.com//web2/M00/EE/6A/wKgaomZrc1-AGnTDAAm87HyIUHM036.png)
淺談存內(nèi)計算生態(tài)環(huán)境搭建以及軟件開發(fā)
知存科技助力AI應(yīng)用落地:WTMDK2101-ZT1評估板實地評測與性能揭秘
存內(nèi)計算WTM2101編譯工具鏈 資料
探索存內(nèi)計算—基于 SRAM 的存內(nèi)計算與基于 MRAM 的存算一體的探究
![探索<b class='flag-5'>存</b>內(nèi)計算—基于 SRAM 的<b class='flag-5'>存</b>內(nèi)計算與基于 MRAM 的<b class='flag-5'>存</b><b class='flag-5'>算</b>一體的探究](https://file1.elecfans.com/web2/M00/E6/E2/wKgaomZFvUmAdDhcAAOm7CA4uuk723.png)
評論