十年比肩?看國產(chǎn)數據庫如何突出重圍!
作為核心技術(shù)“三大件”之一,數據庫在中國的發(fā)展可謂齟齬前行。1978年,中國人民大學(xué)經(jīng)濟信息管理系創(chuàng )建人薩師煊提出了發(fā)展數據庫的理念,并在1979年匯集成《數據庫系統簡(jiǎn)介》和《數據庫方法》,成為我國最早的數據庫學(xué)術(shù)啟蒙讀物。
本文引用地址:http://dyxdggzs.com/article/202108/427563.htm20年后,國內第一家數據庫公司人大金倉KINGBASE創(chuàng )立。據人大金倉總裁杜勝介紹,人大金倉之所以有“人大”兩個(gè)字,是因為從人民大學(xué)信息學(xué)院中脫胎而來(lái),“金倉”則原本是信息學(xué)院的一個(gè)研究課題。
“數據庫門(mén)檻太高,國外很早就已經(jīng)發(fā)展成熟,大家都知道在這個(gè)領(lǐng)域投資會(huì )賠錢(qián),所以當時(shí)沒(méi)有人投。后來(lái)是人大的老師們湊了50萬(wàn)元一起創(chuàng )辦,才有了今天的人大金倉?!?/p>
從數據庫概念的提出,到產(chǎn)業(yè)化的落地,都是自“人大”開(kāi)始。本期《新程序員》與人大金倉總裁杜勝,就數據庫的技術(shù)演進(jìn)邏輯、產(chǎn)業(yè)的發(fā)展周期,以及核心研發(fā)人員如何培養等方面進(jìn)行了深入探討。
業(yè)務(wù)邏輯趨向應用端,數據庫集群并行運算
《新程序員》:經(jīng)過(guò)數十年發(fā)展,數據庫技術(shù)不斷迭代更新,從File形式存儲到層次型數據庫,再到關(guān)系型數據庫……你是在哪個(gè)階段進(jìn)入到這一領(lǐng)域?后續發(fā)展呈現怎樣的特點(diǎn)?
杜勝:我是在關(guān)系型數據庫時(shí)代切入到這個(gè)領(lǐng)域的。應該說(shuō)我們現在看到的大多數數據庫應用都是關(guān)系型場(chǎng)景。關(guān)系型數據庫最早是基于傳統C/S架構,比如20年前我們會(huì )用PowerBuilder,或者Delphi這類(lèi)語(yǔ)言去做客戶(hù)端的展現。
一般前端很少寫(xiě)業(yè)務(wù)實(shí)現邏輯,它的實(shí)現主要通過(guò)數據庫來(lái)進(jìn)行運算。當數據庫在存儲過(guò)程中把邏輯實(shí)現后,再通過(guò)前端按鈕觸發(fā)邏輯運行。
對于早期應用來(lái)說(shuō),數據庫是核心。大量的應用邏輯是基于數據庫的PL/SQL語(yǔ)言來(lái)開(kāi)發(fā)的,一是這樣的語(yǔ)言作為腳本語(yǔ)言學(xué)習難度低,容易上手;二是數據庫能夠提供非常多的功能擴展包,幫助應用快速實(shí)現功能,比如要完成某個(gè)遞歸算法時(shí),通過(guò)數據庫中的一個(gè)函數就可以完成。如果是我們自己編程,代價(jià)就會(huì )高很多。從關(guān)系型數據庫時(shí)代開(kāi)始,數據庫就成為了應用中不可或缺的一部分。
《新程序員》:從數據庫發(fā)展歷程來(lái)看,演進(jìn)的邏輯是什么?
杜勝:關(guān)系型數據庫之所以登上歷史舞臺,主要在于它對應用的支撐作用。傳統C/S(Client/Server)應用,Client端模式非常簡(jiǎn)單,更重的落腳在Server端,Server對于數據庫來(lái)說(shuō)是至關(guān)重要的部件。后來(lái),應用從C/S演變到B/S(Browser/Server),出現中間件,一些邏輯就開(kāi)始往中間件遷移。當然,還有部分應用依然沒(méi)有擺脫C/S架構的特點(diǎn),依托數據庫完成業(yè)務(wù)邏輯計算,但當中間件發(fā)展到一定程度后,邏輯開(kāi)始向應用代碼中遷移。
再到未來(lái)云原生的模式,用戶(hù)對應用的投入越來(lái)越高,對數據庫的依賴(lài)則在降低。整體上,數據庫更多在于提升伸縮性和彈性,以應付更大的并發(fā)量和負載壓力。所以,數據存儲和吞吐能力整體在提升,業(yè)務(wù)運算方面則在弱化。
包括現在討論的分布式數據庫,更多是基于數據的存儲,運算基本放在應用端來(lái)實(shí)現,這是應用整體架構的變化帶來(lái)的。架構的變化基于應用場(chǎng)景的變化,是應用在驅動(dòng)我們的底層變革,數據庫實(shí)際上是被動(dòng)跟隨。
《新程序員》:一直以來(lái),數據庫行業(yè)都在討論如何實(shí)現技術(shù)“去O”,你認為該如何實(shí)現?
杜勝:過(guò)去有兩個(gè)說(shuō)法,一個(gè)是“去O”,一個(gè)是“替O”。這是兩種思路的差異,“去O”主要因為Oracle足夠復雜,很難取代。那么,就從應用的角度入手,讓?xiě)枚顺袚嗟倪\算,從而避免使用Oracle的復雜能力,繞開(kāi)它。我們當然可以用應用代碼來(lái)編寫(xiě)業(yè)務(wù)邏輯,比如用MySQL開(kāi)源數據庫來(lái)滿(mǎn)足需求,但這樣的話(huà),所有的應用都必須重寫(xiě),不能再利用歷史資產(chǎn),相當于重構一個(gè)新的體系。
另一條路徑是“替O”,延續原本的規則和體系,依然使用存儲過(guò)程和函數?!疤妗钡暮x在于讓國產(chǎn)數據庫產(chǎn)品具備同等能力,從而替換Oracle。
相較而言,“替O”路徑對于應用廠(chǎng)商而言成本更低,因為“替”的過(guò)程實(shí)現對于應用廠(chǎng)商來(lái)說(shuō)更容易,客戶(hù)的歷史資產(chǎn)能夠得到保留。對于一些傳統企業(yè)和黨政客戶(hù)來(lái)說(shuō),盡可能利用歷史資產(chǎn)是最優(yōu)選擇。但在互聯(lián)網(wǎng)領(lǐng)域,對成本不是很敏感,一般會(huì )選擇“去O”。
當然,隨著(zhù)云原生的發(fā)展,新的技術(shù)路線(xiàn)也在演進(jìn)。未來(lái)數據庫的使用會(huì )更加偏向目前互聯(lián)網(wǎng)的模式,我們會(huì )在應用中實(shí)現更多業(yè)務(wù)邏輯,從而降低對數據庫的依賴(lài),這是一個(gè)大的趨勢。
《新程序員》:從“數據庫”到“數據倉庫”,只是一個(gè)字的變化,看上去只表現在量級上的差別。你認為從“庫”到“倉庫”之后,有哪些延續了?有哪些升級了?
杜勝:從數據庫到數據倉庫的變化主要基于社會(huì )信息化程度越來(lái)越高。
在早期,數據庫能夠解決交易和分析兩方面的問(wèn)題。但近三十年來(lái),信息化逐漸興起,隨著(zhù)數據量的不斷積累,我們遇到了兩個(gè)問(wèn)題:第一,數據存儲遇到挑戰,設計的容量不夠,需要把它擴大;第二,有了這么多數據之后,該怎么用?數據本身沒(méi)有任何價(jià)值,只有把它們用作分析、統計或者運算才有意義。
要解決數據容量不夠和數據處理不足這兩個(gè)問(wèn)題,在單點(diǎn)的運算能力難以支撐下,就需要構建大的數據庫集群,進(jìn)行并行運算。
我們有一款名為KADB的產(chǎn)品,是用MPP技術(shù)來(lái)實(shí)現的分布式數據庫,可以實(shí)現大規模并行處理。通過(guò)并行運算,原來(lái)一個(gè)單機兩到三天才能運算出的結果,構建100臺集群后,幾分鐘之內就可以把結果計算出來(lái)。因此,從數據庫到數據倉庫不僅是量的變化,我們要面對的場(chǎng)景更復雜,處理能力也需要極大提升。
《新程序員》:目前產(chǎn)業(yè)還面臨哪些普遍的技術(shù)難題?
杜勝:在傳統領(lǐng)域,共享存儲集群還是非常困難的技術(shù)。對于數據庫軟件來(lái)說(shuō),穩定可靠是第一位,如果這個(gè)問(wèn)題沒(méi)有解決,其他都沒(méi)有意義。但目前來(lái)看,只有Oracle能做到這點(diǎn)。
雖然我們想要彎道超車(chē),但這類(lèi)硬核技術(shù)的研發(fā)幾乎是不可能的,同時(shí)也不太可能用某種新技術(shù)來(lái)代替。無(wú)論軟、硬件,底層技術(shù)的要求都非常高,很難通過(guò)走捷徑解決,只能一點(diǎn)點(diǎn)消化、學(xué)習,希望市場(chǎng)能夠給我們沉淀和試錯的時(shí)間。
數據庫產(chǎn)業(yè)處于成長(cháng)期,產(chǎn)學(xué)體系仍需優(yōu)化
《新程序員》:相較于A(yíng)I、物聯(lián)網(wǎng)、云計算等動(dòng)輒萬(wàn)億產(chǎn)值的技術(shù),數據庫在早年沒(méi)有被追捧,但近年資本也逐漸涌入這個(gè)領(lǐng)域,為什么會(huì )掀起這樣的熱潮?
杜勝:確實(shí),如果放在前些年,人大金倉想要在資本市場(chǎng)獲得關(guān)注是很困難的。但最近三年我們發(fā)現,資本對數據庫產(chǎn)業(yè)的關(guān)注明顯提升。近期有幾家產(chǎn)業(yè)鏈友商獲得大額融資,最多的獲得了2.6億美金。這在過(guò)去是不可想象的,說(shuō)明現在國內態(tài)勢正在轉變。
為什么會(huì )出現這樣的趨勢?說(shuō)白了就是核心技術(shù)要掌握在自己手里,才能從根本上保證產(chǎn)品的自主可控。
在全球化時(shí)代,看似所有東西都能買(mǎi)到,但關(guān)乎到核心技術(shù)和核心理論,還是存在普遍的保護主義的。這對于我們即將開(kāi)啟的數字化轉型無(wú)疑是壞消息,整個(gè)經(jīng)濟都要構建在數字底座上,我們買(mǎi)不到就只能自己做。所以,這個(gè)節點(diǎn)上,資本投入數據庫領(lǐng)域也是情理中。
《新程序員》:從產(chǎn)業(yè)周期看,你覺(jué)得國內數據庫是處于成長(cháng)期,還是已快到成熟期?
杜勝:我個(gè)人感覺(jué)還是在成長(cháng)期,我們評價(jià)產(chǎn)業(yè)發(fā)展階段有一個(gè)標準,就是產(chǎn)業(yè)從業(yè)人員,尤其是核心技術(shù)從業(yè)人員能否支撐產(chǎn)業(yè)的可持續發(fā)展。很明顯,我們在核心技術(shù)人員的儲備上嚴重不足。再從市場(chǎng)來(lái)看,自2001年中國加入WTO,國外品牌紛紛進(jìn)入中國,二十年過(guò)去了,依然占據大多數市場(chǎng)份額,壟斷是一直存在的。
在現象背后,是后進(jìn)者與先進(jìn)者的歷史差距。Oracle 1977年創(chuàng )立,人大金倉1999年創(chuàng )辦,盡管是國內最早的數據庫公司,但還是落后了22年。
當然,我們走向成熟也指日可待。一方面基于國家層面的規劃;另一方面,最近幾年涌現出200余家數據庫公司,這是非常好的現象。雖然短期可能有泡沫,但行業(yè)做起來(lái)會(huì )吸引大量人才,大浪淘沙后優(yōu)秀者自然會(huì )留下,行業(yè)也會(huì )逐步走向成熟。
《新程序員》:在硬核技術(shù)領(lǐng)域,你覺(jué)得很難“彎道超車(chē)”。但面對這樣既重要又困難的現實(shí),產(chǎn)業(yè)界往往又寄希望于有這樣的彎道,對此,你認為該怎么辦?
杜勝:需要從兩個(gè)方面來(lái)說(shuō),一個(gè)是技術(shù)的底層邏輯,一個(gè)是人才和市場(chǎng)。
首先,做基礎軟件需要端正心態(tài)。在整個(gè)產(chǎn)業(yè)鏈上,過(guò)去做得好的是應用,比如淘寶、美團、抖音等軟件,滿(mǎn)足了客戶(hù)需求并持續深耕,就能在市場(chǎng)中下沉。
然而,基礎軟件開(kāi)發(fā)有客觀(guān)規律和周期。比如,目前我們的高等教育、研究與產(chǎn)業(yè)界之間仍然不能緊密銜接。學(xué)校的老師大部分是本、碩、博“直通車(chē)”,上完學(xué)就回到學(xué)校教學(xué),很少有在產(chǎn)業(yè)界扎根的經(jīng)歷,學(xué)校和產(chǎn)業(yè)是脫節的。如何達成人才培養閉環(huán)和產(chǎn)業(yè)閉環(huán)?可以借鑒一些成熟的經(jīng)驗,比如國際名校的很多老師曾是產(chǎn)業(yè)界的高級經(jīng)理人,或者是技術(shù)人員。他們退休后利用閑暇回到學(xué)校,將產(chǎn)業(yè)中遇到的難題和研究方法教授給學(xué)生。這樣,理論可以有的放矢,產(chǎn)業(yè)界的實(shí)踐也通過(guò)大學(xué)的進(jìn)一步研究而系統升華。我們的學(xué)校也開(kāi)始有這樣的趨勢,但還需要持續發(fā)展形成閉環(huán)。
其次,每個(gè)人有不同的個(gè)體稟賦,我們的學(xué)生也都非常聰明勤奮,現在世界上很多知名科學(xué)家都是華人。從主觀(guān)能動(dòng)性的角度,我還是相信整體的學(xué)習氛圍能讓我們在某些領(lǐng)域趕超,然后帶動(dòng)其他領(lǐng)域。
再者,以人大金倉的經(jīng)歷來(lái)看,市場(chǎng)也是轉折的關(guān)鍵。在創(chuàng )立的前十年我們發(fā)展比較慢,國外軟件幾乎沒(méi)給我們留什么機會(huì )。09年被中國電科收購之后,我們加入了“國家電網(wǎng)核心電力調度系統”這個(gè)項目,通過(guò)這個(gè)系統應用獲得的良好聲譽(yù),讓我們的產(chǎn)品和服務(wù)打開(kāi)了市場(chǎng)。
所以,技術(shù)落地要符合客觀(guān)規律,還需要在體系建設上持續優(yōu)化。從人的主觀(guān)能動(dòng)性和市場(chǎng)培育角度,我覺(jué)得還是有超越的可能。未來(lái)十年,我們希望進(jìn)入國際市場(chǎng),再過(guò)五年,或許可以做到世界領(lǐng)先。
DBA與核心研發(fā)人員的培養
《新程序員》:對于數據庫核心研發(fā)人員的培育,人大金倉是通過(guò)怎樣的方式來(lái)培養?
杜勝:我們現在的人才體系有兩類(lèi):
第一類(lèi)是數據庫的使用人才,就是常說(shuō)的DBA,培養核心是怎么使用和維護數據庫。這類(lèi)人才的培養相對容易,美國數據庫軟件公司已經(jīng)幫我們培養了很多人。對他們來(lái)說(shuō),在我們這里的學(xué)習不是從0開(kāi)始,而是“再學(xué)習”。在共通的數據庫技術(shù)下,他們轉換很快,可以把以前Oracle、Db2、SQL Server等的DBA很快轉化到國產(chǎn)數據庫,這樣就多掌握了一門(mén)技術(shù)。我們現在面向全國開(kāi)設免費學(xué)習課程,包括KCA、KCP、KCM,國外這類(lèi)課程都是收費的。對于我們來(lái)說(shuō),為產(chǎn)業(yè)培育人才不是為了盈利,是為了讓生態(tài)快速建立起來(lái)。
第二類(lèi)是核心研發(fā)人員,這類(lèi)人才培養非常困難。就目前情況來(lái)看,中國有非常多的程序員,但做數據庫內核研發(fā)的只有一兩千人。以傳統師傅帶徒弟的自然培養方式顯然是不夠的,我們要把人才體系真正建立起來(lái)。目前國內開(kāi)設數據庫相關(guān)課程的高校只有二十多家,我們已經(jīng)和人民大學(xué)、武漢大學(xué)、山東大學(xué)合作開(kāi)發(fā)課程,增設了數據庫內核專(zhuān)業(yè)。
《新程序員》:你要“從IT應用軟件產(chǎn)業(yè)中尋覓人才”,《新程序員》的核心受眾正是龐大的軟件開(kāi)發(fā)者群體,你對開(kāi)發(fā)者有什么要說(shuō)嗎?
杜勝:如果仔細觀(guān)察,我們不難發(fā)現做數據庫的都是國際巨頭,像2019年排名前五的數據庫廠(chǎng)商:Oracle、微軟、AWS、IBM、SAP。事實(shí)上,做系統類(lèi)軟件才能在全球通用,所以這個(gè)市場(chǎng)量足夠大。假以時(shí)日,我們國產(chǎn)數據庫真正成長(cháng)起來(lái),彼時(shí)遍布所有行業(yè),那一定會(huì )成長(cháng)為巨頭公司。如果看好數據庫,想讓你做的軟件被世人銘記,那就加入我們!
評論