【行業觀察】國產資料庫亂象

韓楠發表於2022-06-28

其實這篇文章是我週末開始寫的,寫這篇文章的這個週末,我的很多時候,都是在思考一個資料庫國產化替代的建設方案,翻閱了大量的資料。


今年正好是我參加工作後的第31個年頭,工作的最初十年,我寫了十年程式碼,從彙編、COBOL到C語言,寫了幾十萬行程式碼;隨後的十幾年,我一直在幫助使用者用好資料庫,也在幫助Oracle推廣RAC技術;2015年開始,我一邊繼續從事資料庫最佳化的工作,一邊在幫助客戶如何從Oracle遷移到成本更低的資料庫系統上。


所以對國產資料庫我一直有一種十分特殊的情感,這是一種愛恨交織的情感。所以今天最後用“亂象”這個題目的時候,還是有些猶豫的,在國產資料庫發展如火如荼的時候,潑這盆冷水合適不合適。


根據工信部資料庫發展白皮書2021的描述,截止2021年6月底,光是國產關係型資料庫廠商就已經高達81家,估計馬上要釋出的2022版裡突破100家甚至150家都是很有可能的。相對於十多年前的寥寥數家,這些年國產資料庫產業的發展確實是十分迅猛,用野蠻生長來描述也不為過。

這些新興的國產資料庫廠商裡,也不乏具有相當強大基因,投資巨大,真正認真在做資料庫產業的企業,不過大洪水下肯定也會泥沙俱下。原本就起步較晚,人才儲備、資金投入都不太足夠的國產資料庫產業,再被割裂為這麼多的細小單位,每個獨立個體的真實能力就很值得懷疑了。無論是CPU,伺服器,作業系統,中介軟體這些IT基礎設施,投身於IT基礎設施中的王冠的企業沒想到有這麼多,這不知道是中國資料庫之幸還是中國資料庫的災難。

上週五我在一個沙龍上分享了一些關於基於業務場景的國產資料庫選型的演講,並不是開門見山的去討論業務場景和資料庫選型,而是從對國產資料庫廠商的分析開始的。這些分析都是基於工信部的產業發展白皮書的內容。


從成立年限上看,我們的國產資料庫企業還很年輕,不過成立20年以上的企業還是有十四家,只不過這些企業的這20年並不好過,以資料庫產品銷售為主業根本生存不下去。因此雖然有20年的歷史,實際上真正的歷史恐怕要打些折扣的。


只看歷史可能還無法直接感受到差距,而從從業人數上看,就可以看到國產資料庫產業碎片化的惡果了。超過60%的資料庫廠商不足100人,而超過500人的企業不足10%。對於想摘取IT基礎設施王冠的中國資料庫企業,最大的企業的規模可能還不如某個哪怕二三流的國外資料庫廠商的一個小研發部門的規模。如果把人員再細化為管理、研發、產品、市場、銷售、後勤等部門,恐怕研發人員就更是少的可憐了。據說目前國內最大的資料庫廠商的研發人員不足500人,這就是中國資料庫企業的現狀。


如果我們再來看看技術層面的東西,從專利數量上看,90%的資料庫企業的資料庫領域的專利數少於100件,所有的關係型資料庫廠商的專利數加在一起不足4000件,而截止2020年,Oracle公司一家企業的專利數就超過1萬4千件。

在技術基礎薄弱,人才匱乏的情況下,為什麼一下子能湧現出如此多的資料庫企業和產品呢?從國產資料庫的技術來源分析上我們就可以看出一些端倪了。


上面這個圖表是我們根據收集到的資料自己做的,不一定十分準確,不過可以大體反映出國產資料庫的技術來源。大多數是來自於開源專案。因此才會出現大量的規模較小的資料庫企業。使用開源技術來發展自己的資料庫產業並不是一件壞事,實際上我還是比較贊成的。充分利用開源技術能夠加速國產資料庫產業的發展,縮短與國外頭部企業的差距。不過利用開源技術不等於完全依靠開源技術,而是應該在開源技術基礎上進行大量的自主創新,加入自己的技術。

比如國內有很多利用PG開原始碼的資料庫產品,有哪家公司對PG的原始碼的理解程度,對PG社群的貢獻能夠達到俄羅斯POSTGRESQLPRO的水平呢? 可喜的是,在這種亂象後面,我們已經看到了一些資料庫廠商開始了自主化的創新,在開原始碼的基礎上已經走得很遠了,我想再有幾年的積累,一定會突破開源技術上的某些瓶頸,走出自己的自主化道路。

