「咱們又錯過了一艘船」?數據庫的征程是星辰大海!

​導語 | 關係型數據庫體系已經走過了50年的歷程,這期間數據庫已經成爲數字化時代的核心組件。近年來,國產數據庫更是百花齊放,走上歷史舞臺。在歷史發展的每一個階段,數據庫技術都經歷了哪些關鍵性的演進,在將來,數據庫技術又將走向何方?本文由雲和恩墨CEO、騰訊雲TVP 蓋國強在 Techo TVP開發者峯會「數據的冰與火之歌——從在線數據庫技術,到海量數據分析技術」 的《萬象更新——數據庫技術的發展與將來》演講分享整理而成,爲你們詳盡介紹數據庫技術的關鍵演進階段、領先的技術探索方向,闡述國內數據庫發展的最新動向。

點擊可觀看精彩演講視頻html

1、數據庫行業的三大趨勢

我帶來的主題是「萬象更新」,今天,用這四個字來衡量中國的數據庫領域是恰到好處的,市場上大量國產數據庫不斷涌現,不一樣的國產數據庫在不一樣的場景裏找到了更廣闊的應用空間,這是數據庫時代的中國時刻。數據庫

爲了闡釋這些觀點,首先分享我對行業的一些判斷。安全

1. 走進新數據庫時代

首先我認爲數據庫的技術發展通過了三個時代:從商業數據庫時代到開源時代,再演進到今天——我稱之爲新數據庫時代。注意,不少人把今天這個時代稱做「雲數據庫時代」,可是我更願意用一個「新」字,由於國外和國內的數據庫市場呈現出不一樣的發展格局。網絡

商業數據庫時代主要是以Oracle爲表明,衍生了一系列商業數據庫軟件公司,這個時代,不少國產數據庫公司在很是早期就開始了探索。架構

第二個時代是以MySQL爲表明的開源數據庫時代,開源成就了互聯網,今天你們使用了不少騰訊的服務、產品,爲何可以獲得快速的、廉價的甚至是免費的互聯網服務?就是由於互聯網的底座是由免費和開源的精神承載,開源技術成就了互聯網。併發

第三,今天進入了新數據庫時代。開源數據庫技術依託雲產生了價值,過去開源技術很難被評估產生了多少商業銷售和商業價值,但今天在雲上它們能夠被販售,它的價值就能夠被量度。昨天Gartner發出的報告提到微軟數據庫已經超越了Oracle,成爲了全球市場的第一,中國市場上騰訊雲、阿里雲和華爲雲是三大數據庫的領先者,這說明什麼?這說明在新的時代裏雲成爲了數據庫最重要的一個陣地。運維

可是中國的數據庫領域還呈現出了新的特質——百花齊放的數據庫生態。由於國產數據庫的自主創新和迭代起步晚,仍要重走一遍國外的技術路,這是中國數據庫呈現出的不一樣格局。TDSQL是從2012年就開始的,今天有一系列的國產數據庫在市場上嶄露頭角。分佈式

2. 數據庫成爲雲上的終極之戰

第二個大的趨勢是什麼呢?是數據庫最終成爲了雲上的終極之戰。高併發

由於雲最基本的特質是以IaaS爲基礎,當完成了IaaS這一層的建設,緊接着是PaaS層,PaaS這一層就必須解決數據庫的問題,誰可以率先打通PaaS層,誰就可以贏得競爭優點。工具

舉個AWS的例子,AWS在2019年宣佈將7500個Oracle數據庫都完全替換,爲何它是一個很是重要的事件?由於在每一年甲骨文的全球大會上,Oracle都會嘲笑一次亞馬遜:大家在雲上賣開源的數據庫、賣大家本身的雲數據庫,但其實你卻要從我這兒購置大量的Oracle License。因此亞馬遜就發出承諾,要把它們所有替掉,在2019年完成了。在這個替換的過程當中最終呈現出來的本質是什麼?我引用了亞馬遜在替換完成以後他們的首席佈道官的一段話,他說咱們傳統的DBA大部分工做時間消耗在數據庫的擴容、存儲的擴容以及License許可的談判上,而傳統DBA所作的這些工做今天均可以經過雲自助來完成,這是本質上的變化,這個本質的變化是互聯網的技術、雲的技術使得傳統工做能夠自動化完成,我認爲這本質上是變革的核心。

3. toB市場是數據庫成敗關鍵

