
在上周落幕的2019資料技術嘉年華大會上,阿裡巴巴集團副總裁、阿裡雲智能資料庫事業部總負責人李飛飛與大家分享了下一代企業級資料庫系統。
資料庫:雲上應用關鍵一環
如今,企業上雲已是大勢所趨。在上雲的過程中,資料庫則被認為是雲上至關重要的一環。雲最開始提供的是IaaS,而随着各種智能化應用的興起,資料庫就成為了從IaaS到智能化應用連接配接的關鍵。
阿裡雲資料庫 中國雲資料庫上司者
目前,阿裡雲是中國以及整個亞太地區排名第一的雲資料庫服務商,全球範圍阿裡雲排名第三。阿裡雲核心産品涵蓋了OLTP資料庫(包括POLARDB等),OLAP下一代實時分析型資料庫——AnalyticDB,NoSQL資料庫及專用型資料庫,資料庫生态工具等。
與此同時,阿裡巴巴還有達摩院資料庫實驗室,這個實驗室主要負責進行一些資料庫領域的前沿探索,比如全鍊路加密資料庫以及智能化資料庫的探索。阿裡雲提供了豐富的雲資料庫産品,從公有雲到專有雲,再到今年剛推出的資料庫一體機,對于各種形态的資料庫産品和系統都能夠提供強大的支撐。
那麼,面向未來的企業級資料庫的技術和産品到底應該長什麼樣呢?我們一起來看看。
資料庫系統演進
資料庫系統的演進經曆了從最早的關系型資料庫OLTP到半結構化,再到分析型資料庫OLAP等非結構化的資料庫,再發展到如今的多模資料庫。
Mutil-Model多模資料庫系統
如今,資料庫技術面臨着很多挑戰,其中之一就是Mutil-Model多模資料庫系統,這一部分在業界已經有很多類似産品。對于多模而言,可以分為南向、北向,南向多模代表存儲多種多樣,而希望用統一的查詢語言來查詢來自于不同資料源的資料,其實也就是資料湖的概念。
另外一種則是北向多模,資料存儲一般隻有一種模式,比如KV,但是卻希望提供多種查詢接口,比如像圖、文檔。以上提到的北向多模和南向多模就是多模兩種不同形态。
資料庫智能化+自動化管控平台
資料庫技術發展到今天,可以将其想象成一個汽車,它具有非常多的參數,它在運作過程中會跑到不同道路上,并且周圍還有很多别的不同汽車。
互相之間如何協調,引擎的優勢如何展現出來,其實就和自動駕駛汽車非常像,是以稱之為“Self-Driving Database Platform”。在這之上,阿裡希望做到自感覺、自決策、自恢複和自優化,這也是下一代智能化資料庫的基本定義。
新硬體: 軟硬體一體化設計
未來,下一代的企業級資料庫一定要結合軟硬體一體化的設計理念,而不能把軟體和硬體隔開。一定要将軟硬體結合在一起,才能更好地将資料庫系統的優勢發揮出來。
比如NVM對傳統資料庫的保護機制會帶來很大的沖擊和改變,并且也會對記憶體的使用和管理造成很大的改變。而RDMA則是另外的一個例子,其使得資料庫通路遠端節點資料的速度非常快,這就成為了存儲與計算分離技術的基礎。
雲原生架構: 彈性x高可用x企業實踐x開放生态
今天來看,業界有各種各樣的資料庫,可以大緻分為三類,第一類是單節點資料庫。對于單節點資料庫而言,計算節點和存儲節點是緊耦合在一起的。
傳統的單節點MySQL、PG以及商業資料庫Oracle、SQL Server等都是基于這樣的架構。單節點架構的優點在于開發簡單、部署容易,缺點是擴充性和高可用都不好。
而分布式架構将資料進行分片并分别存在不同節點上面,它在底下挂了很多個單節點架構。特點是水準擴充能力特别強,當資料量變大、并發量變高的時候隻需要增加節點即可。其劣勢是如果要求不改動上層業務邏輯,就必須要有能力去處理分布式事務和分布式查詢。
雲原生架構的邏輯:雲上的資源是“取之不盡,用之不竭”的,隻要願意付費,隻要客戶有需求,理論上可以無限擴容。而雲上最大的需求就是要有非常好的彈性,當需要資源的時候,可以取之不盡,用之不竭;當不需要的時候,則可以把它全部釋放掉。
彈性就如同家裡的自來水一樣,需要用的時候把水龍頭打開,不需要的時候就關掉。而傳統線下的資料庫使用方式更像是一個蓄水池,裡面配置設定的伺服器等資源是固定的,當将水位估計好之後,就隻需要蓄足夠多水就好了。
雲資料庫能夠為使用者提供彈性使用方式,通過存儲和計算分離,把分布式存儲節點通過網絡連起來,使得通路遠端節點就跟通路本地節點一樣快,使得使用者無感覺。
下一代的企業級資料庫:雲原生+分布式
下一代的企業級資料庫架構應該是将雲原生架構和分布式架構結合起來的。底下的每個Shard都是雲原生資料庫,存儲與計算分離,是以每個Shard的彈性都非常好,能力處理的并發量也都非常大。
是以,對于同樣的需求而言,所需要的Shard數量就會大大減少。阿裡雲的POLARDB分布式版資料庫就将雲原生能力和分布式能力完美地結合起來。
完整的生态體系
阿裡雲資料庫不僅在雲上提供服務,還會支撐整個阿裡巴巴集團内部經濟體的所有活動。2018年雙11,在零點剛過的第一秒,阿裡的資料庫系統峰值增長了大概122倍,瞬間爆發,這就需要資料庫具有較高的可擴充性、彈性以及高可用。
開放生态,擁抱開源
阿裡巴巴在開源社群也做了大量工作,比如在MySQL社群中所做的工作也得到了社群高度認可,也拿到了社群的各種獎項。此外,在PostgreSQL上替代傳統的統計查詢方式進行優化,能夠支援OLTP和OLAP一起完成混合負載任務。
雲原生資料庫:POLARDB
接下來重點分享阿裡巴巴自研資料庫核心技術的理念和突破,也就是如何把前面提到的雲原生和分布式架構有機、完美地結合起來。
阿裡自研POLARDB資料庫,其架構的上層有多個計算節點,計算節點下面有一個分布式共享存儲,通過RDMA網絡連接配接。目前,公有雲上線的POLARDB版本能夠做到16個計算節點,在POLARDB 1.0版本中做到了一寫多讀,目前不僅是國内,包括東南亞等國家都有很多案例,而且客戶通過大量的測試和嘗試發現,阿裡雲POLARDB的性能和穩定性都非常優秀,這就能夠看出來阿裡雲資料庫是非常靠譜的。
對于資料庫,尤其是OLTP系統而言,客戶往往将自己的身家性命壓在這裡了。是以,POLARDB的架構非常具有競争力。目前,1個POLARDB執行個體可以做到100TB的存儲容量,單節點可以做到100萬QPS。
POLARDB架構細節
具體而言,在共享存儲裡面實作高可用,把資料分塊形成Data Chunk,每個資料分塊會備份三份,通過Parallel Raft協定在分布式共享存儲裡實作高可用,使得使用者無需擔心資料丢失的問題。
此外,在POLARDB 2.0版本将會實作多寫多讀以及跨區的高可用。POLARDB前面有一個Smart Proxy,這個Smart Proxy負責負載均衡以及讀寫分發等工作。
POLARDB并行查詢:27倍性能提升
除了在架構方面的優化,POLARDB在資料庫核心中也做了大量優化。其中一個是并行查詢。衆所周知,傳統資料庫如Oracle、MySQL等都是單線程查詢。而今天幾乎所有的CPU都是多核的,想要充分發揮這些硬體的能力,就需要資料庫的引擎具有很好的并行查詢能力。
是以,阿裡雲資料庫團隊圍繞并行查詢做了大量工作,對于資料庫的SQL解析器、優化器以及執行引擎全部進行了重寫,可以支援多線程并行執行。對于資料庫中較為典型的Group By等查詢的速度提升非常有利,平均能夠達到27倍的性能提升。
把雲資料庫帶回家:POLARDBBox,高性能一體機
今年9月底,POLARDB Box高性能一體機正式釋出。在10月已經有10個落地的實際案例,其中兩個已經正式簽約。POLARDB Box高性能一體機具有以下特點:高度相容Oracle,完成超過1000多個Oracle相容項的優化。
一個盒子裡面能夠支援1000多個Vitual CPU,9TB記憶體以及120TB閃存。POLARDB Box高性能一體機也具備并行查詢優化的能力,同時,也具備非常強大的時空資料查詢引擎。
此外,通過阿裡雲資料庫遷移工具ADAM和DTS以及AnalyticDB形成的一整套生态,能夠讓客戶非常簡單地把雲資料庫帶回家。
POLARDB Box高性能一體機和傳統一體機有什麼不同?最核心的部分是POLARDB Box高性能一體機裡面的管控平台就是阿裡雲公共雲的管控平台,也就是說POLARDB Box高性能一體機的管控是和公共雲打通的。
如果使用者還未想好是否上雲,那麼可在IDC裡面先使用一體機方式享受雲資料庫的性能,後續上雲就變成無縫的過程,甚至可以采用混合雲方式,一部分資料上雲,一部分資料不上雲,因為雲上和雲下的管控是打通的,對于使用者而言是無縫管理的體驗。
POLARDB-X:分布式版本支援水準擴充
POLARDB-X分布式版能夠完美地結合分布式與雲原生的能力。比如在阿裡巴巴集團的雙11場景下一定要做分庫分表,此時僅有計算分離、彈性這些還是不夠的,一定要做分庫分表,否則是無法支撐瞬間122倍流量峰值的。阿裡雲POLARDB-X在分庫分表的基礎之上加上了雲原生的能力,這樣就可以減少跨庫查詢機率。
智能化OLAP:AnalyticDB實時互動式資料庫
除了POLARDB,阿裡雲在智能化OLAP方面還擁有實時互動智能資料庫——AnalyticDB,能夠支撐海量資料處理分析、向量分析等。
在資料分析領域存在大量的非結構化資料,而如今每天産生的80%資料都是非結構資料,比如照片、視訊等。
那麼,如何把非結構化資料在一套系統裡面無縫地進行互動式分析呢?阿裡雲資料庫團隊就做了向量處理引擎,首先将非結構化資料實作向量化,在高維向量空間中進行處理。AnalyticDB中就實作了向量處理引擎,這樣就可以在向量空間中把結構化資料和非結構化資料實作融合處理。
AI for DB-DAS:智能化資料庫管控與核心
除了架構上、技術上的突破,除了雲原生和分布式之外,下一代企業級資料庫的另外兩個核心關鍵詞應該是智能化和安全。所謂智能化就是智能化管控雲核心,這一部分在阿裡巴巴内部已經落地了,阿裡巴巴全網的幾十萬個資料庫執行個體上面都會有Agent,去采取實時的運作狀态,進行實時監控和預警。
其中一部分工作是自動調整資料庫Buffer的大小,這對于資料庫的性能和成本具有非常大的影響。阿裡雲資料庫能夠實作在保證全網性能不發生較大變化的情況下,通過自動調整資料庫Buffer的大小,平均每天可以節省記憶體使用成本達15%以上。
雲上資料安全
雲上資料安全也非常重要。傳統資料庫安全方法隻是保證資料在傳輸過程中的安全以及加密,但資料真正進入資料庫核心進行處理的時候還是要進行解密的,這時就會有資料洩露的風險。
針對這樣的問題,阿裡雲資料庫團隊就實作了全鍊路加密資料庫。全鍊路加密資料庫使得資料進入資料庫核心之後,依然不需要解密,而且資料庫加密的密鑰是客戶提供的,不需要提供給雲廠商。全程來講,雲廠商即使作為Root管理者也沒有辦法看到使用者的資料。
資料傳輸雲服務DTS
資料上雲的第一步一定是尋找到一條上雲高速公路。阿裡雲資料傳輸服務DTS,能夠将不同源端資料庫遷移到目标資料庫,這裡涉及的核心技術挑戰就是如何在複雜的網絡以及部署環境下實作不同源端和目标端的使用者資料遷移。
擁抱開放生态,攜手客戶與開發者共成長
下圖展示的是整個阿裡雲資料庫的布局情況。阿裡雲希望擁抱開放生态,攜手客戶與開發者一同成長。阿裡雲希望能基于自身的兩個核心的自研資料庫産品——POLARDB和AnalyticDB以及上述提到的資料傳輸工具DTS等26款産品和服務,共同打造具有中國特色的資料庫生态。
資料庫系統不一定要開源,但一定要擁抱一個開放的标準生态,以此來避免從一個封閉系統走向另外一個封閉系統。
資料技術嘉年華PPT來啦!
擷取方式:請在本公衆号背景回複以下關鍵字
- 回複【嘉年華】擷取《POLARDB産品架構與實作》PPT
- 回複【智能】擷取《阿裡巴巴智能化運維探索》PPT
- 回複【PG】擷取《PG為什麼這麼火?》PPT
- 回複【最佳實踐】擷取《Oracle資料庫異構上雲最佳實踐》PPT