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