在中國市場略有不一樣,我認爲在中國市場未來會是一個公有云和混合雲長期共存的時代,並且私有云仍然會佔有廣闊的市場。在這個發展格局之下會呈現出一種什麼樣的數據庫格局?

我把它歸納爲,將雲的體驗最終要轉移到數據上,既然不是全部的數據庫、數據都能上到公有云,那麼咱們就須要將公有云那些最佳的用戶體驗、自動自治的特性轉移到私有的數據環境部署上,這在分析報告裏被稱爲叫TPC,是說僅僅有了IaaS和基礎設施,不能成爲一個真正的私有云,還須要具備互聯網的用戶體驗、真正雲的彈性伸縮等核心能力。因此我認爲在數據庫領域,尤爲在中國市場上下一步的格局就是雲的體驗雲下化,最終雲上和雲下會趨於一致,雲會成爲將來惟一的基礎設施提供形態,只不過還有公有、私有的兩種說法而已,本質內核趨同。

2、數據庫技術的學術界觀點

剛纔談的是咱們在工業界生產實踐中看到的幾大趨勢:從商業到開源到雲時代,從雲上到雲下,雲上體驗的雲下化。咱們再來看看學術界在探討什麼,在思考什麼。

近五十年間圖靈獎所授予的5個數據庫領域的大神,第一個是巴赫曼,他是網狀數據庫的發起者。第二個是科德,他是咱們今天所在探討的關係型數據庫的締造者,經過他1970年發表的一篇論文,催生了整個關係型數據庫波瀾壯闊的大格局,他在1981年得到了圖靈獎。第三位是格雷,他是事務理論的深刻探究者,他在工業實現上是包括微軟等數據庫產品的靈魂人物。第四位是邁克爾·斯通布雷克教授,他在2014年得到了圖靈獎,也發起了不少數據庫項目的創業公司。和你們重點分享一下在2021年剛剛得到了圖靈獎的烏爾曼,他的主要成就是在教學領域,他寫過很是著名的龍書,是不少數據科學家的啓蒙導師。

你們能夠稍微思考一下這樣的演進過程發生了一些什麼變化?從最先的理論奠定人到事務的探索者;再到斯通布雷克在工業界的產品化的嘗試——從關係型行存到列存、到大數據,他探索了不少領域;再回歸到今天咱們說烏爾曼,他是從學術界、從學校的教育開始,去從新思考這些數據庫理論是否是仍然有探索、創新、革新的可能性。我剛纔和李海翔老師探討,他說最近他在思考的就是這樣一些事情,試圖從事務模型上再作出新的思索創新。因此我把它當作是關係型數據庫理論發展到山窮水復疑無路,但你們開始回頭來看在這些基礎理論上是否是還有柳暗花明的機會,這是個人觀點。

烏爾曼教授在他最近的論文裏提出了這樣一個觀點,叫「數據科學之戰」。因此你們已經看到了我提到了兩個戰爭,一場是說數據庫是雲上的終極之戰,這是你們公認的;第二場是數據科學之戰。在很長一段時間內數據庫領域有一種悲觀的聲音,你們說數據庫管理系統正在變得可有可無,作數據庫的人常常在談的一句話是「咱們是否是又錯過了一艘船」,這艘船是數據科學。數據科學的蓬勃發展、火熱的現狀讓作數據庫的人以爲是否是咱們又錯過了一班最好的郵輪。可是烏爾曼教授提出,數據庫以及由於數據庫研究所產生的技術仍然是數據科學最本質的內核,這個沒有變,數據庫系統的核心一直是如何盡最大的可能去處理最大的數據量,而且應該去研究一切數據。我認爲他把數據庫的本質又從新闡述出來了,咱們研究數據庫的人、研究數據技術的人想作的是什麼呢?就是存儲一切數據,研究一切數據,最後在這些數據裏產生洞察。若是人工智能可以在數據科學裏發揮真正的創新做用,那這個世界能夠變得更美好,可是它的底座必定是一些原生的數據。

3、Oracle 數據庫的核心演進和創新

1. 宏觀演進

既然學術界有這樣一些見解,認爲存儲一切數據、研究一切數據仍然是數據管理系統的本質,那我想跟你們回顧一下在今天數據庫領域裏仍處於王者地位的Oracle是怎樣走完這條路的。

