DTCC 2020 | 阿里雲李飛飛:雲原生分佈式數據庫與數據倉庫系統點亮數據上雲之路

雲計算時代,雲原生分佈式數據庫和數據倉庫開始崛起,提供彈性擴展、高可用、分佈式等特性。

數據庫將面臨怎樣的變革?雲原生數據庫與數據倉庫有哪些獨特優勢?在日前的 DTCC 2020大會上,阿里巴巴集團副總裁、阿里雲數據庫產品事業部總裁、ACM傑出科學家李飛飛就《雲原生分佈式數據庫與數據倉庫系統點亮數據上雲之路》進行了精彩分享。

以下爲小編整理的演講乾貨實錄:

一、背景與趨勢

1.背景

數據庫的本質是全鏈路的對“數據”進行管理,包括了生產—處理—存儲—消費等,在當下的數據化時代,數據是所有企業最核心的資產之一,所以數據庫的價值一直在不斷地提升,不斷地在新領域發現新的價值。

2.業界趨勢

趨勢一:數據生產/處理 正在發生質變

關鍵詞:規模爆炸性增長、生產/處理實時化與智能化、數據加速上雲

從Gartner、IDC及各個傳統廠商分析中可以得到以下幾個結論:

  • 數據在爆炸性增長,非結構化數據的佔比越來越高;

  • 生產/處理實時化與智能化的需求越來越高,並追求離在線一體化;

  • 數據庫系統、大數據系統、數據管理分析系統等上雲的趨勢明顯,數據加速上雲勢不可擋。

趨勢二:雲計算加速數據庫系統演進

關鍵詞:商業起步 - 開源 - 分析 - 異構NoSQL - 雲原生、一體化分佈式、多模、HTAP

雲計算面臨兩大挑戰

挑戰一:分佈式和ACID的結合
從傳統的大數據處理來看,犧牲部分ACID換來的分佈式水平拓展雖然非常好,解決了很多場景下的需求,但是應用對ACID的需求一直存在,即使是分佈式並行計算的場景當中,應用對ACID的需求也變得越來越強。

挑戰二:對資源的使用方式
傳統的馮諾依曼架構下計算和存儲是緊密耦合的,可將多個服務器通過分佈式協議和處理的方式連成一個系統,但是服務器和服務器之間、節點和節點之間,分佈式事務的協調、分佈式查詢的優化,尤其要保證強一致性、強ACID的特性保證的時候,具有非常多的挑戰。

全球雲數據庫市場格局

關鍵詞:資源池化,資源解耦

雲的本質是用虛擬化技術將資源池化,並且將資源進行解耦。阿里雲是核心雲廠商之一,基於雲原生技術,打造了雲原生數據庫產品體系,代表中國的數據庫廠商,在Gartner將OPDBMS(事務處理 )與DMSA(管理與分析)合二爲一的挑戰下,歷史性第一次進入Gartner Cloud DBMS雲數據庫全球領導者象限,市場份額來全球第三,在中國業界領先。

數據庫系統架構演進

關鍵詞:單節點、共享狀態、分佈式

上圖是基於存儲計算緊耦合,DB代表計算節點,架構當中計算節點的CPU Core和內存還是緊耦合在一起。左邊的架構單一,資源緊耦合。右邊分佈式架構,通過Shared Nothing將多個部分連成一片,理論上具備非常好的水平擴展能力,利用分佈式的協議進行分佈式的事務處理和查詢處理,但是也遇到分佈式場景下分佈式事務處理、分佈式查詢等非常多的挑戰。

不管是傳統的中間件分佈分表的形式還是企業級的透明分佈式數據庫都會面臨一個挑戰,一旦做了分佈式架構,數據只能按照一個邏輯進行Sharding和Partition,業務邏輯和分庫邏輯不是完美一致,一定會產生跨庫事務和跨sharding處理,每當ACID要求較高的時候,分佈式架構會帶來較高的系統性能挑戰,例如在高隔離級別下當distributed commit佔比超過整個事務的5%或者更高以上的話,TPS會有明顯的損耗。

完美的Partition Sharing是不存在的,這些是分佈式業務需要解決的核心挑戰,以及在這個架構需要做到的高一致性保障。

雲原生的架構,本質上底下是分佈式共享存儲,上面是分佈式共享計算池,中間來做計算存儲解耦,這樣可以非常好地提供彈性高可用的能力,做到分佈式技術集中式部署,對應用透明。避免傳統架構當中的很多挑戰,比如分佈式事務處理、分佈式數據如何去做partition和sharding。

