含PPT下載 | 如何看待數(shù)據(jù)庫的未來?
阿里妹導(dǎo)讀:在這個全國抗疫的特殊時刻,阿里CIO學(xué)院希望與更多企業(yè)的CIO、CTO、技術(shù)專家、程序員站在一起,因此舉辦攻“疫”技術(shù)公益培訓(xùn),分享技術(shù)在人類災(zāi)難前能夠呈現(xiàn)的價值。在阿里CIO學(xué)院攻“疫”技術(shù)公益培訓(xùn)的第一場直播中,達摩院數(shù)據(jù)庫首席科學(xué)家,阿里巴巴副總裁,ACM杰出科學(xué)家李飛飛(花名:飛刀)為大家?guī)砹似髽I(yè)級云原生分布式數(shù)據(jù)庫系統(tǒng)的分享,以下內(nèi)容由視頻直播內(nèi)容整理而成。
一、云原生分布式數(shù)據(jù)庫系統(tǒng)的發(fā)展歷程
數(shù)據(jù)庫市場分析與預(yù)測
首先為大家將介紹整個數(shù)據(jù)庫市場分析與預(yù)測。根據(jù)Gartner公司的分析報告,2018年全球基礎(chǔ)軟件如虛擬化軟件、操作系統(tǒng)、存儲等的市場規(guī)模大約為2000億美金,其中數(shù)據(jù)庫占20%,大約為461億美金。而中國的數(shù)據(jù)庫市場規(guī)模大概為161億人民幣,但這一數(shù)字實際上因為各種原因被遠遠低估了。2018年數(shù)據(jù)庫市場的增長率是18%,其中云數(shù)據(jù)庫占比達到了22.75%,而Gartner預(yù)測在未來的2到3年內(nèi)云數(shù)據(jù)庫的占比可能會達到75%。在世界范圍內(nèi),云數(shù)據(jù)庫的領(lǐng)袖毫無疑問當然是亞馬遜。亞馬遜是最早在云數(shù)據(jù)庫市場發(fā)力的廠商,也是目前做的最好的一家云廠商。而在AWS做云數(shù)據(jù)庫之前,這個市場處于“None-Player”的狀態(tài),傳統(tǒng)數(shù)據(jù)庫市場的巨頭是Microsoft、IBM、Oracle,而AWS未能躋身其中。但云數(shù)據(jù)庫賽道為AWS帶來了發(fā)展的機遇,其發(fā)展速度非??欤脑圃鷶?shù)據(jù)庫Aurora在2018年就達到了3億美金的營收。
數(shù)據(jù)庫系統(tǒng)演進
數(shù)據(jù)庫已經(jīng)發(fā)展了40年,可以說是一個傳統(tǒng)又古老的領(lǐng)域?;仡檾?shù)據(jù)庫的發(fā)展歷史,1980年到1990年屬于商業(yè)起步階段,此時Oracle、IBM DB2、Sybase以及SQL Server和Informix等開始出現(xiàn)。
1990年至2000年,開源數(shù)據(jù)庫開始展露頭角,出現(xiàn)了PostgreSQL和MySQL等。與此同時,出現(xiàn)了一些分析型數(shù)據(jù)庫,因為之前出現(xiàn)的都是OLTP,而現(xiàn)在隨著大量數(shù)據(jù)的出現(xiàn),需要對于這些數(shù)據(jù)進行分析,因此出現(xiàn)了OLAP,而為了避免讀寫沖突,就需要建立分析型數(shù)據(jù)庫系統(tǒng),Teradata、Sybase IQ、Greenplum等就快速成長起來。
2000年到2010年期間,以谷歌為代表的互聯(lián)網(wǎng)公司逐漸推出了NoSQL數(shù)據(jù)庫。尤其是谷歌的GFS(Google File System)、Google Bigtable、Google MapReduce三大件。Google File System解決了分布式文件系統(tǒng)問題,Google Bigtable解決了分布式KV(Key-Value)存儲的問題,Google MapReduce解決了在分布式文件系統(tǒng)和分布式KV存儲上面如何做分布式計算和分析的問題。之所以產(chǎn)生了這三大件,是因為數(shù)據(jù)強一致性對系統(tǒng)的水平拓展以及海量數(shù)據(jù)爆發(fā)式增長的分析能力出現(xiàn)了斷層。因此就需要解決這個問題,把這種數(shù)據(jù)的強一致性需求弱化,換來能夠使用用分布式的集群做水平拓展處理。谷歌三大件在業(yè)界誕生以后,很快的衍生了一個新的領(lǐng)域叫NoSQL(Not Only SQL),就是針對非結(jié)構(gòu)化、半結(jié)構(gòu)化的海量數(shù)據(jù)處理系統(tǒng)?,F(xiàn)在也有很多很好的商業(yè)公司基于NoSQL發(fā)展,比如說文檔數(shù)據(jù)(MongoDB)、緩存(Redis)等大家平常應(yīng)用開發(fā)都會用到的NoSQL系統(tǒng)。
而在2010年以后,AWS Aurora、Redshift、Azure SQL Database、Google Spanner以及阿里云的POLARDB和AnalyticDB等都發(fā)展起來了,它們的特點就是云原生、一體化分布式、多模和HTAP的能力。
總結(jié)而言,數(shù)據(jù)庫的演進經(jīng)歷了從結(jié)構(gòu)化數(shù)據(jù)在線處理到海量數(shù)據(jù)分析,從SQL+OLAP的RDBMS到ETL+OLAP的Data Warehouse和Data Cube,再到今天異構(gòu)多源的數(shù)據(jù)類型的發(fā)展歷程。
數(shù)據(jù)庫:云上應(yīng)用的關(guān)鍵一環(huán)
如今,上云已經(jīng)成為一種趨勢。而在上云的過程中,數(shù)據(jù)庫則被認為是云上非常重要的一環(huán)。因為云最開始提供的是IaaS,而隨著各種智能化應(yīng)用的興起,數(shù)據(jù)庫就成為了從IaaS到智能化應(yīng)用連接的重要一環(huán)。
數(shù)據(jù)庫發(fā)展:業(yè)務(wù)視角
大家知道,數(shù)據(jù)庫可以分為幾類:
最經(jīng)典的是傳統(tǒng)關(guān)系型OLTP數(shù)據(jù)庫,其主要用于事務(wù)處理的結(jié)構(gòu)化數(shù)據(jù)庫,典型例子是銀行的轉(zhuǎn)賬記賬、淘寶下單、訂單以及商品庫存管理等。其面臨的核心挑戰(zhàn)是高并發(fā)、高可用以及高性能下的數(shù)據(jù)正確性和一致性。
其次是NoSQL數(shù)據(jù)庫及專用型數(shù)據(jù)庫,其主要用于存儲和處理非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)(如文檔,圖,時序、時空,K-V),不強制數(shù)據(jù)的一致性,以此換來系統(tǒng)的水平拓展、吞吐能力的提升。
再次是分析型數(shù)據(jù)庫 (On-Line Analytic Processing, OLAP),其應(yīng)用場景就是海量的數(shù)據(jù)、數(shù)據(jù)類型復(fù)雜以及分析條件復(fù)雜的情況,能夠支持深度智能化分析。其面臨的挑戰(zhàn)主要是高性能、分析深度、與TP數(shù)據(jù)庫的聯(lián)動,以及與NoSQL數(shù)據(jù)庫的聯(lián)動。
除了數(shù)據(jù)的核心引擎之外,還有數(shù)據(jù)庫外圍的服務(wù)和管理類工具,比如數(shù)據(jù)傳輸、數(shù)據(jù)備份以及數(shù)據(jù)管理等。
最后就是數(shù)據(jù)庫的管控平臺,無論是私有云、專有云、混合云還是自己的IDC機房內(nèi)進行部署,總要有一套數(shù)據(jù)庫管控系統(tǒng)來管理數(shù)據(jù)庫實例的產(chǎn)生和消亡、實例的資源消費等,能夠以簡單的形式提供給DBA以及數(shù)據(jù)庫開發(fā)者。
數(shù)據(jù)庫系統(tǒng)DBMS的價值
如下圖所示的是文件形式的數(shù)據(jù)存儲系統(tǒng)和DBMS的區(qū)別。數(shù)據(jù)庫系統(tǒng)的核心位置在操作系統(tǒng)和SQL的接口之間,簡單而言就是在存儲系統(tǒng)與上層抽象之間架起了一個系統(tǒng)來管理對于業(yè)務(wù)有用的數(shù)據(jù),如果不這樣設(shè)計則需要使用一些高級程序語言開發(fā)應(yīng)用程序來與操作系統(tǒng)交互并管理這些數(shù)據(jù)。而數(shù)據(jù)庫將對于數(shù)據(jù)的管理、存儲以及消費抽象出來,這樣一來不用每次都在應(yīng)用程序里寫相關(guān)的邏輯了,而可以專注于業(yè)務(wù)邏輯,數(shù)據(jù)管理相關(guān)的邏輯全部交給數(shù)據(jù)庫系統(tǒng)實現(xiàn),并且用Structured Query Language結(jié)構(gòu)化查詢語言對于數(shù)據(jù)訪問接口進行抽象。
數(shù)據(jù)庫系統(tǒng)的核心模塊
將數(shù)據(jù)庫系統(tǒng)拆開來看,其核心模塊包括應(yīng)用接口、SQL接口、查詢執(zhí)行引擎、數(shù)據(jù)訪問模塊和存儲引擎。其中,查詢執(zhí)行引擎進一步可以拆分為計劃生成器、計劃優(yōu)化器和計劃執(zhí)行器;數(shù)據(jù)訪問模塊則可以分為事務(wù)處理、內(nèi)存處理、安全管理以及文件和索引管理等模塊;并且事務(wù)處理是最核心的模塊,其中包括了崩潰恢復(fù)和并發(fā)控制;最底層的存儲引擎則包括數(shù)據(jù)文件、索引文件和系統(tǒng)及元數(shù)據(jù)文件。
查詢分析處理過程
數(shù)據(jù)庫查詢分析處理過程是這樣的:首先,通過SQL語句或者大數(shù)據(jù)系統(tǒng)的Dataframe API將查詢?nèi)蝿?wù)提交上來,之后經(jīng)過Simba PraserSimba Parser進行處理,此時會有各種各樣的執(zhí)行方式,并生成Catalog和邏輯執(zhí)行計劃;之后對于邏輯執(zhí)行計劃進行優(yōu)化,并生成物理執(zhí)行計劃;之后在借助系統(tǒng)的統(tǒng)計信息,如索引管理、內(nèi)存管理來生成一個優(yōu)化后的物理執(zhí)行計劃,再執(zhí)行并生成最后結(jié)果或者RDD。
簡單而言,數(shù)據(jù)庫系統(tǒng)的架構(gòu)就是持久化存儲的數(shù)據(jù)按照Data Page的形式進行存儲,這些數(shù)據(jù)塊在查詢訪問的時候會被帶到內(nèi)存里面。系統(tǒng)中有內(nèi)存池,每個內(nèi)存池可以裝載一個Page,此時的問題就是內(nèi)存池的大小是有限的,如果數(shù)據(jù)存儲非常大,需要進行優(yōu)化。此外,還涉及到優(yōu)化數(shù)據(jù)訪問的問題,一般通過索引解決,主要是Hash索引和樹形索引。
數(shù)據(jù)庫系統(tǒng)挑戰(zhàn)
數(shù)據(jù)庫系統(tǒng)最關(guān)鍵的挑戰(zhàn)就是并行訪問時的寫寫沖突和數(shù)據(jù)一致性問題。此外,還有讀和寫的沖突問題,比如在數(shù)據(jù)庫里做批量寫入的時候系統(tǒng)宕機,應(yīng)該考慮如何讓系統(tǒng)自動恢復(fù)。
為解決以上的問題,數(shù)據(jù)庫系統(tǒng)提出了一個核心概念——事務(wù)。簡單而言,事務(wù)就是一系列動作可以被看作一個整體,從用戶視角來看事務(wù)是隔離運行的,一個用戶的事務(wù)和另一個用戶沒有關(guān)系。如果系統(tǒng)出現(xiàn)異常,事務(wù)要么全部執(zhí)行完畢,要么一個也沒有被執(zhí)行。這樣引申出來事務(wù)的核心概念:原子性、一致性、隔離性、持久性。
數(shù)據(jù)庫系統(tǒng)的挑戰(zhàn)
數(shù)據(jù)庫系統(tǒng)與大數(shù)據(jù)系統(tǒng)非常相關(guān),而在分析型數(shù)據(jù)庫系統(tǒng)里面也會面臨非常多的挑戰(zhàn),比如預(yù)測用戶的退貨率需要進行非常復(fù)雜的查詢分析并且需要非常復(fù)雜的機器學(xué)習(xí)模型。
二、數(shù)據(jù)庫系統(tǒng)架構(gòu)的對比及趨勢
云原生數(shù)據(jù):要解決什么問題?
傳統(tǒng)架構(gòu)依賴于高端硬件,每套數(shù)據(jù)庫系統(tǒng)服務(wù)器少,架構(gòu)相對簡單,但無法支持新業(yè)務(wù)的擴展需求。而云計算機構(gòu)的核心邏輯就是通過虛擬化技術(shù)帶來池化資源。云原生數(shù)據(jù)庫采用分布式數(shù)據(jù)庫架構(gòu),實現(xiàn)大規(guī)模擴展,每套數(shù)據(jù)庫系統(tǒng)橫跨多臺服務(wù)器和虛擬機,帶來了全新的系統(tǒng)管理挑戰(zhàn)。其中最核心的挑戰(zhàn)就是如何實現(xiàn)彈性以及高可用,實現(xiàn)按需按量使用,使得資源高效利用。
云原生數(shù)據(jù)庫管控平臺:DBaaS智能化簡化管理維護
云原生數(shù)據(jù)希望管控平臺能夠?qū)崿F(xiàn)多實例統(tǒng)一管理;全圖形化,無需命令行;分鐘級安裝,集群部署;自動備份,時間點恢復(fù);動態(tài)擴容和縮容;以及性能監(jiān)控和優(yōu)化調(diào)整。
阿里巴巴數(shù)據(jù)庫發(fā)展歷史
在2005到2009年,當時阿里巴巴擁有亞太最大規(guī)模的Oracle RAC集群;在2010年到2015年開始,使用開源數(shù)據(jù)庫以及分庫分表的技術(shù)來解決對于商業(yè)數(shù)據(jù)庫的依賴;從2016年開始到現(xiàn)在,阿里巴巴都在自研數(shù)據(jù)庫上發(fā)力,TP方面包括POLARDB和OceanBase,AP方面則有分析型數(shù)據(jù)庫AnalyticDB。
靈活的部署形態(tài)
隨著云計算的發(fā)展,數(shù)據(jù)庫的部署形式也發(fā)生了很大的變化。傳統(tǒng)的數(shù)據(jù)都是部署在客戶機房里面,與客戶的機器綁定。而在云環(huán)境下,希望數(shù)據(jù)庫能夠在多種形態(tài)下部署,比如公有云、專有/私有云、混合云以及軟硬件一體化獨立部署,以及純軟件輸出。
Oracle等數(shù)據(jù)庫廠商也正在向著AWS的部署方式轉(zhuǎn)型。
多模數(shù)據(jù)庫系統(tǒng)
數(shù)據(jù)庫系統(tǒng)另外的一個趨勢就是多模。數(shù)據(jù)庫系統(tǒng)的演進經(jīng)歷了從最早的關(guān)系型數(shù)據(jù)庫OLTP到半結(jié)構(gòu)化,再到分析型數(shù)據(jù)庫OLAP等非結(jié)構(gòu)化的數(shù)據(jù)庫,再發(fā)展到如今的多模數(shù)據(jù)庫。對于多模數(shù)據(jù)庫而言,主要有兩種維度,南向維度是數(shù)據(jù)庫可以有多種存儲港方式,北向維度是可以有多種查詢接口和標準,而希望由同一套數(shù)據(jù)庫引擎來支撐。
數(shù)據(jù)庫智能化+自動化管控平臺
借助于機器學(xué)習(xí)、人工智能技術(shù),希望能夠與數(shù)據(jù)庫內(nèi)核進行結(jié)合,使得數(shù)據(jù)庫能夠更加自動化和智能化,實現(xiàn)自感知、自決策、自恢復(fù)和自優(yōu)化。
新硬件: 軟硬件一體化設(shè)計
未來,下一代的企業(yè)級數(shù)據(jù)庫一定要結(jié)合軟硬件一體化的設(shè)計理念,而不能把軟件和硬件隔開,只有將軟硬件結(jié)合在一起,才能把系統(tǒng)的優(yōu)勢發(fā)揮出來。
行存儲VS.列存儲
TP和AP的關(guān)鍵區(qū)別就是行存儲和列存儲,前者按照行將數(shù)據(jù)存儲起來,其優(yōu)點是能夠高效簡易訪問一整條記錄來處理更新,缺點是需要訪問和讀取不需要的數(shù)據(jù)信息;后者的優(yōu)點是只需要讀取所需數(shù)據(jù),缺點是更新一條記錄不同屬性時需要多次訪問。
HTAP:事務(wù)處理與分析處理一體化
HTAP希望能夠?qū)⑿写婧土写娼Y(jié)合起來,在一套系統(tǒng)里面實現(xiàn)行列混存,但是這樣也會遇到很多挑戰(zhàn),最核心的就是數(shù)據(jù)一致性的挑戰(zhàn)。
云原生架構(gòu): 彈性x高可用x企業(yè)實踐x開放生態(tài)
傳統(tǒng)數(shù)據(jù)庫架構(gòu)采用單節(jié)點架構(gòu),其有點是部署和開發(fā)簡單,缺點就是非常難于做彈性縮擴容。云原生架構(gòu)是基于RDMA等網(wǎng)路實現(xiàn)分布式共享存儲,使得上層應(yīng)用看起來存儲是一份,在上層實現(xiàn)存儲與計算分離,使得存儲和計算可以實現(xiàn)獨立的縮擴容,這就帶來了極致的彈性,也為云原生帶來了很好的管理方式,如阿里云的POLARDB、AWS的Aurora等都是基于這樣架構(gòu)。
還有另外一種就是分布式架構(gòu),其對于數(shù)據(jù)庫進行分庫分片,其特點是水平擴展能力特別強,當數(shù)據(jù)量變大、并發(fā)量變高的時候只需要增加節(jié)點即可,其缺點是如果要求不改動上層業(yè)務(wù)邏輯,就必須要有能力去處理分布式事務(wù)和分布式查詢,典型的代表有螞蟻的OceanBase、阿里的POLARDB-X、ADB、TDSQL等。
下一代企業(yè)級數(shù)據(jù)庫:云原生+分布式+HTAP
下一代的企業(yè)級數(shù)據(jù)庫架構(gòu)應(yīng)該是將云原生架構(gòu)和分布式架構(gòu)以及HTAP完美結(jié)合起來。上層是分庫分表Shared-Nothing的架構(gòu),下層是存儲與計算分離的云原生架構(gòu),這種架構(gòu)的好處在于既能夠水平擴展,又能夠?qū)崿F(xiàn)高可用的能力。而且面對高并發(fā)的情況時,所需要的分片數(shù)量會大大減小,因此分布式事務(wù)的復(fù)雜性也會大大降低。
分布式系統(tǒng)CAP理論
為了便于大家理解,這里為大家介紹一些分布式系統(tǒng)的理論,其中最核心的是CAP理論,即一致性(Consistency)、可用性(Availability)、分區(qū)容錯性(Partition tolerance)。解決上述問題存在不同的架構(gòu),包括單機單節(jié)點數(shù)據(jù)庫架構(gòu)、對數(shù)據(jù)進行分區(qū)分片、中間件架構(gòu),此外最好的方式就是一體化分布式,系統(tǒng)內(nèi)部進行協(xié)調(diào)和處理并將最終結(jié)果返還給用戶。
分布式數(shù)據(jù)庫系統(tǒng):高可用
這里涉及到高可用的問題,那就是分庫分表之后數(shù)據(jù)庫出現(xiàn)問題該怎么辦。分布式高可用數(shù)據(jù)庫可以通過數(shù)據(jù)一致性協(xié)議來確保分區(qū)數(shù)據(jù)一致性,業(yè)界提供了兩個比較優(yōu)秀的分布式數(shù)據(jù)一致性協(xié)議,即Paxos和Raft。協(xié)議的內(nèi)容大致就是分區(qū)進程一定可以對一個數(shù)據(jù)的取值達成一致,對一個數(shù)據(jù)的取值一定可以有一個可取值被提議,一旦分區(qū)進程對一個數(shù)據(jù)的取值達成一致,那么所有的分區(qū)進程最終都可以得到這個取值。
三、云數(shù)據(jù)庫技術(shù)高速發(fā)展的現(xiàn)狀
數(shù)據(jù)庫技術(shù)與產(chǎn)品是完整的生態(tài)系統(tǒng)
本部分結(jié)合阿里巴巴的數(shù)據(jù)庫產(chǎn)品進行介紹。阿里云數(shù)據(jù)庫不僅在云上提供服務(wù),還會支撐整個阿里巴巴集團內(nèi)部經(jīng)濟體的所有活動。2019年雙11,在零點剛過的第一秒,阿里的數(shù)據(jù)庫系統(tǒng)峰值增長了大概135倍,瞬間爆發(fā),這就需要數(shù)據(jù)庫具有較高的可擴展性、彈性以及高可用。數(shù)據(jù)庫技術(shù)與產(chǎn)品必須是一個完整的生態(tài)系統(tǒng),因此需要POLARDB、ADB等工具來支撐。
云原生數(shù)據(jù)庫:POLARDB
POLARDB底層是基于RDMA的分布式共享存儲,通過Parallel Raft協(xié)議在分布式共享存儲里實現(xiàn)高可用,上層實現(xiàn)了多個計算節(jié)點,實現(xiàn)一寫多讀,因為底層看到的是一份邏輯數(shù)據(jù),因此事務(wù)處理表現(xiàn)非常好,并且能夠根據(jù)需求實現(xiàn)分鐘級別的彈性縮擴容。此外,這種架構(gòu)不涉及到分庫分表的兼容性改造,因此能夠供100%兼容MySQL、100%兼容PG和Oracle的版本。
POLARDB Box:高性能一體機
為了支持多種模式的數(shù)據(jù)庫部署,阿里云在2019年也推出了一體機的產(chǎn)品解決方案。
POLARDB-X:分布式版本支持水平擴展+HTAP
阿里巴巴將XDB和POLARDB的能力以及DRDS的能力進行了融合,實現(xiàn)了分布式數(shù)據(jù)庫POLARDB-X。其上層就是DRDS,主要做分布式的事務(wù)處理和查詢處理,下面一層就是POLARDB層能夠?qū)崿F(xiàn)水平擴展和彈性擴展。POLARDB-X的存儲引擎使用了X-Engine。
三節(jié)點金融級可用集群
在一個AZ里面想要實現(xiàn)三節(jié)點的金融級高可用,則使用Raft協(xié)議保證三副本之間的數(shù)據(jù)尺度一致,保證高可用、高可用以及性能。
兩地多中心
跨AZ的部署存在較大的挑戰(zhàn),一般而言是在同城的三副本之間跑AZ的Raft協(xié)議,而跨城或者跨域則使用日志的同步技術(shù)實現(xiàn),比如通過DTS實現(xiàn),基本上就是通過解析Binlog的方式將源端的日志解析出來同步到遠端再Replay。
Big Data + Fast Data:將海量數(shù)據(jù)轉(zhuǎn)化在線實時可用
目前業(yè)界的趨勢是將大數(shù)據(jù)和FastData結(jié)合起來,也就是在線分析和交互計算在線化和實時化。
基于分布式集群的大數(shù)據(jù)計算與分析系統(tǒng):由數(shù)據(jù)庫系統(tǒng)演而來
無論是MapReduce還是Spark等大數(shù)據(jù)系統(tǒng),其模式都是由數(shù)據(jù)庫系統(tǒng)演進而來的,只不過Spark的處理都是在內(nèi)存中進行的,這樣可以大大降低系統(tǒng)的開銷。
Spark SQL:大數(shù)據(jù)和數(shù)據(jù)庫技術(shù)在快速融合
Spark SQL是目前非常流行的使用SQL處理數(shù)據(jù)和分析的結(jié)構(gòu)化模塊,Spark SQL的模式和數(shù)據(jù)庫內(nèi)核的模式非常相似,只不過是將SQL的輸入轉(zhuǎn)化為Spark的Job去執(zhí)行。
大數(shù)據(jù)系統(tǒng)的核心:并行處理方式
基于BSP模型的大數(shù)據(jù)系統(tǒng)面臨的最核心挑戰(zhàn)就是并行處理時任務(wù)執(zhí)行進度不一致而導(dǎo)致的同步問題,而現(xiàn)在希望大數(shù)據(jù)系統(tǒng)能夠和數(shù)據(jù)庫系統(tǒng)一樣能夠?qū)崿F(xiàn)并行的同步。
基于DAG的調(diào)度和計劃器
無論是數(shù)據(jù)庫系統(tǒng)還是大數(shù)據(jù)系統(tǒng),其調(diào)度方式都是基于DAG的調(diào)度和計劃器。也就是將執(zhí)行計劃看做一個有向無環(huán)圖,進行分組執(zhí)行,每一輪執(zhí)行完成之后進行同步,再進行到下一輪。
技術(shù)趨勢:Serverless Storage + Serverless Compute
大數(shù)據(jù)和數(shù)據(jù)庫系統(tǒng)正在進行融合,向著在線實時化發(fā)展。而在線實時化中最為核心的挑戰(zhàn)就是要處理多個數(shù)據(jù)源和要進行Serverless Computing。
四、阿里云數(shù)據(jù)庫總結(jié)
智能化OLAP:AnalyticDB實時交互式數(shù)據(jù)倉庫
舉例而言,阿里云實現(xiàn)了智能化的OLAP,實時交互式數(shù)據(jù)倉庫AnalyticDB,其也基于BSP模型,因此能夠進行在線計算和分析處理。
AnalyticDB的另外一個優(yōu)勢就是將非結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)有效地和結(jié)構(gòu)化數(shù)據(jù)聯(lián)合處理,這是因為其具有向量化計算引擎,能夠?qū)τ诜墙Y(jié)構(gòu)化數(shù)據(jù)實現(xiàn)向量化,進而實現(xiàn)聯(lián)合處理。
Data Lake Analytics-數(shù)據(jù)湖:全域數(shù)據(jù),全局開放分析
數(shù)據(jù)湖其與數(shù)據(jù)倉庫的相同點是都是為了解決異構(gòu)分析處理的本質(zhì)問題,但是數(shù)據(jù)倉庫里面有自己的源數(shù)據(jù)管理和存儲引擎,而數(shù)據(jù)湖只做了源數(shù)據(jù)管理,而沒有存儲引擎。數(shù)據(jù)湖只是去連接不同的數(shù)據(jù)源,而不是將數(shù)據(jù)轉(zhuǎn)化到自己的存儲引擎,這是數(shù)據(jù)庫服務(wù)與ADB的本質(zhì)區(qū)別。在阿里云等主流的數(shù)據(jù)湖內(nèi)核中一般都會結(jié)合Presto或者Spark的內(nèi)核來做交互式計算,并將計算結(jié)果提供給BI工具。因為其沒有自己的存儲引擎,因此非常適合于做Serverless Computing的架構(gòu)。
企業(yè)級NoSQL:非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)庫套件
NoSQL要支持非結(jié)構(gòu)化與半結(jié)構(gòu)化數(shù)據(jù)的處理,阿里云基于Redis實現(xiàn)了支持KV緩存的Tair,處理文檔數(shù)據(jù)的MongoDB,處理時序時空的TSDB(Time Series Database),處理圖的GDB(Graph DataBase),處理寬表的Cassandra等??偠灾?,NoSQL放棄了傳統(tǒng)關(guān)系型數(shù)據(jù)庫對ACID數(shù)據(jù)一致性的要求,換取了對非結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù)這種復(fù)雜數(shù)據(jù)水平拓展的能力。
企業(yè)數(shù)據(jù)管理功能矩陣
阿里巴巴的企業(yè)數(shù)據(jù)管理功能矩陣提供了面向研發(fā)、DBA、內(nèi)審、運營決策的數(shù)據(jù)操作統(tǒng)一入口和業(yè)務(wù)報表服務(wù)。對于企業(yè)級數(shù)據(jù)庫而言,存在安全管控、變更穩(wěn)定、數(shù)據(jù)分析的需求,這里面涉及SQL任務(wù)執(zhí)行引擎、邏輯庫執(zhí)行引擎、安全規(guī)則引擎、數(shù)據(jù)脫敏引擎等。
數(shù)據(jù)安全保障
阿里云上的數(shù)據(jù)庫管理產(chǎn)品叫做DMS,它除了提供上述服務(wù),還提供了數(shù)據(jù)安全保障。從“審計”到“主動攔截”再到數(shù)據(jù)脫敏的整個流程都由DMS完成。DMS內(nèi)置了安全規(guī)則庫、規(guī)則執(zhí)行器以及動作Action(類似Trigger),這樣當業(yè)務(wù)主系統(tǒng)出現(xiàn)問題時,數(shù)據(jù)不會丟失。
數(shù)據(jù)庫備份DBS
將備份數(shù)據(jù)變廢為寶,對備份數(shù)據(jù)進行分析和查詢甚至是BI的決策,這是現(xiàn)在CDM的趨勢。
企業(yè)級云原生管控平臺
管控平臺的一個趨勢,希望在公有云中提供“專有云”的能力。公有云管控雖然提供了實例管理的能力,但很多應(yīng)用的時候需要自己去直接管理的能力。例如在公有云上能夠拿到自己機房root、admin的權(quán)限,因此阿里云就做了大客戶的專享集群,利用了云原生的管控能力如K8S的方式,能夠盡可能的把管控透明化,把權(quán)限開放給客戶和應(yīng)用。
AI for DB- DAS: 智能化數(shù)據(jù)庫管控與內(nèi)核
在業(yè)界,大量集成智能化和機器學(xué)習(xí)成為管控的趨勢。下圖是阿里云管控的整體架構(gòu),它做了一個SDDP(Self-Driving Database Platform),對每一個實例去采集性能數(shù)據(jù)(在用戶許可的前提下采集訪問一些用戶的性能數(shù)據(jù),非業(yè)務(wù)數(shù)據(jù),如CPU使用率、磁盤使用率),進行建模分析,實時的進行監(jiān)控。在這樣的優(yōu)化下,阿里云慢SQL的數(shù)量大幅度減少,內(nèi)存的使用率大幅度提高。
數(shù)據(jù)安全
標準的云上數(shù)據(jù)安全包括傳輸過程、存儲過程等,例如引用TDE(Transparent Data Encryption)、Data at Rest Encryption。阿里云對數(shù)據(jù)安全的幾個維度進行了總結(jié):如加密的數(shù)據(jù)訪問和存儲、減小內(nèi)部攻擊風(fēng)險、日志數(shù)據(jù)一致性的可驗證(例如結(jié)合區(qū)塊鏈技術(shù)把數(shù)據(jù)和日志讓用戶做一致性的驗證)等。
全程加密數(shù)據(jù)永不泄露
數(shù)據(jù)進入內(nèi)核以后也是進行加密的,不需要解密,加密使用的是客戶的密鑰,其他人不可見。這樣確保了即使在內(nèi)部攻擊的情況下,整個數(shù)據(jù)過程也是完全保密的。
Oracle遷移-數(shù)據(jù)庫及應(yīng)用遷移改造ADAM
把Oracle現(xiàn)有的數(shù)據(jù)遷移到云上,是一個從評估到?jīng)Q策、實施、優(yōu)化的過程。使用自動化工具ADAM,能夠通過自動化生成報表來告訴用戶從Oracle遷移到目標數(shù)據(jù)庫哪些應(yīng)用是兼容的,哪些應(yīng)用是不兼容的,這使做應(yīng)用遷移決定的時候有一個清晰明了的過程,知道遷移改造的成本。
ADAM - ORACLE遷移全鏈路解決方案
有了如下流程體系:使用ADAM這種自動遷移評估工具去做應(yīng)用兼容性、一致性的評估,之后做評估改造,再用DTS把數(shù)據(jù)庫遷移到不同的目標庫,這樣就形成了一個標準化、流程化、產(chǎn)品化的Oracle遷移方案。
Oracle 遷移的科學(xué)方案選型
建議中小型業(yè)務(wù)系統(tǒng)要選擇與Oracle高度兼容的目標庫進行遷移,例如PolarDB。大型核心系統(tǒng)將來的發(fā)展方式很有可能是類似分布式的架構(gòu),分析型可以選擇AnalyticDB,事務(wù)型可以選擇PolarDB-X 分布式。
阿里云數(shù)據(jù)庫總結(jié)
目前,阿里云在亞太市場排名第一,全球市場排名第三。從營收來講,在全球市場僅僅落后于亞馬遜和微軟,在云數(shù)據(jù)庫的市場上已經(jīng)超過了許多傳統(tǒng)型數(shù)據(jù)庫,如Oracle、Google這種非常強勁的競爭對手。
應(yīng)用案例
最后介紹一些基于阿里云的產(chǎn)品和技術(shù)做的一些解決方案和應(yīng)用案例。首先阿里巴巴的數(shù)據(jù)庫產(chǎn)品支撐了阿里巴巴集團內(nèi)部所有復(fù)雜的業(yè)務(wù),外部業(yè)務(wù)支撐了從國家重點項目的云上商業(yè)系統(tǒng)的應(yīng)用,例如從制造業(yè)到國際客戶、零售、金融、互娛。
阿里巴巴數(shù)據(jù)庫應(yīng)用的具體案例包括,幫助某東部銀行基于PolarDB分布式版本快速構(gòu)建新型業(yè)務(wù)與小微業(yè)務(wù)的互聯(lián)網(wǎng)架構(gòu);幫助中國的某第三方跨境支付平臺基于PolarDB分布式版構(gòu)建高并發(fā)、低延時的支付系統(tǒng),同時使用DTS、DLA做異構(gòu)多元數(shù)據(jù)處理以及實時數(shù)據(jù)同步;使用AnalyticDB替換傳統(tǒng)的“Sysbase IQ + Hadoop”解決方案,幫助某核心券商實現(xiàn)金融加速分析平臺。
阿里巴巴還幫助天弘基金基于AnalyticDB構(gòu)建了承載了500TB數(shù)據(jù)量和1億用戶的實時查詢計算平臺;幫助南區(qū)最大的銀行之一構(gòu)建基于DTS的“異地容災(zāi)”;幫助中國郵政利用AnalyticDB實現(xiàn)全國10萬多機構(gòu)寄報表平臺;利用云原生的數(shù)據(jù)庫技術(shù)幫助銀泰百貨改造數(shù)據(jù)庫系統(tǒng),實現(xiàn)了彈性高可用,使其能夠支撐大促20倍峰值,并將成本減少60%以上;
總結(jié)
數(shù)據(jù)庫的未來發(fā)展趨勢可以總結(jié)為以下四點:
產(chǎn)品架構(gòu)與技術(shù)創(chuàng)新:云原生 + 分布式 (彈性、高可用)。架構(gòu)上分布式共享存儲、存儲計算分離,云原生架構(gòu)+Shared Nothing分布式架構(gòu),滿足彈性、高可用、水平拓展的能力。
數(shù)據(jù)挑戰(zhàn):多模,結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù) (多源異構(gòu)數(shù)據(jù))。結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)如何融合異構(gòu)處理,比如數(shù)據(jù)湖的概念、ADB里面用向量處理引擎把非結(jié)構(gòu)化數(shù)據(jù)變成結(jié)構(gòu)化數(shù)據(jù),高維向量、多源異構(gòu)數(shù)據(jù)處理的技術(shù)。
數(shù)據(jù)處理與分析:海量數(shù)據(jù)分析在線化 (實時在線交互式分析)。如何對海量數(shù)據(jù)進行在線分析和計算,支持實時在線交互式分析,需要做并行處理(DSP模型、MPP模型等等),對并行調(diào)度計算進行優(yōu)化。
系統(tǒng)能力提升:智能化 + 安全 (使用方便可靠、運維簡易)。如在管控平臺的層面如何做智能化的調(diào)度、監(jiān)控以及自動修復(fù),怎樣去做數(shù)據(jù)的安全處理、隱私保護、加密處理等等,使得整個數(shù)據(jù)庫的使用更加方便可靠、運維簡易。
數(shù)據(jù)庫上云/遷移是一個生態(tài),而不是一個項目?;仡櫼幌卤疚姆窒淼乃屑夹g(shù),數(shù)據(jù)同步與傳輸技術(shù)來做數(shù)據(jù)庫的同步遷移,需要分布式云原生的系統(tǒng)來做彈性高可用,也需要NoSQL做圖、時序/時空等非結(jié)構(gòu)化數(shù)據(jù)的處理,同時需要數(shù)據(jù)同步/分發(fā)到分析系統(tǒng)里面做實時計算分析,還要備份、混合云的管理,以及針對企業(yè)數(shù)據(jù)庫研發(fā)的DevOps開發(fā)流程管理套件??偠灾?,只有完整的生態(tài)體系才能支撐中國的數(shù)據(jù)庫市場快速發(fā)展以及走向全球。