我稍微列舉了一下從Oracle8到今天走過的關鍵歷程。在Oracle8這個版本上,你們看到Oracle已經推出了互聯網版本8i,Oracle看互聯網看得晚嗎?不是,它從1998年開始就把產品定義爲i,爲互聯網而生,1998年是何時?不少90後那時可能還在幼兒園,但那時的互聯網已經在探討數據庫了。Oracle針對並行處理作研發、數據庫原生的XML支持,這正好是我入行的時候,因此我最先就研究了這個技術在數據庫裏的實現。到了Oracle9i作了什麼?它作了集羣,而且集羣真正走向成熟了,就是共享存儲的分佈式集羣,Oracle開發本身的Linux發行版,開始作數據庫的自動化技術。到了2004年Oracle10g的時候,作了Oracle自動化存儲管理技術,這是一個很是成功的產品,它直接致使了市場上作存儲軟件的一些公司消失了,因此你能夠想象它的影響力,這是很是重要的技術事件。

再到了2008年,進入Oracle11這個版本,它開始開發一體機產品,開始作數據庫端的讀寫分離等技術,可是注意在這裏我重點標出了一個時間點:2006年,AWS這時推出了S3技術,我認爲Oracle數據庫在發展的歷程中只錯過了一件事情,就是雲。當AWS在2006年推出S3的時候,Oracle創始人在2008年是這樣回覆的,他說我認爲雲是用新瓶裝了老酒,沒有新的技術創新,是你們炒做的一個概念。但是咱們如今回頭去看,他的判斷出錯了,也正是由於這一步的判斷出錯,你們看到了如今數據庫領域的領先者都是在雲上成功的這些廠商,好比微軟的雲成功了,因此微軟變成了數據庫的第一,Oracle降低到了第二位。因此咱們說洞察將來很是難,可是很是重要,它事關生死,這也是咱們今天在這裏討論數據庫將來的緣由。

咱們快速向下推動,Oracle在2017年推出的12c版本里開始作分佈式,並非像你們理解的Oracle沒有分佈式。在2018年的時候18c把它的集羣也作成了分片式的架構,也支持了IOT。到了2019年在19c中它支持了智能化的索引——我認爲智能化索引是一個創新,真正已經用到生產實踐中了。再到20c——如今Oracle每一年會發佈一個版本,以年度進行命名,可是注意,由於疫情的緣由其實20c沒有發佈,會合併到今年發佈21c——持久化內存被應用到數據庫裏了,這說明什麼?說明Oracle數據庫仍然是一個具有創新力的產品,正在不斷地把領先的技術用到數據庫的內核中去,提供新的生產力,這裏包括人工智能的索引,這些都表明了今天的前沿。包括它的多模、軟硬結合——因此Oracle所走的這些技術路線在今天數據庫領域看起來多數都是對的,它只錯過了雲這一件事情。

2. 微觀演進

我剛纔講的實際上是幾個宏觀上的概念,在微觀上我找了一些小的要點跟你們分析一下。

數據庫今天着眼於性能向前演進最重要的是什麼?是把原來的串行點打散變成並行點,其實就是巨大的性能提高,無論是Oracle仍是TDSQL,仍是其餘國產數據庫,今天最主要的創新、性能提高是在作這樣的事情。我舉幾個簡單的例子:好比從Oracle9i的時候,開始把共享內存池進行分片拆分,拆成了七份;經過ASM把存儲進行分佈式地打散;把進程進行主從拆分。好比從12c,把日誌寫進程變成了主從,在幾十年的歷程中Oracle的日誌寫進程只有一個,單進程寫日誌,可是從12c開始變成了主從,這是一個艱難的改變,咱們知道絕大多數數據庫的性能瓶頸會產生在日誌的同步落盤上,你們都在作優化。19c的實時統計信息,再加上到今天的19c智能化索引——其實這個智能化索引的思路比較簡單,它就是把人的思惟模擬出來,經過人的專家系統進行思考建立一個什麼樣的索引,去進行嘗試確認,性能提高保留,性能降低則刪除——可是真正落到工業實現實屬不易。在20c裏,提出了自動的參數調節以及自治的主備切換等等,把這些能力都融入數據庫中,這是Oracle走過的40多年的技術變革之路,它仍然在這條路上向前奔馳。

4、以騰訊TDSQL爲例,國產數據庫的演進之路

咱們再來看國產數據庫如何走技術演進之路。我前面提到了關係型數據庫技術從1970年科德博士的一篇論文開始,已經走過了50年的歷程,這50年在咱們作數據庫的人眼裏,不少時候以爲關係型數據庫已經快到盡頭了,它將來的路在哪裏?我認爲關係型數據庫將來的路應該在中國,爲何在中國呢?是由於中國有最龐大的數據基礎設施、最集中式的數據應用系統,因此這是個人判斷。

