去年年末中國電子學會正式公布了2020年中國電子學會科學技術獎名單, 阿裡雲自主研發的雲資料庫PolarDB,獲得科技進步一等獎。

(左四為PolarDB項目的負責人李飛飛)
這不是阿裡去第一次獲得這樣的榮耀,阿裡雲的飛天作業系統在2018年曾經獲得過電子學會科學進步特等獎,也是該獎項設立以來科學進步方面的首個特等獎,這次PolarDB的獲獎也說明了阿裡雲自主技術的實力。
在今年5月29日的阿裡雲開發者大會上,李飛飛正式宣布将開源PolarDB for PostgreSql,這個決定的宣布也是整個開發者大會上,筆者得到的最大的驚喜之一。
PolarDB是阿裡雲自研的資料庫産品家族,采用存儲計算分離、軟硬一體化設計,既擁有分布式設計的低成本優勢,又具有集中式的易用性,可滿足大規模應用場景需求。計算能力最高可擴充至1000核以上,存儲容量最高可達100TB,叢集版單庫最多可擴充到16個節點,性能比MySql高6倍。PolarDB系列産品已連續多年穩定支撐天貓雙11,處理峰值高達創紀錄的1.4億次/秒。
PolarDB有三個相容的産品分支,分别對應MySql、PostgreSql和Oracle。我們注意到此次在阿裡雲開源PolarDB for PostgreSql分布式版本之前,華為OpenGauss計劃實際上也是 GaussDB For PostgreSql的版本,此次阿裡雲的開源也頗有與華為GaussDB同場競技,通過代碼顯現自身實力的意味。PolarDB本次開源使用比較開放的Apache Version 2.0協定,代碼可以修改和再釋出。
自2018年起,阿裡雲連續三年進入Gartner資料庫魔力象限,并在2020年挺進Gartner全球資料庫上司者象限,成為基礎軟體領域首次進入上司者象限的中國企業。目前,阿裡雲資料庫市場佔有率穩居全球前三,亞太第一。是以本次PolarDB的開源實在令人驚喜,因為開源實際是把自身的核心技術完全開放出來,這也會給競争對手以一定的借鑒參考甚至超車的機會,隻有對自身技術疊代能力極為自信的企業,才會選擇将核心技術開源。
據傳,最初對于PolarDB是否開源,阿裡雲内部的讨論十分激烈,為此張建鋒和李飛飛甚至拍過桌子,但最終的決定還是開源。在聽完了李飛飛在本次開發者大會的分享後,筆者認為PolarDB開源的底氣其實在于阿裡雲對于資料生态鍊條完整的把控,而通過開源也必然會讓阿裡雲資料庫生态體系更加強大。
大有大的難處,資料庫的Sql之争
權威咨詢機構IDC對于大資料的定義是現有技術難以處理的資料。從曆史來看,在谷歌提出大資料三駕馬車的論文時,當時的關系型資料庫技術就已處于難以處理大規模資料的狀态。而在當下各行各業不斷上雲的大背景下,資料的量級必然還将不斷創出新高,從筆者了解到的情況來看,整個IT行業存儲的資料量級正在以年化80%左右的速度增長,傳統Sql的資料庫很難處理這樣的資料量。
随着時間的發展現在資料庫方面有兩大流派,一個是非關系型(NoSql)資料庫,這是一種專門用來存儲海量資料的Key-Value型資料庫,主要用于使用者畫像、業務報表等海量資料的挖掘工作;另外一個是關系型(Sql)資料庫,其針對個别記錄增、删、改、查的速度很快,但很少做全表級别的大型關聯計算,是以一般用于聯機交易場景。簡而言之,Sql處理速度快,NoSql處理資料量級高。
之前Sql與NoSql的應用場景兩不重疊,井水不犯河水,但像直播帶貨這樣的新場景不斷湧現,由于在直播中的交易既要更新商家的庫存和買家的帳戶餘額,又要根據客戶行為進行實時分析、精确營銷,類似這種綜合Sql與NoSql需求的業務場景不斷湧現,而以PolarDB為代表的雲資料庫則是解決這類問題的最佳途徑。
以筆者所在的銀行為例,目前一般在商業銀行都使用Oracle資料庫作為核心系統,但Oracle隻能處理流程性的交易資料,不能做資料挖掘,要想把資料價值做二次表達,要每天做ETL、跑批作業、存到資料倉庫中,然後在資料倉庫中模組化、挖掘、資料集市、ODS,一層一層地建構起資料倉庫報表。
如果還回答不出非線性問題這樣更細節更隐含的問題,就要把資料複制到SAS中做機器學習,再做統計的名額體系,以便做進一步的挖掘。資料要在這裡搬動三次,複制三份備援,還要管理資料一緻性,每天資料中心運維的大量工作在做資料搬家。而資料在這種低效的轉運遷移過程當中,很多價值也就白白耗散了,同時帶來了處理時效和災備建設這兩個巨大的問題。
在處理時效問題上,正如我們前文所說,Sql與NoSql兩種産品底層構模組化型并不相同,彼此相容性不佳。這首先就會催生出資料處理的時效性問題,還是以筆者所在的銀行為例,分析資料在交易核心資料庫中跑批處理,再ODS抽取ETL分析到數倉,再進一步訓練流式計算,最後再入湖,整個資料手動的過程至少需要一天。
而且Hadoop和資料湖的開源生态中很多元件并不相容,日常運維已捉襟見肘,想提速也無從下手,但業務對于轉瞬即逝的營銷機會又如此渴求,T+1分鐘可能都會嫌慢。對于處理時效的要求可能是大資料工程師與産品經理之間永遠無法達成的協定。
PDB與ADB的協同之戰
從上面的介紹想必大家也能看出來,目前各個資料中心都迫切的找到一個一棧式解決方案,屏蔽底層元件的差别,打造“All Data In One”的解決方案,隻有如此才能提高效率,低成本運維。而阿裡雲的PolarDB為代表的關系型資料庫專注于解決Sql的需求,其 提供 的自動參數優化,自動索引推薦等功能,極大的提升了資料庫管理者的幸福感,AnalyticalDB則是NoSql資料倉庫方面的絕頂高手,這兩個産品形成的資料庫解決方案體系彌合了Sql與NoSql之間的鴻溝。
以PolarDB為代表的雲原生資料庫通過存儲和計算分離、資源解耦,進而具備更高的彈性和高可用性以及分布式的能力,來滿足業務對按需按量使用和按需按量付費的需求。
PolarDB和AnalyticalDB都是一種服務,使用者完全可以不關注隐藏在PaaS層之後的具體細節,資料庫及數倉之間的資料流動等技術細節被雲服務封裝起來,對于使用者屏蔽了,這也使這一整套解決方案體系綜合了NoSql與Sql的優勢,使用者可以不費吹灰之力的同時擁有一個高效的資料倉庫,可謂一舉使用者在使用資料庫中的最大痛點。