1. 程式人生 > >DTCC 2020 | 阿里雲李飛飛:雲原生分散式資料庫與資料倉庫系統點亮資料上雲之路

DTCC 2020 | 阿里雲李飛飛:雲原生分散式資料庫與資料倉庫系統點亮資料上雲之路

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

雲端計算時代,雲原生分散式資料庫和資料倉庫開始崛起,提供彈性擴充套件、高可用、分散式等特性。

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

阿里巴巴集團副總裁、阿里雲資料庫產品事業部總裁、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到資料庫生態工具與雲原生智慧化管控,阿里雲希望利用豐富的雲原生資料庫產品體系為企業級客戶和使用者提供更好更可靠的產品與價效比更高的解決方案。

作者:louth

原文連結

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

&n