資料庫:雲上應用關鍵一環
正如AWS總裁所說的“The real battle will be in databases”,資料庫已經成為上雲的關鍵一環,連接配接IaaS層與智能化應用最為關鍵的步驟就是資料庫。

資料庫發展-業務視角
從業務視角來看,資料庫的發展有這樣幾類,最傳統的關系型事務處理資料庫叫OLTP,對于事務型資料庫而言,最關鍵的問題是保證結構化資料的讀寫一緻性,主要挑戰是高并發的問題,即在海量資料下如何正确處理海量事務等。另外還有分析型資料庫,也就是所謂的傳統數倉,它所解決的問題是面對大量資料如何進行實時的互動式分析。在2008年和2009年,谷歌的三駕馬車——GFS、MapReduce和BigTable誕生之後,就衍生出了NoSQL資料庫,因為傳統關系型資料庫由于具有強一緻性,是以在大資料情況下對于擴充能力還存在很大的限制,NoSQL資料庫則犧牲了一定的一緻性,換取了擴充的能力。除此之外,資料庫還包括資料管理、備份以及傳輸等相關生态工具。以上這些就形成了資料庫四個不同的業務視角。
阿裡雲資料庫-中國雲資料庫上司者
阿裡雲在雲原生資料庫方面做了很多工作,其中最核心的産品當屬POLARDB和AnalyticDB。目前,阿裡雲資料庫在亞太市場排名第一、全球排名第三,并且使用者和開發者的數目已經超過了10萬。
資料庫系統演進
資料庫系統的演進最早從結構化資料庫開始,逐漸衍生出了關系型資料庫,核心技術是SQL和OLTP。後來資料越來越多,由于讀寫沖突的原因,需要将資料從OLTP資料庫裡面轉移到資料倉庫裡面。在建倉的過程中,可能還會把非結構化資料轉化為結構化資料,并存儲到數倉裡,這樣一來就可以在數倉對結構化資料和非結構化資料進行互動式分析,這部分的核心技術是ETL和OLAP。資料庫技術發展到今天,資料類型越來越多,出現了更多新的資料類型,如圖、時序以及文檔等,也需要有新的資料庫系統,是以現在除了RDS、NoSQL之外還有了NewSQL,将傳統關系型資料庫的能力和NoSQL的能力完美地結合起來,這就是所謂的NewSQL資料庫。除此之外,資料庫領域也非常關注Multi-Mode和HTAP。
Multi-Model多模資料庫系統
資料庫可以分為北向和南向,南向是資料庫的存儲層,在南向,資料結構和類型可能是多種多樣的,比如結構化資料、圖資料、時序資料、向量資料以及文檔資料等;而在北向,則希望能夠在查詢層提供一個标準的統一查詢接口,比如SQL。南向存儲形式多樣,而北向查詢接口統一就構成了标準的資料湖服務。除此之外,還可以在南向僅提供一種标準的資料存儲形式,而北向則提供多種多樣的查詢接口,讓使用者可以按照圖、文檔等方式進行查詢。
資料庫智能化+自動化管控平台
對于開發者而言,資料庫系統變化的一個重要趨勢是越來越智能化,包括Oracle在内的各大資料庫廠商都在強調資料庫智能化。資料庫的智能化可以分為兩個主要方面,一方面是核心的智能化,比如對于資料進行查詢以及冷熱分離,可以借助人工智能和機器學習的方法進行優化。另外一方面是資料庫運維管控平台的智能化,使得資料庫系統可以像自動駕駛汽車一樣管理資料庫執行個體。
新硬體:軟硬體一體化設計
資料庫系統變化的另外一個重要趨勢是RDMA、SSD、NVM、GPU/FPGA等新硬體帶來的軟硬體一體化的設計。無論是核心開發還是應用開發,新硬體的出現和使用都對開發者提出了更高的要求。
下一代企業級資料庫:雲原生+分布式
今天的資料庫領域存在三種主流架構,即單節點架構、存儲和計算分離雲原生架構以及經典的分布式架構。阿裡雲認為下一代的企業級資料庫的架構一定需要結合雲原生架構和分布式架構的優勢。也就是說需要在上層實作Shared Nothing,使得應用可以水準拓展,能夠應對雙11這樣的海量資料和高并發的場景。中間做分庫分表,但是傳統架構下的分庫分表可能對業務有所改造和侵入,也會增加跨Shard以及跨庫查詢的機率,使得性能會大大下降。是以,阿裡雲希望在下面一層使用Shared Everything的雲原生架構。這樣就使得每個Shard的處理能力大大增加,使得跨庫查詢和Distributed Commit的機率大大降低,系統的複雜度也會大大的降低,同時開發對應用的侵入程度也會降低。
阿裡雲資料庫技術與産品是完整的生态體系
利用雲原生+分布式的這種技術架構就能夠支撐雙11瞬間120倍的流量峰值增長。通過利用OLTP的POLARDB和OLAP的ADB就可以形成一個從資料産生、事務處理到實時消費、分析的完整閉環。
阿裡雲RDS For MySQL/AliSQL
當開發者來到阿裡雲的資料庫平台,所看到的RDS For MySQL其實并不是官方版本的MySQL,而是阿裡巴巴自己維護的AliSQL分支。在AliSQL之上,阿裡巴巴做了大量企業級應用,比如支援TDE、BYOK等,還實作了線程池,增加了企業級應用開發的功能,也大大簡化了開發者使用MySQL生态進行應用開發的複雜度。此外,RDS還支援單節點、雙節點以及三節點的部署方式。正因為做出了這些貢獻,阿裡巴巴獲得了MySQL 2018年的社群貢獻獎,也是亞太地區唯一獲得這個獎項的公司。
阿裡雲RDS AliSQL三節點金融級高可用叢集
阿裡雲RDS AliSQL實作了三節點金融級高可用叢集,其最大的優勢就是高可用,因為它将CAP理論中的三點比較完美地結合起來。其核心思路是三節點中存在一個RDS的Leader以及兩個Follower,通過Paxos形成三節點之間的Binlog同步,這樣就可以保證資料和應用的高可用。
阿裡雲PostgreSQL獨有的增強功能
除了MySQL之外,阿裡雲的PostgreSQL在社群版本上做了大量優化,比如Ganon支援GPU時空遙感引擎,varbitx支援對使用者畫像資料進行處理,BYOK實作了存儲層加密等。在POLARDB for PostgreSQL版本上可以做到16個計算節點的拓展,在AnalyticDB for PostgreSQL上引入了HyperLog預估分析,比傳統使用直方圖進行預估分析準确得多,并且成本也低很多。是以,對于中小型業務,可以使用标準的社群版的RDS for PostgreSQL;對于混合型複雜業務,可以使用POLARDB for PostgreSQL;對于海量分析型BI以及報表業務,可以使用AnalyticDB for PostgreSQL,這樣就形成了PostgreSQL生态的完整閉環。
POLARDB架構細節
接下來展開分享下一代企業級資料庫架構,首先介紹大家比較熟悉的POLARDB。POLARDB的主要架構設計模式是計算與存儲分離,使用RDMA做共享存儲,在存儲層通過Data Chunk和Parallel Raft協定保證資料高可用,這就實作了單一執行個體的多個主備架構。同時,前面增加一層PolarProxy實作多節點之間的讀寫分離和負載均衡。在下層實作了PolarFS檔案系統,對接底層的PolarStore分布式共享存儲。現在,POLARDB釋出了MySQL 5.6版本以及MySQL 8.0版本,還有PostgreSQL的版本以及高度相容Oracle的版本,各種各樣的生态都能夠在POLARDB資料庫上得以完美的展現。
此外,阿裡雲POLARDB還實作了并行查詢優化,使得查詢的平均性能提升了27倍。大家知道MySQL等資料庫的查詢優化器或者查詢執行器在實際上并沒有做并行查詢優化。而阿裡雲POLARDB則實作了線程池,是以可以實作并行化查詢。舉個簡單的例子,一個包含100個Group by的SQL語句,如果做并行查詢Group by,執行時間可能是原本串行執行Group by的1%。
阿裡雲POLARDB分布式版本——POLARDB-X
阿裡雲POLARDB分布式版本POLARDB-X簡單而言就是把DRDS和POLARDB進行集合,形成上層Shared Nothing,下層Shared Everything、共享存儲的架構,這種架構在針對海量資料進行開發的場景下具有諸多優勢。
智能化OLAP:AnalyticDB實時互動式資料倉庫
在生态相容方面,AnalyticDB MySQL版本相容MySQL生态,AnalyticDB PostgreSQL版本相容PostgreSQL生态。AnalyticDB使用行列混存引擎,是以支援高吞吐寫入和高并發查詢AnalyticDB也采用計算和存儲分離的架構,它會把計算資源進行池化實作靈活排程,将計算節點分為寫入節點和隻讀節點,并做智能化的排程,根據實際負載決定讀寫節點的配置設定情況。AnalyticDB具有向量化的執行引擎,支援對結構化資料和非結構化資料進行聯合分析,對人工智能以及機器學習的很多應用非常有幫助。
AI for DB-DBAdvisor:智能化資料庫管控與核心
阿裡雲在智能與安全方面提供了DBAdvisor工具。DBAdvisor能夠幫助開發者優化資料庫管控政策,比如索引政策和分庫分表政策等。DBAdvisor能夠根據實際業務複雜推薦如何做Sharding。此外,SDDP,Self-Driving Database Platform是DBAdvisor最核心的元件,其能夠幫助阿裡經濟體的資料庫每天節省大約27TB的存儲空間。
雲上資料安全
雲上的資料庫安全非常重要,目前阿裡雲已經擁有标準的資料庫安全體系。而在未來,開發者也需要考慮更多的安全因素,比如日志是否不可篡改、資料庫核心是否可以全程加密等。在雲上資料庫安全方面,阿裡雲在全球首先實作了全加密資料庫PostgreSQL版本,能夠做到在任何情況下資料都不會洩漏。
資料傳輸雲服務DTS
想要享受雲資料庫所帶來的開發便利,那麼資料從一端傳輸到另外一端的工具必不可少。阿裡雲提供了資料傳輸雲服務DTS,它支援多種不同的資料源到異構資料庫的實時同步,同時也可以支援一定程度的ETL,這樣在資料傳輸的過程中,還可以到其他系統中進行消費。
阿裡雲資料庫:資料上雲高速公路
綜合上述内容,阿裡雲資料庫形成了一個從關系型資料庫到分析型資料庫,再到NoSQL資料庫和工具的完美生态。
擁抱開放生态,攜手客戶與開發者共成長
阿裡雲希望并且歡迎和開發者共同成長,一起為社群做出貢獻。AliSQL在開源領域獲得了很多榮譽,阿裡雲DRDS也會在未來幾個月内進行開源。阿裡雲希望和大家攜手共建世界一流的分布式資料庫系統。