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