聊聊主流國產(chǎn)分布式數(shù)據(jù)庫
在分布式數(shù)據(jù)庫大行其道的那些年,在一次沙龍上,一個朋友說,分布式數(shù)據(jù)庫入門門檻不高,做好極難,讓用戶能用好分布式數(shù)據(jù)庫,需要廠商有極強(qiáng)的服務(wù)能力,不是小公司能干的。
確實如此,分布式數(shù)據(jù)庫最初是從SHARDING方案發(fā)展起來的,只要能夠掌握好兩階段提交和高可用架構(gòu)的設(shè)計,利用現(xiàn)成的集中式數(shù)據(jù)庫,采用樂高技術(shù)就可以搭起來一套最為原始的分布式數(shù)據(jù)庫框架來,然后在此基礎(chǔ)上不斷優(yōu)化就可以了。不需要投入巨資去死磕RDBMS核心的SQL引擎和存儲引擎,這兩個數(shù)據(jù)庫核心的組件用現(xiàn)成的就行了。于是10年前開始,大量的分布式數(shù)據(jù)庫初創(chuàng)團(tuán)隊開始推出自己的分布式數(shù)據(jù)庫產(chǎn)品,甚至比利用開源代碼搞集中式數(shù)據(jù)庫的廠商還多。
幾年過去了,那位朋友的話真的印證了。樂高式的分布式數(shù)據(jù)庫只能適用于有限的應(yīng)用場景,主要是互聯(lián)網(wǎng)和物聯(lián)網(wǎng)特征的,業(yè)務(wù)邏輯相對簡單的場景。對于企業(yè)級信息管理系統(tǒng)(MIS、ERP、MES、SCM等)而言,分布式數(shù)據(jù)庫因為對于應(yīng)用開發(fā)比較嚴(yán)苛的限制,適配難度極大。雖然現(xiàn)在市場上存活的分布式數(shù)據(jù)庫產(chǎn)品還很多,但是真正在企業(yè)級市場上應(yīng)用比較廣泛的分布式數(shù)據(jù)庫產(chǎn)品其實十分有限。
目前來看,存活得較好,發(fā)展?jié)摿^大的主流國產(chǎn)分布式數(shù)據(jù)庫要么是技術(shù)能力與資本都比較有優(yōu)勢的企業(yè),要么是TOB能力較強(qiáng),能夠提供比較優(yōu)質(zhì)服務(wù)的大廠。
能夠獲得大量的客戶,能夠在大量的應(yīng)用場景中不斷打磨產(chǎn)品,是分布式數(shù)據(jù)庫從一個簡單的玩具似的毛坯變成一個優(yōu)秀的數(shù)據(jù)庫產(chǎn)品的基礎(chǔ)。如果不能在大量實際案例中不斷地磨合和改進(jìn)自己的產(chǎn)品,只是在自己的實驗室里不斷自我陶醉,這樣是做不出好的分布式數(shù)據(jù)庫產(chǎn)品的。
圖片
分布式數(shù)據(jù)庫雖然參與者眾多,產(chǎn)品也十分豐富,不過真正算得上主流產(chǎn)品的其實數(shù)量不多。最近分布式數(shù)據(jù)庫產(chǎn)品的第一次大考剛剛結(jié)束,本期國測中有不少分布式數(shù)據(jù)庫廠商都報名了。自己的產(chǎn)品行不行,能不能在數(shù)據(jù)庫國產(chǎn)化替代大潮中喝上一口湯,就看本期國測的結(jié)果了。我個人推算,最早下個月初,最晚今年年底,這份包含了分布式數(shù)據(jù)庫的安可清單就會出臺。在清單上的產(chǎn)品將會獲得進(jìn)一步發(fā)展的入場券,而沒有上榜的企業(yè)則前途堪憂。
上圖是CCSA TC601的領(lǐng)航者與競爭者象限。與集中式數(shù)據(jù)庫相比,靠譜指數(shù)高了一些,不過也存在很多不合理的地方。把OceanBase從領(lǐng)航者象限里拿掉,是十分令人費解的。在技術(shù)、市場綜合因素評估下,OceanBase、TiDB、GaussDB、GoldenDB、PolarDB、TDSQL是理所當(dāng)然的領(lǐng)航者,不僅我個人如此認(rèn)為,可能大多數(shù)同業(yè)人員都會認(rèn)可吧。
KingWow是當(dāng)年交行搞數(shù)據(jù)庫的一些人出來創(chuàng)業(yè)的數(shù)據(jù)庫項目,利用當(dāng)年交行和阿里在早期OceanBase合作項目的成果(當(dāng)年OceanBase第一次開源,版本發(fā)布到0.4,當(dāng)時與交行有一個聯(lián)合工作組,嘗試在核心交易系統(tǒng)中使用分布式數(shù)據(jù)庫),研發(fā)了金烏數(shù)據(jù)庫。在一些銀行有一些應(yīng)用,但是把金烏數(shù)據(jù)庫放到領(lǐng)航者象限里似乎不大合理。
對于我認(rèn)可GoldenDB為領(lǐng)航者,可能有一些朋友有些不同意見。實際上一個分布式數(shù)據(jù)庫產(chǎn)品是否架構(gòu)上是原生分布式其實并不關(guān)鍵,原生分布式其實也是一個這兩年被硬生生定義出來的概念。數(shù)據(jù)庫產(chǎn)品是用來解決應(yīng)用場景中的問題的,一個數(shù)據(jù)庫產(chǎn)品是否成功,不取決于其架構(gòu)如何先進(jìn)(以前我也寫過一篇文章《沒有完美的分布式數(shù)據(jù)庫架構(gòu)》),而是取決于數(shù)據(jù)庫產(chǎn)品和數(shù)據(jù)庫廠商是否能夠幫助用戶在自己的復(fù)雜業(yè)務(wù)場景中發(fā)揮作用。良好的客戶服務(wù),也是數(shù)據(jù)庫廠商重要的能力之一。隨著用戶數(shù)量的增加,處理的復(fù)雜業(yè)務(wù)場景的增加,數(shù)據(jù)庫產(chǎn)品、數(shù)據(jù)庫架構(gòu)中存在的一些問題慢慢是能夠被彌補(bǔ)的。技術(shù)永遠(yuǎn)不是一個產(chǎn)品成功的最重要因素,當(dāng)年Oracle也是打敗了大量技術(shù)比它更優(yōu)秀的產(chǎn)品,才變成現(xiàn)在技術(shù)最好的數(shù)據(jù)庫產(chǎn)品的。
我今天討論的話題可能會引發(fā)一些爭議,不過不用管它,等到本期國測結(jié)果發(fā)布的時候,大海退潮的時刻,那時候誰在裸泳就一目了然了。