Doris 畢業成為 Apache 頂級專案,獨家專訪百度 PALO 團隊

思否編輯部發表於2022-06-23
採訪整理:SegmentFault 思否
採訪嘉賓:百度 PALO 團隊(楊政國、繆翎、李昊鵬、朱小力、龔政、張志強、仲毅、張東進等)

2022 年 6 月 16 日,Apache 軟體基金會發表博文,宣佈 Doris 正式畢業,正式成為 Apache 頂級專案(TLP)。(相關閱讀:https://blogs.apache.org/foundation/entry/the-apache-software-foundation-announces81)。

從 2008 年誕生到今天,Doris 已經走過了十四個年頭。這十四年間,Doris 經歷了誕生、推廣、發展、開源、捐贈、繁榮,成長的旅程中也歷經了諸多艱辛和波折。

SegmentFault 思否獨家專訪了百度 PALO 團隊,為你呈現這背後不為人知的故事與曲折。

以下內容整理自訪談實錄。

為資料分析而生,Doris 的“前世今生”

SegmentFault:回顧 Doris 14 年發展史,Doris 的都經歷了哪幾個專案里程碑?

百度 PALO 團隊:說起 Doris 的歷史,它最初誕生於百度,目的是解決當時百度內部高併發,高實時的線上報表需求,不覺間 Doris 已經走過了十四年。

•2008 年,Doris 在百度誕生,定位為高效能分析型資料庫,大幅提升了百度鳳巢業務的資料分析時效性。
•2009 年,Doris 開始支援百度內部其他報表系統,並助力百度統計成為國內領先的中文網站分析工具。
•2012 年,Doris 成長為百度首個公司級 OLAP 分析平臺並正式改名 PALO(OLAP 的反寫)。
•2013 年,PALO 升級新一代 MPP 分散式架構及高效能資料模型,各項核心技術指標大幅提升。
•2017 年,PALO 正式對外開源。
2018 年,百度將 PALO 的核心引擎捐贈給 Apache 軟體基金會,並命名 Apache Doris,百度 PALO 團隊開始全力推進 Doris 社群發展。
•2020 年,在百度 PALO 團隊與社群夥伴的共同努力下,Apache Doris 社群走上發展快車道。
•2021 年,Doris 各項核心能力大幅增強,行業影響力進一步提升,成為中國信通院 2021 年 “OSCAR 尖峰開源專案及社群”,獲得“首批可信開源社群共同體(TWOS)” 正式成員認證。
2022 年,百度正式完成商標捐贈,推進 Apache Doris 完成畢業,成為 Apache 軟體基金會頂級專案。


SegmentFault:我們看到 Doris 曾經改名為 PALO(OLAP的反寫),這個背後有著什麼特別的寓意嗎?

百度 PALO 團隊:2008 年,誕生之初,在百度內部被命名為 Doris,大約在 2012-2013 年,Doris 進行過一次大的架構改版升級,契合當時定位“解決高併發,高實時的 OLAP 場景”,於是團隊將“OLAP”進行反寫,“PALO”就此誕生,最終 PALO 也成了百度基於 Apache Doris 構建的商業化數倉產品名字。

2018 年百度 PALO 團隊和百度負責開源的同事一起攜手將 PALO 專案捐贈給 Apache 軟體基金會(ASF),鑑於品牌及商標等問題的考量,最終把開源專案定名為 Apache Doris,並把 Doris 的品牌和商標一併捐給了 ASF,正式成為 ASF 孵化專案。


SegmentFault:作為曾經百度內部的高效能分析型資料庫,為什麼會考慮把產品開源?

百度 PALO 團隊:Doris 在 13 年設計新版時,已經在百度內部得到了複雜場景和高併發、大壓力的驗證,我們希望未來能將它開源出去,讓更多的人用到並獲益,同時希望通過開源的方式加速其成長。所以,在新版設計的時候,我們去掉了百度內部閉源庫及內部系統的依賴,讓整個系統能夠獨立、自由運作。百度 PALO 團隊堅信未來基礎設施軟體必然會走開源路線,只有開源才能保持產品活力和迭代速度。

開源之初,我們的目標就是將 Doris 建設成為全球最優秀的開源資料倉儲之一,所以,我們選擇了在 Apache 軟體基金會進行開源。眾所周知,Apache 軟體基金會在大資料領域的專案都極具影響力,比如 Hadoop 和 Spark 等大家耳熟能詳的專案。

從開源到現在,Apache Doris 的 Star 和 Contributor 數量都有了數倍,甚至數十倍的增長,尤其是從 2020 年開始,社群核心指標增長速度明顯加快,這也從側面反應出,外界對 Apache Doris 專案的關注度和認可度在不斷增加。

下圖是來自 Star History 的資料,可以看到 Apache Doris 從最初的 240 個 Star,一路走來,到目前 Star 數已經達到 4500 個。從圖上也可以看到近兩年,增長趨勢明顯加快。

下圖是來自 api7 的資料,可以看到 Apache Doris Contributor 的數量從最初的 10 個左右,增長到現在的 330+,增長趨勢也在逐步加快,月度活躍貢獻者的數量已經達到 80 個。



SegmentFault:近兩年中國開源資本熱,在你們看來什麼樣的軟體適合開源,什麼樣的軟體適合閉源發展?

百度 PALO 團隊:“開源”這兩年的確受到了資本熱捧,加之國家十四五規劃對“開源”的
加持,熱度一再飆升。尤其是 Doris 所在的賽道,更是被稱為“黃金賽道”,這兩年前前
後後誕生了十幾家創業公司,真可謂“雨後春筍,俯拾皆是”。

“資本”對開源的追捧和青睞,絕對不是因為“情懷”更不是因為“喜好”,他們更關注的是“開源”背後的“商業化”前景。資本對開源的助力,是資源的加持,這個加持可以讓開源專案發展更快,產品成熟更早。而基於開源而生的商業化產品才是其真正價值所在,要想持續得到資本“青睞”,開源背後的商業化產品,一定要切中付費使用者的需求和痛點,做出跟開源產品的差異化特色和競爭力,且要保持和開源產品良好的共生關係。

“開源”講求的是共建共享,一群人可以走的更遠,所以,我們認為那些“投入大,轉化週期長”的產品是比較適合開源的。Apache Doris 就是在這樣的背景下采取了開源路線,也正是通過開源,Doris 專案獲得了遠超單個公司的投入力度,以及大量使用者的使用和打磨,最終,也使得 Doris 的產品力和影響力得到了長足的發展。


SegmentFault:從內部工具到極速簡用的 MPP 開源資料庫,在產品層面 Doris 經歷了怎樣的變化?

百度 PALO 團隊:Doris 的產品定位叫做“為資料分析而生”,Doris 在產品層面的變化
是伴隨著資料分析的場景變化而一起演進的,經歷了四個發展階段:

第一階段是商業智慧分析,注重通過資料來對業務進行描述與分析,這也是 Doris 誕生的階段。2008 年,Doris 在百度鳳巢誕生,本身就是為了解決報表問題,到了 2012 年,Doris 已經成為百度的首個公司級 OLAP 平臺,承接整個公司的報表需求;

第二階段是海量資料分析,也就是在企業資訊化和數字化普及之後,資料量大幅增加,資料庫要能夠處理相比之前十倍百倍的資料。2013 年,Doris 完成了 MPP 引擎改造,利用分散式能力,大幅度提升資料處理能力與效率,所能處理的資料量級提升到 TB 至 PB 級別,查詢時效性也有了一定提升;

第三階段是實時資料分析,在這一階段中,企業更加註重實時性和預測性分析,期望在海量資料下加速傳統 T+1 模式的分析效率,獲得分鐘級甚至秒級的分析能力,這也正是近些年來 Doris 所解決的使用者核心痛點。自 2017 年開源至今,Doris 通過對儲存引擎、查詢引擎、查詢優化器等各個核心模組的優化,不斷增強效能表現,尤其是近期的向量化引擎,更是把效能全面加速了 5-10 倍,真正實現海量資料下的毫秒級查詢體驗;

第四階段是全民資料分析,在這一階段中,資料分析不再是數倉維護人員和資料分析師的“專利”,企業中的許多角色都有著自主資料分析的需求和能力,所有人都期望能夠快速地分析、使用資料,獲取價值,這也是當前 Doris 正在處理和應對的需求:一方面在查詢效能方面, Doris 要能夠支援更高併發與吞吐,提供更加多樣化的查詢能力,以應對企業“全民資料分析”的場景需求;另一方面,Doris 更要提供低成本、低門檻的查詢分析手段,比如進一步提升自運維能力,提供開箱即用的資料分析體驗,幫助使用者更加關注業務與資料本身,而無需耗費過多精力在系統底層的部署運維工作。這一點在百度的商業版本 Palo 中有著更多體現,我們充分利用雲的彈效能力和容器化能力,為使用者提供近乎於 0 運維成本的叢集託管服務,不論是儲存計算資源擴縮容,還是雲原生化的監控調優能力,都在幫助使用者以極低地成本與門檻,向全民分析時代飛速躍進。

木桶效應,Doris 強在每一塊木板都很均衡

SegmentFault:Doris 在效能,功能豐富度和易用性上表現都非常出色,那麼在您看來 Doris 最強的競爭力是什麼?

百度 PALO 團隊:Apache Doris 最強的競爭力在於能夠適應全場景的業務需求,無論是聚合、明細、Ad-Hoc、單表、多表等各種資料分析的場景,Doris 都能比較好的支援。其次 Doris 在效能,功能豐富度和易用性上表現都非常出色,在效能上 Doris 經過多年打磨,在各類場景都有極佳的效能表現,尤其是近期向量化版本上線之後,效能又有了數倍的提升。

Doris 叢集能夠非常方便地實現動態擴縮容,當節點出現故障時資料自動遷移,這些都不依賴外部系統,也不會影響上層業務系統,叢集運維非常簡單。另外 Doris 支援非常豐富的標準 SQL 語法,能夠完成各類複雜查詢任務。除了傳統的 AP 場景外,Doris 也提供高效能流式寫入能力及線上高併發訪問能力,可構建現代 HSAP 架構的資料服務。因此 Doris 是一個非常全面、成熟和易用的系統,就像一個木桶,Doris 的每個一塊木板都很均衡,裝的水自然比較多。


SegmentFault:常常有人討論效能與易用性的孰輕孰重,Doris 是如何平衡效能與易用性的關係的?

百度 PALO 團隊:效能是 Apache Doris 核心最重要的指標之一,也是業界對資料庫類產品進行評價的重要標準。所以,Doris 對效能的追逐一直沒有停止過,我們正在持續研發的向量化執行引擎和新的優化器都是效能提升的重要手段。同時簡單、易用以及穩定、可靠都是 Doris 持續關注的重點,Doris 通過極簡的運維和豐富的功能被大家熟知和認可。

極致的效能可以幫使用者應對複雜而苛刻的業務場景;簡單、易用可以讓整個系統搭建成本更低,運維更高效。所以效能和易用性二者並不衝突,更不是相互對立,我們在核心層面追求極致的效能,並不影響我們在通過精巧的設計,將簡單好用的功能提供給使用者,我們會在使用者能夠感知的地方做大量的工作,使每一個特性都能滿足不同層次使用者的需求。


SegmentFault:目前 Doris 最核心解決了客戶的哪些問題?比較常見應用場景是什麼?有沒有成熟的商業用例?

百度 PALO 團隊:Doris 最核心地解決了客戶對於海量資料的高時效性分析需求,Doris 通過自身產品能力的建設,在資料分析環節做到了效能更加高效、功能更加全面、運維更加簡單、生態更加豐富。

結合以往的經驗,我們總結了 Doris 的四大應用場景:

•傳統數倉加速:在原有的傳統的單機式資料庫或者離線資料倉儲基礎上,增加高效能分析型資料庫能力,加速傳統數倉的查詢能力。
•實時數倉構建:構建以實時資料為主的資料倉儲,支援端到端的實時資料分析,包括高時效的實時資料寫入與高效能的實時資料分析。
•多源聯邦查詢:提供跨多資料來源的統一查詢入口,以統一的一站式查詢能力滿足業務人員多元化的查詢需求。
•互動式資料分析及線上資料服務:提供高併發與高時效的線上查詢體驗,以極低的建設成本,高效的支援業務側報表、大屏或即席查詢等需求。

百度基於 ApacheDoris 所構建的商業化資料倉儲產品 Palo 自 2017 年對外提供服務以來,在各行業均有落地實踐,積累了大量商業用例。

截至目前,已有近百家企業在使用 Palo 商業服務。比如我們在某頭部金融支付公司專案中,重點加強建設了 Palo 的多租戶能力,滿足企業各省、市子公司的資料與資源隔離需求;在某頭部聲學元件製造商專案中,充分利用了 Palo 在時序性資料方面的寫入和查詢能力,支援生產車間的裝置資料分析與監控;在與某網際網路頭部問答社群的合作中,我們針對客戶的廣告與畫像需求,對 bitmap 及相關用法做了重點優化,為客戶內容資料中臺建設提供了極大支援。


SegmentFault:近兩年也有一些基於 ApacheDoris 的外部的商業公司開始嶄露頭角,PALO 團隊怎麼看開源和商業的關係?又怎樣看待這之間的競爭與合作?

百度 PALO 團隊:我們很高興的看到有越來越多的公司開始參與 Apache Doris 專案的建設,這說明專案得到了使用者、社群和資本市場的認可,可見,最初我們將 Doris 捐贈給 Apache 軟體基金會是非常正確的選擇。未來,隨著社群的持續發展,我們希望還會有越來越多的公司能夠加入,跟百度 PALO 攜手共建一個繁榮和強大的開源軟體生態

當然,我們也看到,過去確實有一些商業驅動的不良行為對社群帶來了損害。因此,作為 Apache Doris 的主創團隊,我們會堅定的維護好社群的秩序,確保社群的參與者都能夠遵守 Apache Way 行為規範,從而促進社群的健康可持續發展。

當前,大量底層技術產品都採用開源模式,客戶也越來越認可開源的模式,“是否開源”正在成為很多客戶進行商業決策的重要依據;另一方面,開源社群能夠幫助我們構建堅實的使用者基礎,以及廣泛和正面的品牌認知,從而促進我們商業化的發展。所以,對於未來的技術產品,開源可能成為必須,這個“必須”不一定損害商業模式,反而會促進商業上的成功

在“大廠”做開源,收穫更多的是“詩”和“遠方”

SegmentFault:Doris 從捐贈、孵化到畢業也經歷了接近4年的時間,在這期間團隊有沒有遇到過一些困難,是如何解決的?對於剛剛開源還在孵化中的專案有沒有一些建議?

百度 PALO 團隊:Apache Doris 從捐贈到今天順利畢業已經接近 4 年,這期間的確遇到了非常多的曲折,在這裡著重跟大家分享幾點。

一是團隊內部價值呈現和資源衝突的問題。開源讓 Doris 專案得到了快速發展,同時也給團隊帶來了額外工作量,團隊需要維護兩套程式碼(開源產品 Doris 和商業化產品 Palo),團隊需要平衡在兩個產品上的投入力度,同時還要跟公司講清楚這兩部分工作的價值及關係,直接地、間接地、甚至是隱藏在背後的無形價值。

其實這個問題的解決,最重要的是團隊對於“收益”的重新定義,開源的收穫,不止是反饋到績效和晉升上,他也會幫助團隊構建在社群乃至行業中的影響力。這個過程帶來的成長,要比在一個公司中開發閉源產品來的更快、更多——正所謂:“海闊憑魚躍,天高任鳥飛”,開源給團隊帶來了“海”和“天”。

在做好開源的同時,團隊也要規劃好商業產品的發展,給公司帶來商業收益,並且要把開源對商業化的正向作用向公司呈現,這樣就會持續得到公司的支援,形成正迴圈。

第二個困難是由於沒有經驗,我們走了一些彎路。最初大家對開源的認知有限,一開始什麼都缺,什麼都要從頭開始摸索,包括物料準備,包括意識和經驗的積累,都是跌跌撞撞,一步步摸索過來的。從 Apache Doris 官網的建設,到官方公眾號的運營,再到渠道生態體系的構建,以及開源和商業化關係的梳理等等,我們經歷了諸多艱辛與挑戰,還好大家一起堅持下來了。

前期我們在內容建設上,稍不留神,就容易越過“開源”的界限,摻雜“商業化”氣息,還好有 Apache 導師隨時幫我們指出問題,及時糾正。

這一點,我們團隊給出的建議是,專案一開始就想清楚團隊搞開源的最終目的是什麼,“以終為始”,這樣路徑執行上就不會有太多搖擺,資源投入也不會斷檔。同時要把開源和商業化嚴格區分開來(包括產品形態和運營模式),儘量在社群中不要摻雜私心,多跟專案導師溝通,他們有經驗,而且比較中立,聽他們的,不會錯。

第三個困難是一些外部商業因素對專案的干擾。作為一個 Apache 的開源專案,Doris 並不排斥商業公司的使用和參與,然而,一些純商業利益驅動的不良行為並不符合 Apache Way,會對社群帶來損害。因此,對於正在考慮開源孵化的專案,前期除了選好協議及孵化組織外,我們建議還要做好對於專案名字和品牌的保護。像商標註冊之類的工作一定要做在前面,如果在孵化過程中遇到侵權等問題,要及時跟專案導師和公司法務溝通,必要時要動用法律手段,以保護社群的健康發展。


SegmentFault:你們如何理解 Apache Way 的?

百度 PALO 團隊:關於對 The Apache Way 的理解,可以參考 Sally 老師在 Apache 軟體基金會官方微博的一篇文章,有興趣的可以直接讀一下原文:

https://blogs.apache.org/foun...

Apache 軟體基金會工作的重點,不是生產軟體,而是指導產出軟體的社群,這個指導方法我們可以理解為就是 Apache Way,它是在實踐中不斷完善和成長的開源社群發展指導手冊,有了它個人或者組織就可以瞭解大規模開源軟體如何在激烈的競爭市場中進行良好運作。

The Apache Way 的核心原則是“社群大於程式碼”,它更多強調的是“人”,是“生態”,健康的社群才能孕育優秀的程式碼,畢竟人才是核心生產力,有了遵從規則的優秀開發者,不愁沒有優秀的程式碼產出。一個健康的社群總能糾正程式碼的問題,而一個不健康的社群難以保持程式碼庫的正常維護,而 Apache Way 就是保護一個社群在 20 年後還能健康繁榮的“法律框架”,違背它就要接受“懲罰”。

Apache Way 是完全包容、開放、透明和基於共識的。它確保來自商業公司的參與者中立,以防止來自單個公司的不當影響(或控制)。它確保任何具有寶貴貢獻的個人都有權獲得授權,並且儘管社群成員資格隨著時間的推移不可避免地發生變化,但它仍會確保專案有可持續性。

畢業成為頂級專案,ApacheDoris 駛向星辰大海

SegmentFault:從 Apache 孵化器畢業意味著,Apache Doris 將開始新的征程,展望未來,Doris 有怎樣的發展規劃(社群、產品、商業)?

百度 PALO 團隊:畢業意味著新的開始,也意味著新的責任,我們將一如既往地全力支援和貢獻社群,把我們在實踐中所收穫的產品能力與社群分享,與社群的小夥伴一道將 ApacheDoris 建設的更加完善,也讓更多人能體驗到 Doris 的優秀能力。

在產品技術方面,我們將持續打磨 Doris 的核心能力,保持核心技術指標的領先。其中,在效能方面,我們將全方位的打磨或重構現有的查詢層、執行層和儲存層等核心元件,尤其是社群呼聲最高的向量化和優化器,我們將實現完全的面向列的向量化執行引擎,全面淘汰行存,同時,我們將實現全新的 CBO 優化器以及更加精細和豐富的統計資訊,這將把 Doris 的效能進一步推向極致。在穩定性和可觀測性方面,我們將重點補齊 Doris 的短板,強化 Doris 的 Profiling、Trouble Shooting、細粒度的資源監測和管控等能力,我們也將會持續將我們在大規模生產環境所遇到的各種穩定性問題及解決方案貢獻到社群,進而幫助Doris變得更加穩定。我們也將持續完善 Doris 的各項重要功能以及生態對接能力,其中就包括對複雜型別的內建支援、UDF/UDAF 的優化、Hadoop/Spark 生態圈對接能力完善、資料湖和聯邦查詢能力的強化、管控平臺的完善等社群呼聲最高的功能,從而幫助 Doris 變得更加強大和易用。除此之外,Doris 仍然有很多值得完善的地方,我們十分願意傾聽使用者的心聲,並歡迎大家多提 issues,與我們一道幫助 Doris 發展的更好。

在社群建設方面,Apache Doris 已經度過了早期萌芽階段,正在進入高速發展期。一方面,我們要進一步強化社群的運營投入,讓 Doris 能被更多的貢獻者、開發者以及使用者等所知道,努力構建一個多元、繁榮和國際化的社群;另一方面,隨著社群的擴張,以及商業訴求的增長,我們將建立或完善社群的各項規章制度和行為準則,讓各方都能在 Apache Way 的指導下參與社群,保障 Doris 社群能夠良性和健康的發展。

在商業方面,我們也在圍繞 Apache Doris 持續完善我們的商業產品“PALO 資料倉儲”。相比開源的 Doris 引擎,PALO 資料倉儲將提供大規模生產級的穩定性、完善的企業級特性、易用的管控和訪問平臺、無感升級等專有特性,使用者也將享受到來自原廠資深專家的專業技術支援服務。除此之外,我們全新推出的 PALO Cloud 產品將支援先進的多雲原生能力,提供完善的雲原生,以及多雲和跨雲能力,幫助使用者擁抱雲和多雲時代。同時,PALO Cloud 的在離線融合、湖倉融合等能力將幫助使用者構建以資料為中心的新一代全場景統一湖倉,為企業提供資料的統一檢視、統一訪問,真正釋放資料的價值,正如 PALO 的寓意那樣能夠“玩轉 OLAP”。


相關閱讀:

相關文章