共享存儲、共享資源池、共享計算池的時候,它的水平拓展性還存在一定侷限性。我們可以結合分佈式和雲原生的架構融合來解決這個問題。

在上圖展示中,把Shared Nothing的能力和Shared Storage/Shared everything的能力打通,每個shard下面是一個資源池,能力非常強,彈性很高,同時也可以把這樣的部分用分佈式技術聯繫起來,既享受到分佈式水平拓展的能力的好處,同時又避免大量的分佈式事務和分佈式處理場景。因爲單個節點計算存儲能力都特別強,200TB的數據按照傳統的分佈式架構,假設1個節點只能處理1TB,那就需要200個分佈式節點。雲原生架構1個節點可以處理100TB,也就是爲2000TB的數據,傳統分佈式架構需要200個節點,將雲原生架構結合起來需要兩三個節點,分佈式事務處理、分佈式查詢的概率會大大降低,整個系統的效率會大大提升。

趨勢三:下一代企業級數據庫關鍵技術
關鍵詞:HTAP:大數據數據庫一體化、雲原生+分佈式、智能化、Multi-Model 多模、軟硬件一體化、安全可信

大數據、數據庫一體化的趨勢包括離在線一體、Transaction and Analytical Processing一體化,離線計算和在線交互式分析的一體化,統稱爲大數據與數據庫一體化。

雲原生和分佈式技術的深度融合,智能化、機器學習、AI技術在數據庫領域的融合,如何簡化運維、簡化數據庫的使用方式。除了結構化數據,如何處理非結構化數據,比如文本等數據,軟硬件一體化,如何結合硬件的能力如RDMA和NVM,發揮出硬件的優勢。最後是系統的安全可信能力。

二、核心技術&產品介紹

2.1企業級雲原生分佈式數據庫

1)雲原生關係型數據庫PolarDB

阿里雲自研關係型數據庫的核心產品是雲原生關係型數據庫PolarDB,通過這下面張圖就可以理解PolarDB的思想,存儲和計算分離,通過RAFT來做高可用、高可靠的保障,在計算節點來做一個計算池,下一代版本的PolarDB可以做到多寫多讀multi-master,計算節點在下一代會進一步解耦,做成共享內存池,CPU Core可以做到共享計算池,然後去訪問一份共享內存, PolarPorxy負責做讀寫分離和負載均衡工作。

基於這個架構,100%兼容MySQL/PG和高度兼容Oracle的PolarDB誕生了,針對開源和商業數據庫的使用場景,在性能上做了大量的優化,比如做Parallel Query Processing,取得了非常優異的性能,整個TCO相對傳統數據庫可以做到只有1/3到1/6,TPCC同樣的負載下性能有大幅度提升。

在PolarDB的基礎上做了Global Database,跨Region的架構解決了很多出海客戶就近讀寫的需求。

2)雲原生分佈式數據庫PolarDB-X

分佈式版本的PolarDB-X:基於X-DB以及原來的分庫分表DRDS將二者合二爲一成爲一個透明的一體化分佈式數據庫PolarDB-X。每個分佈式節點包括兩個數據節點、一個日誌節點,通過優化Paxos確保數據節點和日誌節點的數據一致性。

它的特點在於三節點可以做到跨AZ部署做到同城容災,不需要傳統的商業數據庫利用數據同步鏈路來做容災,直接在存儲層做到同城容災。

異地的兩地三中心甚至更多異地容災架構,比如跨異地的直接部署,因爲網絡的Latency非常大,可能會影響到性能,還是需要通過類似ADG、DTS這樣的產品架構來做數據同步,做到異地容災架構。

3)數據庫及應用遷移改造ADAM

ADAM,全稱Advanced Database Application And Application Migration,通過對應用代碼和邏輯樹的分析生成一個評估報告。評估報告自動生成,可以提供從傳統數據庫遷移到PolarDB和ADB的遷移分析。

一鍵遷移的方案通過ADAM來做應用代碼的掃描,通過DTS去做數據的實時同步,遷移到雲原生的數據庫當中,可以做到對於客戶的應用無切入的改造。

如圖所示:

總結來說,分佈式只是一個技術,實際上很多數據庫的應用是不需要分佈式,通過雲原生的能力就可以很好地滿足應用彈性、高可用、水平拓展的需求。真正需要分佈式的能力就可以結合Shared Nothing架構和技術來做擴展,所以要根據應用需求從客戶視角出發設計系統和應用遷移改造方案。

2.2雲原生數據倉庫與數據湖

一體化設計成爲下一代數據分析系統的核心理念