若是咱們在中國看,至少不少業務系統是省級集中的,而一個比較大的省份就可能有上億的人口,這樣集中式的數據基礎設施在國外是不可想象的。關係型數據庫理論走到今天爲何能夠有突破?我認爲就必定是在應用中找到突破,因此其實我也在看騰訊TDSQL的發展演進進化,從讓TDSQL逐步地能用和走向成熟,這是完成了第一步迭代。第二步迭代,它必須在外部走到最廣闊的用戶羣體、用戶場景去使用,最值得你們關注的案例就是微衆銀行。微衆銀行今天作到的是單日交易峯值有6億筆,最高TPS能夠達到10萬筆,這是一個什麼概念?6億筆的交易你們能夠想像,這是多廣大的一個用戶羣體可以創造出來的交易,這樣頻繁的、高頻的交易必定會促使數據庫不斷地去完善、進步。若是你們用過Oracle的話會知道Oracle數據庫在生產系統中能承載的交易峯值和併發的交易筆數,若是你可以見到一個超過每秒1萬筆交易的Oracle數據庫,已是一個巨大的挑戰,可是今天在互聯網的模式下,在分佈式的架構下,海量的應用、海量的高併發能夠被支持,因此這是我認爲在中國的場景下能夠帶來的催化劑,這些催化劑會促使數據庫找到新的向上的空間。

展開來講,一旦一個開源數據庫要應用到金融核心上,必須解決的核心問題是什麼?第一個是數據安全問題,如何讓數據保證一致性是絕對可信賴的,TDSQL進行了數據強一致的改造,主從節點默認是強同步的,這是一個技術創新。第二,當咱們使用了分佈式架構,也就意味着須要管理的數據節點會迅速膨脹,原來單一的數據庫存儲,如今在這種架構下可能會有成百上千的數據節點,這樣成百上千的數據節點不可以再依賴人去作數據維護,由於作不到了,因此這裏面有一組數據,有1萬個服務節點在微衆銀行運行,怎麼辦?它必定要依賴於高度自動化的監控和故障處理手段,最好是不須要人介入,我認爲這也是數據技術發展的重要將來。有了這些以後,我剛纔提到整個TDSQL是基於分佈式構建的,讀寫分離是它的基本要義,這樣一個系統在支持這樣的場景下逐漸找到了將來的發展之路。

這是一個兩年前的案例,TDSQL在張家港農商行的客戶場景下,把過去的金融交易核心完全替代。微衆銀行是一家互聯網銀行,它的先天優點是沒有歷史包袱,可是對於一個傳統銀行,它的數據架構、數據應用是很是複雜的,不只有交易、存取款、帳戶,還要有對帳,這樣複雜的業務場景如何在一個新的數據庫架構上落地,其實很困難。這個案例騰訊和最終客戶應該是經過兩年多的時間才推到線上,如今看來結果是很是好的,一主三備模式,秒級的故障切換,我一直在關注。

但這個案例裏給我另一個很是重要的信息是TDSQL所提供的赤兔和扁鵲系統成爲了自動化運維的一個根基,爲何我認爲這很是重要?將來的數據庫必定不是一個單一的數據庫內核系統,而應該是一個數據庫生態體系,包含了自動化運維、自治的主備切換、自治的高可用等特性,這些特性也是Oracle今天在作的,我認爲在將來會是很是具有競爭力的核心特性。

5、數據庫技術發展的將來方向

總結一下,剛纔是所觀察到的行業應用的變化、數據庫技術從理論到實踐的變化、Oracle的變化包括TDSQL的發展,如今看數據庫的演進將來應該是什麼樣?首先我說數據庫的更迭替代必定不是重走一次長征路,不能用國產數據庫把商業數據庫替換了,可是很差用,這樣用戶是沒辦法接受的,因此它必定不該該是功能和體驗的降級,而應該是升級,但如何才能升級?我認爲這五大方向是咱們應該思考的:

第一是分佈式,分佈式能解決的是彈性伸縮、故障自愈,這二者一樣重要,更重要的是當出現故障的時候不須要人緊急介入,它能夠自愈。

第二是智能化,將人工智能技術應用到數據庫裏,好比去解決DBA過去所面臨的核心挑戰。DBA過去作優化,很大一部分工做是幫數據庫去優化索引,因此Oracle在這一步上優先作的是智能索引,變成自動化,常規的基礎工做完成了,索引變成智能的,執行計劃是可控的,那麼數據庫就再也不須要特別多的人力介入。

