國(guó)產(chǎn)數(shù)據(jù)庫(kù)的譜系,你看明白了嗎?
目前國(guó)產(chǎn)關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)有上百種,比較知名的也有好幾十種,其中大多數(shù)都和某些開源數(shù)據(jù)庫(kù)或者開源組件有關(guān)。實(shí)際上我并不反對(duì)國(guó)產(chǎn)數(shù)據(jù)庫(kù)基于開源代碼構(gòu)建,因?yàn)槔瞄_源代碼可以縮短國(guó)產(chǎn)數(shù)據(jù)庫(kù)研發(fā)與上市的時(shí)間,縮短國(guó)產(chǎn)數(shù)據(jù)庫(kù)與國(guó)外商用數(shù)據(jù)庫(kù)的技術(shù)差距。數(shù)據(jù)庫(kù)是在應(yīng)用中不斷磨合出來(lái),而不是簡(jiǎn)單的研發(fā)出來(lái)的。很多朋友喜歡講某某數(shù)據(jù)庫(kù)技術(shù)很先進(jìn),用了很多新技術(shù)。如果為了滿足某個(gè)用戶的特殊應(yīng)用場(chǎng)景需求而使用某些先進(jìn)技術(shù),這是沒(méi)有任何問(wèn)題的,而對(duì)于數(shù)據(jù)庫(kù)產(chǎn)品來(lái)說(shuō)并非如此。如果你看看Oracle數(shù)據(jù)庫(kù)就是可以看出其核心的很多核心技術(shù)甚至都是三十多年前就已經(jīng)成型了,其技術(shù)優(yōu)勢(shì)的來(lái)源是這些年不斷滿足用戶需求的功能迭代。
我們分析國(guó)產(chǎn)數(shù)據(jù)庫(kù)的源頭并不是為了證明哪個(gè)數(shù)據(jù)庫(kù)是開源套殼的,因?yàn)槲也⒉环磳?duì)國(guó)產(chǎn)數(shù)據(jù)庫(kù)擁抱開原生態(tài),只要數(shù)據(jù)庫(kù)廠商在開源代碼上疊加了自己的技術(shù)和價(jià)值,哪怕只有簡(jiǎn)單的服務(wù),都是應(yīng)該得到尊重的,數(shù)據(jù)庫(kù)產(chǎn)品的價(jià)值取決于數(shù)據(jù)庫(kù)廠商能夠給與用戶的價(jià)值。
上圖是2022年我們對(duì)部分國(guó)產(chǎn)數(shù)據(jù)庫(kù)的技術(shù)來(lái)源進(jìn)行分析統(tǒng)計(jì)的結(jié)果,數(shù)據(jù)來(lái)源是截至與2021年7月的工信部白皮書。其中基于PG和Mysql兩大開源項(xiàng)目的國(guó)產(chǎn)數(shù)據(jù)庫(kù)產(chǎn)品接近60%。在我對(duì)國(guó)產(chǎn)數(shù)據(jù)庫(kù)的譜系分析的時(shí)候也看到,幾乎所有的國(guó)產(chǎn)數(shù)據(jù)庫(kù)廠家都在開源數(shù)據(jù)庫(kù)上進(jìn)行了一定的研發(fā)改造,或者加入了自己的核心代碼。
一部分?jǐn)?shù)據(jù)庫(kù)廠家的產(chǎn)品來(lái)源于開源代碼,不過(guò)目前已經(jīng)于開源社區(qū)的代碼脫離獨(dú)立發(fā)展,今后很難把開源社區(qū)的一些新技術(shù)直接引入自己的數(shù)據(jù)庫(kù)產(chǎn)品了,比如Gaussdb和openGauss已經(jīng)完全脫離了開源的PG和PGXC,已經(jīng)只能獨(dú)立往前發(fā)展了。而另一部分廠家在對(duì)自己的數(shù)據(jù)庫(kù)產(chǎn)品做封裝的時(shí)候十分謹(jǐn)慎,保持著與開源社區(qū)代碼的兼容性,這樣他們可以繼續(xù)跟上開源社區(qū)的腳步。
數(shù)據(jù)庫(kù)產(chǎn)品的成功絕對(duì)不是技術(shù)堆疊的成功,而是需要有大量的應(yīng)用場(chǎng)景磨合才能逐步成功的。如果僅僅依靠自己那幾百個(gè)用戶,想要發(fā)展出成熟的高水平的商用數(shù)據(jù)庫(kù)產(chǎn)品來(lái),那幾乎是不太能的。依靠開源社區(qū)的廣大用戶來(lái)研發(fā)自己的數(shù)據(jù)庫(kù)產(chǎn)品不失為一種比較好的策略。
打造國(guó)產(chǎn)數(shù)據(jù)庫(kù)開源生態(tài)也是一種十分不錯(cuò)的策略,從今年的鯤鵬開發(fā)者大會(huì)上可以看到,擁抱openGauss開源社區(qū)的企業(yè)越來(lái)越多。利用華為巨大的研發(fā)投入抱團(tuán)取暖,把國(guó)產(chǎn)的openGauss開源社區(qū)做好做大,也是國(guó)產(chǎn)數(shù)據(jù)庫(kù)發(fā)展的一條不錯(cuò)的道路。
國(guó)產(chǎn)數(shù)據(jù)庫(kù)種類繁多,來(lái)源各異,因此把國(guó)產(chǎn)數(shù)據(jù)庫(kù)的家譜高清楚也不是一件容易的事情,昨天一個(gè)朋友畫了一張信創(chuàng)數(shù)據(jù)庫(kù)的圖,讓我?guī)兔纯词欠裾_。從中受到啟發(fā),我畫了一張更全的國(guó)產(chǎn)數(shù)據(jù)庫(kù)譜系圖,我會(huì)把它附在本文的結(jié)尾處。本圖僅僅是我個(gè)人的認(rèn)知,并不權(quán)威。因此圖中可能存在一些疏漏,如果大家發(fā)現(xiàn)問(wèn)題,可以留言告訴我。
畫這張譜系圖也并不是為了證明大多數(shù)國(guó)產(chǎn)數(shù)據(jù)庫(kù)是開源套殼,剛才我就說(shuō)過(guò)我十分贊成國(guó)產(chǎn)數(shù)據(jù)庫(kù)擁抱開源社區(qū)。實(shí)際上國(guó)產(chǎn)數(shù)據(jù)庫(kù)廠商對(duì)是否使用了開源代碼往往遮遮掩掩是很沒(méi)必要的。在自己產(chǎn)品中大膽的聲明基于開源代碼也沒(méi)啥丟臉的,反而是正確的聲明開源代碼是尊重知識(shí)產(chǎn)權(quán)的表現(xiàn)。你如果去看看Oracle的版權(quán)聲明,會(huì)發(fā)現(xiàn),Oracle數(shù)據(jù)庫(kù)的代碼中也使用了大量的開源代碼。
正確的聲明開源代碼,不僅僅是國(guó)產(chǎn)數(shù)據(jù)庫(kù)在尊重知識(shí)產(chǎn)權(quán)方面的表現(xiàn),也為用戶能夠能更好的選型數(shù)據(jù)庫(kù)和使用數(shù)據(jù)庫(kù)提供了便利。如果某個(gè)用戶以前大量使用過(guò)PG數(shù)據(jù)庫(kù),那么他們?cè)赬C數(shù)據(jù)庫(kù)選擇的時(shí)候,選擇一個(gè)和PG數(shù)據(jù)庫(kù)有淵源的商用數(shù)據(jù)庫(kù)產(chǎn)品是不是更合適一些呢?如果我是企業(yè)的IT主管,我肯定會(huì)這么考慮。