數據庫市場不僅是TP關係型數據庫。這也是爲什麼Gartner將傳統的OPDBMS(事務處理)與DMSA(管理與分析)合二爲一成爲Cloud DBMS,並且斷言Modern DBMS can do both and there is only one Cloud DBMS market。除了事務處理,數據庫系統也需通過計算分析實現數據處理的一體化,例如在數據倉庫和數據湖領域發揮作用。

雲原生數據倉庫+雲原生數據湖構建新一代數據存儲、處理方案

數據分析領域是羣雄格局的現狀,在線查詢、離線計算,有非常多細分領域,利用雲原生計算技術的資源池化、資源解耦,會看到下一代雲原生的數據系統。下一代的雲原生數據倉應該具備實時在線的“增刪改查”能力,在此基礎上支持離在線一體化,既能做在線交互式分析和查詢又能做複雜的離線ETL和計算,支持多維度的數據分析,這就是對雲原生數據倉庫的核心要求。

數據倉庫當中的增刪改查和TP數據庫存在一定區別,因爲對隔離機制的要求相比沒有那麼高,例如不需要做到snapshot isolation,因爲是一個分析系統,但是一定要支持傳統數據庫的在線增刪改查的能力,不是隻能支持Batch Insertion的場景。

1)雲原生數據倉庫

數據倉庫適用於範式化、有結構的數據處理,適用於已經Normalized數據管理和應用,已經有了非常清晰穩定的業務邏輯,需要範式化進行管理。

雲原生數據倉庫利用雲原生架構對傳統數據倉庫進行升級和改造,資源池化、資源解耦實現彈性、高可用、水平拓展、智能化運維是雲原生的核心本質之一。

如果把這些結合在一起,阿里雲就是OSS、亞馬遜就是S3,低成本的對象存儲作爲冷存儲池,同時利用高效的雲盤做一個本地的緩存,計算節點進行解耦,對本地節點進行加速,通過高速網絡連成一個池,再對應用做統一的透明式服務。

AnalyticDB 雲原生數據倉庫

這個架構展開底下是對象存儲,利用RAFT協議實現數據一致性,對每個計算節點的本地緩存加速利用ESSD彈性雲盤。上面是計算池,在數據倉庫爲了實現大數據和數據庫一體化,數據倉庫領域的計算節點也需要將大數據的離線計算能力做得更強,離線大數據系統基本上都是基於BSP+DAG,傳統數據庫領域則是MPP架構,所以爲了做到離在線一體化將MPP和BSP+DAG進行結合,做一個Hybrid的計算引擎,針對此再做一個Hybrid的查詢和計算優化器。上面的是MetaData管理,力求做到原數據共享。

雲原生數據倉庫AnalyticDB MySQL

AnalyticDB(ADB)就是基於這個思想設計的雲原生數據倉庫,ADB MySQL兼容MySQL這個生態,成爲TPC-DS性能與性價比榜單第一。將交互式分析和複雜的離線ETL計算統一支持起來。ADB基於PG也做了另外一個版本,就是ADB for PG。針對傳統數據倉庫,例如TeraData、利用PG對Oracle的兼容性來做傳統數據倉庫的升級,利用雲原生的架構,存儲和計算分離,針對傳統數據倉庫進行雲原生的升級改造,查詢執行器和其他模塊中做了大量優化。

雲原生數據倉庫AnalyticDB for PostgreSQL

例如向量化執行(vector execution)、Code Generation,ADB PG也支持把非結構化數據向量化變成高維向量數據以後處理,然後將向量數據和結構化數據在一個引擎當中進行處理實現非結構化數據和結構化數據的融合處理。ADB PG拿到了TPC-H性能和性價比榜單第一的成績。

2)新一代數據倉庫解決方案

基於此推出了新一代數據倉庫的架構,底下是核心的雲原生數據倉庫ADB,上面是數據建模和數據資產管理,因爲數據倉庫領域不僅僅是引擎的問題,還包括建模等一系列問題。針對傳統數據倉庫做了升級到雲原生數據倉庫的解決方案,利用ADB、生態合作伙伴以及整個智能化工具實現一體化的解決方案。

DLA 雲原生數據湖分析(Serverless,統一元數據+開放存儲與分析計算)

數據源更加複雜與多樣的場景是雲原生數據湖和數據倉庫最大的區別。數據湖的核心場景是對多源異構的數據源進行統一的管理和計算與分析處理。雲原生數據湖擁有統一的界面對多源異構數據進行管理、計算和分析,核心點在於元數據管理和發現,集成不同的計算引擎對多源異構數據進行管理和分析。