資料庫的程式碼自主化率一直是個迷,如果看工信部的程式碼自主化測試報告,那麼絕大多數號稱國產自研的資料庫產品都能夠拿出很高自主化率的報告來,而且動不動都是95%以上的。我曾經測試過一個號稱程式碼自主化率超過95%的資料庫產品,其SQL引擎是完全“相容”MYSQL的,儲存引擎用的不是INNODB。

有一次一不小心我把一個不太常用的MYSQL原生態的引數調整了一下,沒想到,SQL引擎的工作模式居然按照引數的要求調整了。如果僅僅為了保持MYSQL語法的相容性的自主化程式碼,連這種細微之處都模仿的如此完美,那也太牛了吧。

雖然國產資料庫的專利很少,不過這不影響國產資料庫彎道超車,如果不能把Oracle拉出來吊打一番都不好意思說自己是國產資料庫。而真實的應用場景下卻反映出來我們的國產資料庫在CBO和SQL引擎方面與Oracle差距甚大。我也曾經和一些資料庫研發人員做過深度交流,他們也承認,要在資料庫上縮短與Oracle的差距是十分困難的。無論在人才積累、資金投入和實際應用案例的反饋等方面都存在巨大的差距。

特別是第三點,導致Oracle可以不斷從生產環境中發現最佳化器的問題加以改進,而我們甚至都不知道最佳化器改進的目標,更不要談從架構上去規劃最佳化器的發展路線了。

雖然我們的國產資料庫還無法解決使用者迫切需要的SQL引擎和最佳化器的提升,不過並不妨礙我們在其他一些領域上進行創新。在各種宣傳資料上,HTAP已經成為了國產資料庫的標配功能,不過我想一些國產資料庫廠商自己都沒幾個人真正的懂得什麼是HTAP。他們號稱的所謂HTAP大多數只是一個OLTP資料庫上具有一定的批處理能力而已。OLAP的計算場景和OLTP是完全不同的,OLTP要求資源均衡分配,每次執行的延時穩定並且儘可能段。而OLAP要求的是小併發下的大型甚至巨型計算,利用並行執行充分利用伺服器的資源,儘可能把CPU/記憶體/IO的能力都充分壓榨出來,完成複雜的計算,大吞吐量的資料輸入和輸出。

一個連資源隔離都做不好的資料庫產品,如何支援HTAP中兩種會互相傷害的計算場景呢?我見識過的大多數號稱完美解決HTAP問題的資料庫產品,實際上都不真正具備可實用的混合負載能力。僅僅是在某些測試環境可以表現出一些能力而已。

雖然如此,也並不能阻止HTAP成為很多企業招標中的引數指標,我不知道是採購單位是真正需要這種計算能力,還是僅僅以此來黨同伐異的噱頭呢?

最後一個亂象是評價體系的亂象,每年都會出臺各種所謂的國產資料庫排行榜,不過這種排行榜似乎有點排排坐吃果果的感覺,第一名和第二十名的評分不超過5分,前幾天我看到一個榜單,第一名和第十名的分差只有1分多。

如果我是一個企業的IT主管,會有一個感覺,這個榜上的產品,隨便選都不會有多大的差別吧。墨天輪有個國產資料庫流行度排名,是模仿DBENGINE的,算是目前比較全的常態化榜單了。不過墨天輪上的關於資料庫的介紹資料,僅僅也就是各個資料庫廠商提供的宣傳資料,並無相對客觀的第三方評價。所有的評價體系和排行榜都是當好好先生的,這很不利用國產資料庫的發展。

國產資料庫現在迎來了最好的發展機遇,我們已經看到了晶片,伺服器、安全等領域都在這個機遇到來時顯現出了勃勃生機。而在我相對熟悉的資料庫領域,我看到的只是一種表面的繁榮,並沒有看到一種良性的發展趨勢,希望這種局面很快會有所改觀,希望國產資料庫產業能夠異軍突起。



來自 “ 白鱔的洞穴 ”, 原文作者:白鱔;原文連結:https://mp.weixin.qq.com/s/jMA6yvINhTdcf5YRixZBPw,如有侵權,請聯絡管理員刪除。

相關文章