國產資料庫發展現狀分析

guayaba發表於2020-09-11

  導語

  從上世紀90年代開始,國產資料庫的開發就不斷被人提起,國內已有不少企業、團體在這個方面做了不少的投入。在此,我們與大家分享一下對幾個資料庫國產化途徑的看法。我們主要討論自主研發、引進程式碼和網際網路廠商提供的雲上資料庫。

  自主研發

  國內自主研發關係型資料庫的企業、單位基本上都是發源於上世紀90年代的,而且都是以大學、科研機構為主。到今天,有代表性的廠商有:

  達夢 – 由華中理工馮玉才教授創辦,完全自主研發。以Oracle為參照、追趕物件。

  人大金倉 – 由人民大學王珊教授創辦,自主研發。普通的關係型資料庫。

  神舟通用 – 神舟集團與南大通用合作開發的關係型資料庫。更多地用於資料分析領域。

  南大通用(Gbase 8a)- 南開大學的背景,2010年左右自主研發的,基於列式儲存的,面向資料分析、資料倉儲的資料庫系統。

  其他沒有列出的,屬於在下孤陋寡聞,絕無貶低的意思。

  這些公司的發展分為兩個階段,以2007年作為分界線。前一個階段集中在20世紀90年代,公司的出發點就是開發一款通用的,主要面向OLTP的關係型資料庫。在那個年代,中國的人工成本還是比較低的,國外廠商的資料庫,如:Oracle,Sybase,Informix,DB2都算是成本較高的產品。很多人認為,只要做出功能、效能、穩定性合適的國產資料庫,就能有一定的市場,至少價格能夠有優勢;即便市場不成功,作為科研教學也有一定價值,至少申請科研經費和政府補貼是個好題材。

  但是,這麼些年下來,這些產品在市場上並沒有產生大影響力。他們發展的這些年,也正好是本人在相應的國外知名廠商從業的這些年。從微觀的角度看,國產自主研發的資料庫敗在僅僅追求大而全,而技術創新不足、沒有特點,產品的穩定性一直上不去,也不敢做有挑戰性的效能測試。所以,穩定性、效能都無法讓市場信服。結果就是:稍微重要一點的系統根本沒人敢用。

  中國資料庫軟體這個市場,從80年代末一開始,就是伴隨改革開放的自由競爭市場,政府基本沒有對國產品牌的扶植和保護。因此,在國產產品的研發思路上,就不能夠簡單地模仿Oracle。Oracle的資料庫軟體,功能極為豐富,支援的語句非常全面,超過ANSI SQL的標準,程式碼量堪稱浩瀚。而一個國產的小廠商,要模仿Oracle開發一個資料庫系統,開發一個與Oracle全相容的資料庫(而我們很多政府客戶恰恰就在標書上要求這個,也不知道他們是支援國產資料庫還是打壓國產資料庫),就好比乞丐與龍王比闊:這注定是一條艱辛且難以成功的道路。

  那麼,看看同期國外的小廠商又是怎麼做的?

  Sybase採用多執行緒代替多程式開發了伺服器,一切圍繞client/server架構,成為當年的新銳;一家叫做Express Way的小公司開發了點陣圖索引,被Syabse收購,發展出Sybase IQ和列式儲存,直到今天依然是Sybase的重要產品;90年代初,加州大學伯克利的Michael Stonebraker教授提出了物件關聯式資料庫理論,並以此成立了Illustra公司,然後被Informix收購,推出Informix Universal Server;資料倉儲大師Ralph Kimball以多維關係模型理論,構建了RedBrick資料庫公司,在星型連線環節提供特別的索引技術,後來被Informix收購,成為單節點資料倉儲產品的主力;Netezza則是採用了可程式設計門陣列FPGA參與磁碟資料的掃描,最後被IBM收購,成為IBM資料倉儲的主力產品……

  因此,那些年間,我有一個感慨:每當我們認為關聯式資料庫的技術已經到頭了,已經是一個夕陽產業的時候,總會有一家極富創新的小公司跳出來,他們帶著令人耳目一新的想法贏得市場的尊敬與成功。而可惜的是,這一切都沒有出現在我們這幾個自主研發的國產資料庫“龍頭企業”身上。

  這樣的話,這些國產自主研發的資料庫產品就會典型地遭遇到:

  沒有特別的技術亮點和優勢;

  產品的穩定性差:客戶不敢用它承擔關鍵業務(甚至是普通業務);

  生態環境差:成型應用少,合作開發商少;

  產品技術發展滯後,與國外同類產品差距巨大;

  這實際上是一個惡性迴圈,跳不出這個圈子,產品和公司是沒辦法發展的。不過,這些公司有能力生存至今,除了人工便宜,還因為每年能得到政府一定程度上的補貼;儘管從政府的角度看,這些補貼是打水漂的。

  今天,我們對於這一類的產品的未來總體是不看好的,這是因為:20年對於一個高科技企業來說不是一個短暫的時間段。在90年代,即便是Oracle在整個市場普及的情況下,Sybase、Informix也還是在短短的幾年間發展起來,並佔據了一部分市場。如果一個高科技企業20年都沒能發展起來,一定有一些關鍵的內在因素制約,其實已經說明他們不可能發展起來了。這些因素改變了嗎?我們認為近兩年來,僅僅是外部輿論的環境,似乎更加註重了國產化,但其它內在的因素都沒有任何改變。與此同時,負面的因素也不少:其中最重要的是關聯式資料庫軟體發展的年代已經過去了,今天我們面臨的是經濟發展減速、開源軟體普及和雲端計算的轉型。

  依靠這一類“自主研發”的資料庫產品去支撐中國資料庫國產化基本是不可能的。世界的頂尖產品依然高速發展。今年2月,Oracle已經正式釋出18c這個版本了。我們的自主研發,也許還在以Oracle 9i為目標,而且還沒有令人信服的穩定性。

  在2007年以後,一些國內的資料庫公司意識到資料庫軟體應該跟隨資料管理市場的發展。而資料分析(OLAP)被認為是未來具有發展潛力的一塊(相對於傳統OLTP資料庫應用)。而且,資料倉儲類的平臺,對可靠性、時效性要求比較低。直覺是更適合於國產軟體進行率先突破。這樣,以神州通用、南大通用為代表的公司在分散式並行處理和列式儲存資料庫方面做了新的投入。

  然而,這一塊是一個發展迅速且技術路線存在爭議的領域。從歷史上看,大型的資料倉儲,採用Teradata的客戶佔據一大部分,Oracle在那個領域的投入並不大。因此,在資料倉儲上的國產化發展,並不能解政府的“自主可控”、替代、擺脫Oracle的燃眉之急。資料倉儲領域在大資料概念被炒作之前一直不怎麼受待見。另一方面,這個領域遇到的市場競爭也不小:資料倉儲規模大了,有Teradata和DB2的壓制;規模小了,有Greenplum的競爭;如果遇到界限模糊的,客戶就直接延用Oracle了。

  而今天,這個領域最大的競爭則是來自大資料的解決方案。本來,國產的資料倉儲平臺開始就是主攻中低端的(高階有Teradata的各種壓制)。但是,之前主要的對手Greenplum竟然宣佈開源了,背景是其東家Pivotal公司將重點轉向虛擬化和大資料了。這樣的話,專注於資料倉儲的國產資料庫有多了一個競爭對手,市場被進一步瓜分。要想進入良性迴圈就更加困難。

  引進原始碼

  引進資料庫原始碼發展國產資料庫,這在上個世紀對於國人來講還是不敢想的。如今,經濟發展了,有錢了;而且IBM也願意迎合國人對於國產化的訴求,將擱置多年的Informix原始碼拿出來“一馬(碼)多吃”,發揮餘熱。2015年以來,與IBM簽訂原始碼授權的公司有華勝天成、南大通用(Gbase 8t)和星瑞格。這三個公司成為以引進Informix原始碼發展國產資料庫的代表。

  在此,我們分析一下引進Informix原始碼到底解決了什麼問題?其實,資料庫技術發展到今天,國人並非不知道資料庫底層該怎麼開發,而是自己寫的程式碼在市場上磨練比較少,對穩定性信心不足,而這種信心的不足同樣來自客戶方面。所以,引進Informix的原始碼,一個核心的作用就是利用Informix以往在中國市場上的聲譽使客戶獲得信心。所以,這些拿著Informix原始碼的國產資料庫公司在做銷售工作的時候往往需要反覆向客戶說明:“這就是Informix,這就是世界級的資料庫產品!”,否則就體現不出與自主研發或抄襲開源的區別了。

  對於Informix而言,國內的客戶大致可以分為三類:

  第一類是Informix的老客戶,今天還在使用的。這些客戶之前是認可Informix,而且堅持到了今天。這些客戶中有一部分其實已經不願意繼續使用Informix(企業中的其它系統早已採用Oracle),僅僅是因為有老的應用跑在這個資料庫上;一旦應用升級換代,Informix資料庫也自然淘汰。還有一些客戶雖然可以使用Informix,但是否換成國產的版本還不確定,他們還可能等待IBM對於Informix的繼續支援、乃至升級。這部分客戶其實是國產Informix廠商最適合作為起步的客戶,但所剩的數量實在太少了。更嚴峻的是,IBM其實並沒有徹底出售Informix,IBM還在繼續釋出Informix的後續版本。雖然非常緩慢,但還是有可能比這幾個國產的廠商快一些,因為國產的廠商可是要從頭讀原始碼的,要等到他們也能出新版本,時間不會短。但是,國內的這部分客戶,一旦升級到IBM提供的Informix新版本,他們就絕難回到國產的Informix版本了,因為那就相當於降級了。這部分客戶留給國產Informix的時間已經不多。

  第二類是曾經採用過Informix的客戶,如今已經轉到Oracle上。這一類使用者或許還是認可Informix技術的,但要讓他們再回到國產的Informix上則非常難。對於這些客戶而言,回到Informix,不管是IBM的還是國產的,都如同走回頭路 - 很少有人願意走回頭路的。

  第三類則從來就不是Informix的客戶,對於這些人來講,當年就沒有認可Informix。今天,即便你說Informix是世界級的,你是中國的Informix,對於這類客戶的感受依然是遙遠和陌生的。

  因此,我們並不認為花錢引進Informix原始碼是國產資料庫發展的最佳途徑。這套原始碼的市場效應其實是有限的,在技術上的幫助也是有限的。在技術發展日新月異的年代,經過10多年的擱置,Informix的程式碼、產品和創新已經算不得先進,技術的細節暫不在此贅述了。

  需要指出的是:依靠程式碼的引進的另一個風險就是二次落後,這一點很多人可能還沒有意識到。從目前的情況看,國產Informix資料庫的程式碼在不遠未來就會與IBM自己的Informix分叉。即便基於Informix的原始碼,國產資料庫到底能走多遠,與世界先進水平之間的差距是擴大還是縮小,最終還是要靠自己。

  類似的案例就是國產戰鬥機的發展:在抗美援朝年代,我們得到了蘇聯的米格15以及後來的米格17。那時候是中國空軍與美國空軍在飛機裝備上差距最小的時期。我們在此基礎上發展出自己的殲5、殲6。但是,幾十年以後的科索沃戰爭、伊拉克戰爭的時候,我們的差距卻又變得那麼懸殊。因此,即便是今天的“世界級”,如果離開了強大的研發和創新實力,也會失去未來。

  今天,擁有Informix原始碼的國產資料庫廠商,如果真的想全面掌控Informix技術,研發的投入絕對是不小的。Informix的主要模組的原始碼就有2000多萬行,Informix當年在美國的核心研發隊伍就有超過200人,加上測試和周邊團隊,不下500人。要快速追趕世界先進水平,研發的規模不能小於這個(讀別人的程式碼其實比自己寫程式碼還要累!)。但目前的市場容量又不支援這樣的投入。這是一個現實的困境,是不容易突破的。無論是華勝天成、南大通用,還是星瑞格,都沒有像樣的、有規模的研發隊伍投入到Informix的原始碼掌握中。他們對Informix的研發投入,都不超過40人。

  2017年5月發生的事情徹底斷絕了Informix成為中國國產資料庫的希望:2017年5月,IBM把整個Informix業務賣給了印度公司HCL。印度的HCL是全面接管IBM Informix,不僅僅是程式碼,而是全部的團隊、公司、辦公場所。IBM Informix在美國的辦公樓直接換了Logo,員工全部簽了IBM的離職協議,同時簽印度HCL的入職。印度的“資料庫國產化力度”似乎更“大手筆”一些。這樣,國內的幾個半吊子Informix程式碼的廠商 - 華勝天成、南大通用、星瑞格,從此基本都斷了根!這幾年來,南大通用到處給國人宣傳的口號“讓中國人用上世界領先的資料庫”,恐怕要改成“讓中國人用上三哥的資料庫”。

  這已經表明,在Informix程式碼上發展國產資料庫這條路,基本已經走不通:國內的這幾個廠商面對十年前的巨量程式碼一籌莫展,要弄通又得花很多年,而且還是在資金、人員充足的情況下。即便到了那個時候(公司還存在),且不說他們與世界先進水平差多遠,就是比鄰國印度,都難以望其項背!

  在引進原始碼這類公司中,還需要一提的是浪潮。浪潮的K-DB資料庫實際上是從韓國引進的。但浪潮並沒有說明是否引進了原始碼。所以,我們把它歸為引進產品而非引進程式碼。從某種程度上講,還不能算是“自主可控”,或者“國產資料庫”,因為我們不能確信浪潮掌握的相關技術。我們知道,浪潮前些年採用了HP的安騰晶片推出自己的伺服器。但不幸的是,除了HP自身走下坡路,Oracle更是在後來宣佈Oracle資料庫不再支援安騰。因此,浪潮的安騰伺服器便陷入了無法提供Oracle資料庫軟體的窘境。一個不能執行Oracle資料庫的伺服器,市場份額的損失得有多大?為此,浪潮必須尋找一個Oracle的替代品,而且與Oracle越像越好,最好全相容。這樣,浪潮從韓國找到了K-DB。K-DB號稱是與Oracle全相容的資料庫。但是業界有傳聞說是K-DB是來源於早年Oracle原始碼的洩漏。這個雖然很難核實。但我們可以考察一下韓國市場的情況:如果K-DB真有浪潮說的那麼強,那它應該在韓國紅遍天才對,因為韓國每年在Oracle上的支出是非常大的(Oracle在韓國的銷售額近年來出現過好幾個季度是超過中國的!)。可是,我們並沒有發現K-DB在韓國很火。那麼原因很可能是K-DB真的有不方便的地方:韓國是需要美國來保護的,韓國對於美國軟體的智慧財產權上是不敢造次的。

  同樣,未來遇到某個國產資料庫號稱全部相容Oracle的時候一定要注意。因為Oracle最有特色的地方就是功能非常繁多,語句極端豐富,即便大部分都不常用。其它公司要是追求這個,在研發上就是乞丐與龍王爺比富!在2010年前後,IBM啟動了一個“破甲計劃”,就是在DB2資料庫中增加一個選項,使得DB2可以支援Oracle的各種語法。這個計劃花費了大量的投資,結果依然有很多Oracle的語句與用法不能夠支援。

  網際網路企業的雲資料庫

  除了上述的傳統國產資料庫之外,近年來,網際網路公司的雲端計算在市場上非常紅火。尤其是阿里雲,在中國的雲端計算市場上佔據了主導地位。網際網路公司擁有雄厚的資金實力,阿里巴巴在資料庫研發上有大量的投入,並在阿里雲上提供了自己的資料庫。那麼,雲端計算廠商在其雲端計算平臺上提供的資料庫能否承擔起資料庫國產化的重任?

  在此,我們認為這是存在侷限的:

  1、雲端計算廠商主要的業務是提供雲服務。因此,雲端計算供應商在雲上一般會提供多種資料庫平臺,如:MySQL,PostgreSQL,自研的資料庫。雲廠商自研的資料庫只是其中一種,並不見得有絕對的優勢。只是提供給客戶更多的選擇。

  2、雲端計算廠商開發的資料庫系統,市場目標是在自家的雲上提供服務,而不是作為傳統軟體賣許可證。因此,很多打算擺脫Oracle,採用國產資料庫,但又還沒打算上雲的使用者,就很難享受到這類產品。

  3、每個雲端計算供應商開發的資料庫只在自家的雲上提供服務,其它雲平臺當然無法執行。這樣,對於獨立軟體商來說,他們當然希望自己的軟體能夠執行在多個雲平臺上。在這個時候,他們的應用軟體如果採用某個雲端計算公司提供的資料庫,這就有些不方便了。所以,這些獨立軟體商需要一個類似傳統的、獨立的關聯式資料庫,這個資料庫可以在各個雲端計算平臺上執行。同樣的情況也發生在資料庫的使用者身上。

  4、目前的雲端計算公司提供的資料庫,其實也處於起步階段。只是在資金、支援服務上因為雲的關係,存在一定的優勢。未來的發展還要看市場。

  因此,雲端計算雖然在近年來發展迅速,而且也是未來的趨勢。但云計算平臺上的資料庫系統還不能取代市場上對傳統國產資料庫的需求。

  今天,國產資料庫確實處於一個非常尷尬的局面。很多政府相關的資料庫軟體招標都指明瞭要求國產資料庫。在這個過程中,政府實際上承受著不小的壓力:美國就此指責我們違反商業公平原則,從而在美國本土對於中國企業,如:華為、阿里,等等,進行限制與施壓。造成中國企業的損失。而在國內,真正做基層工作的人員,無論是出於對國產軟體的信心缺失,還是由於自身的保守,抑或是收取了Oracle的好處,又紛紛訴苦,聲稱他們的系統離不開Oracle。從而造成的一種局面,就是管理層似乎不懂技術,只講政治;而基層人員要為業務負責,又必須採購國外產品。同時,還有一幫同為政府部門的豬隊友,給Oracle出具證書,證明他們在中國有實驗室,Oracle產品可以算作是在中國生產的……

  從另一個角度看,但凡有國產資料庫參與的投標,只要是傳統的關聯式資料庫,無非就是人大金倉、達夢以及南大通用(Gbase 8t)。但這幾款產品,各自確存在這樣或那樣的硬傷,對於承載中國資料庫軟體國產化的重任力不從心。因此,我們必須尋求新的出路。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69920890/viewspace-2718750/,如需轉載,請註明出處,否則將追究法律責任。

相關文章