第三是多模化,這一點是有爭議的。我前面提到了亞馬遜把7500個Oracle數據庫替換成了本身的雲數據庫,能夠想象會用多少個雲數據庫去替換原來的7500個Oracle?極可能是75000個甚至是75萬個,爲何?由於Oracle是一個多模數據庫,裏面能夠存儲大對象、IOT等各類類型的數據,儘管這種混合存儲並不必定都可以達到最佳,可是對於用戶呈現出的界面是最簡單的。我認爲數據庫的發展必定也是分分合合的歷程,走向分,最終也會走向合,單一的界面輸出對於用戶是最佳的,若是分散,那就要實現高度自動化。

第四是軟硬一體,數據庫技術必定不是獨立發展的,它必定能夠依賴硬件技術的進步取得卓越的性能提高,因此爲何不少數據庫今天都在打造一體機?經過高速的網絡以及高速NVME存儲提高總體的性能,因此軟硬協同發展不可缺乏,未來最核心的是數據庫技術應該下壓到CPU處理器一級去作優化,我認爲這是能夠作到的,並且在中國將來必定也能夠作到。

第五是雲化融合,雲會成爲將來惟一的形態。雖然公有云和私有云仍然是兩個世界,可是會趨同,技術棧、用戶體驗都會趨同,並且雲上體驗雲下化是數據庫技術發展當下一個最重要的趨勢。

因此這五個觀點融合在一塊兒,表明了我對將來數據庫發展的一些判斷。重複一下,若是國產數據庫但願讓用戶得到更好的體驗而非降級,只有一個路徑去彌補,就是自動化,經過自動化的生態和工具去解決這方面的問題,內核可能還比不上國際一流水準,可是自動化能夠幫助用戶不去面對底層複雜的基礎設施。

最後點一下題,叫DBA的冰與火之歌。曾經不少DBA朋友一度陷入迷茫,尤爲是在Oracle陣營的DBA們,他說在國產數據庫的浪潮之下Oracle的DBA們還能生存嗎?不少人常常問我會被歷史淘汰嗎?我說不會,首先咱們認爲數據必定會變成將來數字企業的核心資產,它會愈來愈重要,這是你們公認的一個前提。第二整個數據庫的運行仍是相對複雜的,它涉及到了主機、網絡、存儲,是一個全棧的技能需求,具備必定的技術壁壘,因此DBA們不要懼怕失業。第三從原來的數據庫管理,你積累的全部經驗在今天能夠找到更廣闊的就業空間,若是咱們充分理解Oracle或者MySQL技術,你甚至能夠變成一個國產數據庫的產品設計師、產品管理師、內核開發者,若是你能把對國外數據庫的先進技術變成產品設計和實現驅動,你就變成了咱們國產數據庫的核心驅動力,因此國產時代咱們的路不是變窄了,是變寬了,職業道路更加寬廣明亮。DBA這個羣體是很是樂於探索、分享、總結的一羣人,只要咱們具有了這樣的能力,將咱們原有的學習轉移到新的技術路線上來一點都不復雜。

最後我還有一個思考,新的時代,咱們作數據庫的要記住這兩句話:一主一備雙引擎,商用開源兩相宜。只學一個數據庫必定不夠,商業和開源都要接觸、學習,而且互相校訂。有一個主修、一個輔修,能夠選擇兩個科目。在這個國產的時代,從短時間看咱們每每是高估了難度,從長期看咱們老是低估了機遇,春江水暖鴨先知,若是你認識到了這個行業的變革,儘早轉型,儘早投身到國產數據庫的浪潮中去,那咱們就是抓住機遇的第一批人。只有躬身入局,纔可以領先一步。


講師簡介

蓋國強

雲和恩墨CEO、騰訊雲TVP

雲和恩墨創始人,ACDU 主席。中國地區最著名的Oracle技術推廣者之一,他的專著《深刻解析Oracle》、《按部就班Oracle》等書籍受到Oracle技術愛好者的普遍好評。2009年,蓋國強先生建立了雲和恩墨,致力於爲中國用戶提供專業的數據服務、產品和解決方案,雲和恩墨的 dbPaaS產品和專家服務,已經服務了國內外500多加企業級客戶。2019年,他發起創立墨天輪技術社區和ACDU(All China DBA Union),致力於持續的數據知識和應用的傳播和推廣。

相關文章
相關標籤/搜索