Data Lake Analytics + OSS 雲原生數據湖

上圖爲雲原生數據湖分析Data Lake Analytics的架構,下面是對象存儲或者其它不同的存儲源,搭載Kubernetes+Container技術,通過serverless技術來做分析和計算,以及多用戶之間的隔離安全保護,這樣可以滿足客戶針對多源異構數據實現低成本、彈性的豐富的計算和分析處理需求。

2.3智能化、安全可信與生態工具

1)雲原生+智能化數據庫管控平臺

智能化的數據管控平臺利用雲原生技術和人工智能技術進行智能化的數據庫管理運維,包括分區、索引推薦、異常檢測、慢SQL治理、參數調優等,這樣可以大量提升管理運維的效率,我們研發了一個Database Autonomy Service模塊(DAS)來實現數據庫系統的自動駕駛,大幅度提升運維管控的效率。

2)雲端全程加密數據永不泄露

除了傳統的Access Control,傳輸與落盤加密,我們研發了全加密數據庫,確保數據的絕對安全,結合安全硬件TEE來做到這一點,可以做到數據處理的全程加密。

3)數據庫生態工具

除了前面提到的數據庫應用遷移工具ADAM和數據庫同步工具DTS,我們還提供了豐富的其他數據庫生態工具,包括數據管理服務DMS和數據數據庫備份服務DBS,可以提供數據血緣關係、數倉開發與建模、數據安全管理、數據備份容災、CDM等一系列的企業級數據處理能力和麪向開發者的服務能力。

4)數據庫備份解決方案DBS

DBS可以做傳統數據多雲多端的備份,把線下的數據備份到雲上,也可以把雲上的數據備份到線下,實現秒級RPO,支持多種數據源多源多端的雲備份,並且支持Snapshot Recovery。

三、案例分析

1)雙十一購物節•數據庫挑戰

上圖爲2020年“雙十一”真實曲線,145倍的系統峯值瞬間迸發,利用雲原生能力和分佈式能力的結合可以完美平滑地支持“雙十一”高併發海量數據的挑戰。

2)中國郵政•大型傳統商用數據庫替換

中國郵政以前是基於傳統的商業數據倉庫,如今利用ADB雲原生數倉進行升級,提供更可靠的離在線一體化計算分析能力,實現對全國數據寄遞平臺統一到一個系統的訴求。

3)某超大型部委客戶

國稅總局的全國稅務數據統一系統應用,利用PolarDB-X分佈式數據庫以及DTS和ADB實現了從TP到AP數據處理、計算、分析、查詢、處理一整套的解決方案,同時通過DMS來做數據開發和管理。支撐高併發、低延遲的複雜查詢;支撐海量實時數據實時可見和高效入庫;支持金融級別的精準計算。

4)阿里雲數據庫技術對抗新冠疫情

利用雲原生數據庫提供的彈性高可用和智能化運維能力,結合分佈式去做水平拓展,爲廣大的企業和用戶提供非常好的彈性高可用能力,疫情期間在線教育行業開始大規模地使用雲原生、分佈式的新一代數據庫技術架構和產品實現降本增效對抗疫情。

5)客戶案例•中國聯通

中國聯通的核心cBSS系統,針對傳統的商業數據庫進行升級改造,利用分佈式數據庫PolarDB-X的能力幫助實現這種核心的計費系統實時在線的交易數據處理。

6)客戶案例•馬來西亞電商巨頭 PrestoMall

馬來西亞的第三大電商PrestoMall,因爲用傳統的商業數據庫Oracle成本太高,尤其是大促場景瞬間高併發的挑戰,利用雲原生數據庫PolarDB對傳統商業數據庫進行升級改造,實現了TCO的大幅下降。

7)客戶案例•國際廣告商數據湖分析+計算解決方案

某國際領先廣告廠商,文字、圖片、和結構化數據等多源異構數據的處理無法統一到一個數據倉庫裏面進行,利用數據湖來做一個統一的分析引擎。利用DLA+OSS構建了新一代serverless數據湖,大大提升了對多源異構數據的訪問處理和計算能力、同時節省了大量的計算成本。針對複雜豐富的計算分析場景,實現平滑的解決方案順利從AWS遷移過來。

四、總結

上圖爲阿里雲數據庫的產品大圖,從OLTP、OLAP、NoSQL到數據庫生態工具與雲原生智能化管控,阿里雲希望利用豐富的雲原生數據庫產品體系爲企業級客戶和用戶提供更好更可靠的產品與性價比更高的解決方案。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章