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

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

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

阿里巴巴集團副總裁、阿里雲數據庫產品事業部總裁、ACM傑出科學家李飛飛安全

如下爲小編整理的演講乾貨實錄:服務器

1、背景與趨勢

1.背景網絡

數據庫的本質是全鏈路的對「數據」進行管理,包括了生產—處理—存儲—消費等,在當下的數據化時代,數據是全部企業最核心的資產之一,因此數據庫的價值一直在不斷地提高,不斷地在新領域發現新的價值。架構

2.業界趨勢併發

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

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

從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、核心技術&產品介紹

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。

3、案例分析

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遷移過來。

4、總結

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

 

原文連接

本文爲阿里雲原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索