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