最近,關于數(shù)據(jù)庫國產(chǎn)化替代的話題甚是熱門。OSCHINA 開源中國特別邀請了歐冶云商股份有限公司數(shù)據(jù)庫首席薛曉剛就這一話題發(fā)表看法。
去 IOE 的背景,要從阿里巴巴去 IOE 談起,I 是 IBM 小型機大型機,O 是 Oracle 數(shù)據(jù)庫,E 是 EMC 存儲。這幾個搭配起來使得阿里輕松走過了最初的技術發(fā)展階段。這個配置組合也是當年這條街最靚的仔。這個穿搭在大型銀行和運營商中也很常見。這種組合的好處是就穩(wěn)定,而且非常穩(wěn)定。缺點可能只有一個,就是貴。
隨著阿里業(yè)務的增加,阿里人考慮繼續(xù)這樣使用的成本很高。再加上阿里開始了云計算的規(guī)劃,所以提出了去 IOE 的口號。這個在其他互聯(lián)網(wǎng)公司是不可能有的。因為其他互聯(lián)網(wǎng)公司一開始就沒有 IOE 所以不需要去。只有阿里一開始的架構是這樣的。所以只有阿里提出了。
阿里做阿里云,希望用戶上云。上云的核心就是數(shù)據(jù)上云。數(shù)據(jù)上云后存在哪里?自然是數(shù)據(jù)庫中,如果用的數(shù)據(jù)庫是 Oracle 的,那么可能要分給 Oracle 利潤(要采購許可)。所以阿里打算用 MySQL 以及后來自研替代 Oracle。
從最開始的去 IOE,直到現(xiàn)在還經(jīng)常看到各種大會上提到去 O,這用了十幾年,去掉了 I 和 E。有些企業(yè)完成了去 O,而有些企業(yè)還在使用 O。
那么為什么只提去 O,那不用去 DB2 和 SQLServer 嗎?本質上也要去的。只是其他的數(shù)據(jù)庫不如 Oracle 的使用廣泛,例如現(xiàn)在使用和維護 DB2 的人是很少了。之所以沒人提去 DB2,是因為從總體來說 DB2,已經(jīng)被去掉了。所以狹義去 O 是去掉 Oracle 數(shù)據(jù)庫,而廣義的去 O 其實可以擴大為去 M(美國化)。
在今天不少人觀點認為用 MySQL 去替代 Oracle 是無意義的。因為 MySQL 和 Oracle 同屬于甲骨文公司。甚至在有的場合中還會提到要去掉 MySQL。
當前數(shù)據(jù)庫國產(chǎn)化進程情況如何?
當前在信創(chuàng)和安可這些趨勢下,國產(chǎn)數(shù)據(jù)庫如雨后春筍般出現(xiàn)。在國內(nèi)某權威數(shù)據(jù)庫排行榜上,已經(jīng)有 280 多個數(shù)據(jù)庫了。實際上的數(shù)字可能比這個還要多一點。
在一些政府、金融、運營商行業(yè)都有一些國產(chǎn)化替換。這些替換其實不僅僅是數(shù)據(jù)庫了,還包括服務器、CPU、操作系統(tǒng)等等。從宣傳上看有些是全棧替換,有些是部分替換。也還有一些公司或者企業(yè)沒有替換。然而這些都是國產(chǎn)廠商的宣傳,至于實際的替換情況只有用戶自己知道。而即使替換的用戶也沒有進行相關的宣傳,這就使得整個情況非常的模糊。不過這個過程還在繼續(xù),還是會有一些系統(tǒng)從 Oracle、DB2、SQLServer 等數(shù)據(jù)庫切換到國產(chǎn)化上來的。只是現(xiàn)在不確定因素太多了。
今年年初,TiDB、TDengine、TDSQL、OceanBase 四位數(shù)據(jù)庫界掌門人在一場直播中大致達成一致,三年后在中國健康運營的數(shù)據(jù)庫不超過 20 家。所謂健康運營是,企業(yè)能有正常營收,員工發(fā)薪正常。目前國產(chǎn)數(shù)據(jù)庫有 280 多個產(chǎn)品,有的一個公司有幾個產(chǎn)品。即使這樣也是有絕大部分產(chǎn)品或者公司會因為無法盈利而退出舞臺。用戶現(xiàn)在也意識到了這一點,也在等情況明朗后再去選擇。沒有企業(yè)愿意看到花了很大代價切換的數(shù)據(jù)庫無人維護了,不得不繼續(xù)再次替換。
國產(chǎn)數(shù)據(jù)庫有完全自研的,例如達夢、OceanBase 等,也有一些是基于 MySQL 做改造的,還有一些事基于 PostgreSQL 改造的,還有購買外國源碼然后進行修改的。
替代 Oracle 的難點在哪里?
技術上,Oracle 確實領先,在數(shù)據(jù)庫領域是一個標桿一樣的存在。即使我們國產(chǎn)數(shù)據(jù)庫的頭部企業(yè)都認為自己和 Oracle 有較大的差距,作為學習者不斷地在向 Oracle 學習。
Oracle 領先的其實不僅僅是技術,還有設計理念和前瞻性。2020 年信通院發(fā)布的白皮書中寫了數(shù)據(jù)庫的未來幾大趨勢,而在那時候這幾個趨勢當時 Oracle 已經(jīng)部分實現(xiàn)和深度實現(xiàn)了。其實 Oracle 產(chǎn)品線很多,不僅僅是數(shù)據(jù)庫。其中間件、硬件、操作系統(tǒng)等等是全方面的輸出。
具體到幾個方面:
兼容性。對于替換國產(chǎn)數(shù)據(jù)庫,兼容性是一件繞不開的話題,特別是對于存量系統(tǒng)來說,大多數(shù)重要系統(tǒng)是運行在 Oracle 數(shù)據(jù)庫上的,那么對于 Oracle 的基本 SQL 語法、PL/SQL、存儲過程、觸發(fā)器等的兼容性肯定是十分重要的,畢竟這涉及代碼變更的問題。如果在國產(chǎn)數(shù)據(jù)庫替換過程中出現(xiàn)業(yè)務適配新數(shù)據(jù)庫代碼變更量太大、數(shù)據(jù)庫功能缺失需要業(yè)務側代碼補充、適配分布式數(shù)據(jù)庫過程中對數(shù)據(jù)庫設計和業(yè)務邏輯變更等現(xiàn)象的話,開發(fā)層面對國產(chǎn)數(shù)據(jù)庫的抵觸會非常大。
性能。性能和硬件以及優(yōu)化器都有很大的關系。優(yōu)化器這方面目前沒有能超過 Oracle 優(yōu)化器的。因為這些底層都是數(shù)學算法。2021 年信通院發(fā)布的數(shù)據(jù)庫發(fā)展白皮書顯示,我國數(shù)據(jù)庫企業(yè)針對數(shù)據(jù)庫領域的平均專利數(shù)量(含國內(nèi)外專利)為 38 個,最高為 500 個左右規(guī)模,數(shù)量為 0 的企業(yè)個數(shù)是 19 個,占比 24%。擁有專利數(shù) 0-4 個的企業(yè)占比最高為 51%,專利數(shù) 5-10 個的企業(yè)次之,占比 14%,專利數(shù) 21-50 個的企業(yè)數(shù)量排名第三,占比 12%。從企業(yè)專利數(shù)量上看,Oracle 以 1.4 萬個全球領先,SAP 居次席。
穩(wěn)定性。Oracle 的穩(wěn)定性還是毋庸置疑的,這也就是為什么在過去那么多年中,其一直占據(jù)著領導地位,以及使用如此廣泛。企業(yè)負責人都不希望看到自己的數(shù)據(jù)庫經(jīng)常出問題,每次數(shù)據(jù)庫的問題都可能導致故障,從而影響到在線業(yè)務。不僅僅要面對直接和間接的經(jīng)濟損失,還有問責的壓力。
Oracle 等國外數(shù)據(jù)庫有足夠的全球市場,專心在技術上投入做數(shù)據(jù)庫,而國產(chǎn)數(shù)據(jù)庫廠商只能在國內(nèi)有限的數(shù)據(jù)庫市場內(nèi)卷,需要投入大量的內(nèi)卷、惡性競爭和關系處理上,無法專心把全部精力放在做數(shù)據(jù)庫上。甚至還是為了如何生存而謀劃。
國產(chǎn)數(shù)據(jù)庫的出現(xiàn)并不是技術問題,而是其他因素。
數(shù)據(jù)庫領域的人都知道,在信創(chuàng)活動結束之后就沒有替換動力了。而最終國內(nèi)市場無法容得下幾百家供應商,所以大部分國產(chǎn)數(shù)據(jù)庫的消失也不是技術問題。
有哪些能夠替代 Oracle 的國產(chǎn)數(shù)據(jù)庫?
這個替代要講清楚是怎么替代?如果說就是把系統(tǒng)關停,然后把數(shù)據(jù)導過來,然后再修改數(shù)據(jù)庫的連接字符串就可以和之前一樣正常使用而且穩(wěn)定的。目前沒見過也沒聽說過。
如果說換了一個國產(chǎn)數(shù)據(jù)庫,然后把鏈接這個數(shù)據(jù)庫的所有業(yè)務系統(tǒng)的軟件代碼進行修改(這個修改可能是 30-100%),即軟件重寫適配數(shù)據(jù)庫或者部分需求和功能放棄,那么這樣的替換還是有一些的。OceanBase、TiDB、TDSQL 等都有在不同程度上有,具體的都是應實際情況而定。
這些替換的優(yōu)勢,可能在于滿足了政治要求。
這些替換的劣勢,有多方面:
由于同等硬件下不如 Oracle 的性能,所以增加硬件導致成本的上升。或者分布式數(shù)據(jù)庫的硬件就是比集中式硬件的多導致的硬件成本上升。
由于數(shù)據(jù)庫特性和功能的缺失,所以應用程序需要改造的成本上升。這部分可能占替換總成本的 60%-80%。因為這是調(diào)動大量應用開發(fā)人員重寫適配的過程。
由于穩(wěn)定性上不如 Oracle,所以需要增加大量運維人員,導致運維的成本上升。
由于部分國產(chǎn)數(shù)據(jù)庫需要許可才可以運行,所以增加了大量的許可費用。相比較之前很少采購 Oracle 許可或者甚至不采購許可來說,這部分采購費用占比很大。
以上這些成本可能會是使用 Oracle 數(shù)據(jù)庫的數(shù)倍甚至幾十倍甚至上百倍。而很多計算中都忽略了第二和第三項的成本。
現(xiàn)有國產(chǎn)數(shù)據(jù)庫跟 Oracle 相比,有多大的差距?
從技術上來說,我們和 Oracle 相比有代差。
可能不同的人有不同的見解。我個人感覺有以下多方面的差距(但是不限于此):
數(shù)據(jù)庫的優(yōu)化器上:有人說為什么 Oracle 快,你可能不知道多少滿頭白發(fā)的數(shù)學教授在那里研究著這些。有人說:你別逼我,逼急了我什么都做的出來。” “是嗎?,那你把這道數(shù)學題給做做?” 人被逼急了還真不是什么都做的出來,起碼數(shù)學就不是。各種復雜查詢的核心是優(yōu)化器和統(tǒng)計信息。而這全部都是數(shù)學問題。沒有在數(shù)學上的基礎投入是無法在這個領域攻堅克難的。
體系架構上:如今越來越多的國產(chǎn)數(shù)據(jù)庫考慮 RAC 架構。在經(jīng)歷了互聯(lián)網(wǎng)的分布式數(shù)據(jù)庫的洗禮后,越來越多的用戶覺得集中式更加適合自己。所以才有了各種國產(chǎn)數(shù)據(jù)庫廠商開始實現(xiàn) RAC 的計劃,達夢、優(yōu)炫等。即使分布式數(shù)據(jù)庫廠商在研發(fā)過程中發(fā)現(xiàn) Oracle 的各種體系設計,沒有一個是多余的,都是設計極其精妙的。而這些很多設計都是 30 年前甚至更早就已經(jīng)設計到位的。
與操作系統(tǒng)的融合上:數(shù)據(jù)庫是運行在操作系統(tǒng)之上的,如何與 CPU 打交道?SQL 調(diào)用指令集的多少都是有講究的。甚至有些操作是繞過操作系統(tǒng)直接操作的。這些都是需要深耕操作系統(tǒng)才能解決的。
與硬件的融合上:數(shù)據(jù)庫必然要和存儲設備打交道。數(shù)據(jù)庫的優(yōu)化幾乎等同于 IO 優(yōu)化。所以 Oracle 直接做出來自己的存儲。這些存儲上都是帶有 CPU 的,更好的存儲和讀取數(shù)據(jù)上發(fā)揮了很大的作用。做數(shù)據(jù)庫是從上至下的深入解決。
趨勢把握上:數(shù)據(jù)庫的多模和超融合這些都是 Oracle 在引領著數(shù)據(jù)庫技術的前進方向。我們定義為趨勢的,Oracle 基本都是已經(jīng)實現(xiàn)的。而很多理念從設計到實現(xiàn)需要 8-10 年的過程。
國產(chǎn)數(shù)據(jù)庫未來要怎么走?
我個人角度認為,應該靜下心來踏實的做技術。
最好是沒有政治因素的干擾去市場上競爭,避免大躍進式的百家齊放,而是規(guī)范市場,讓國內(nèi)外數(shù)據(jù)庫廠商同臺競爭。用戶結合自己的預算進行抉擇,是選擇廉價的還是性價比高的,讓一切回歸到技術本身來。而不能用政策限制其他產(chǎn)品進入,只能強制使用國產(chǎn)。這樣會導致自我封閉和外部的排斥。既然我們用政策限制其他人,那么對等的就會出現(xiàn)別人限制我們。從而更加無法走出去。
如果真正能走出去,在國外用得起來,那么就是國產(chǎn)數(shù)據(jù)庫的成功。中國的高鐵就是因為走出去了才成為了中國的一張名片。
作者簡介:
薛曉剛,現(xiàn)任歐冶云商股份有限公司數(shù)據(jù)庫首席。曾服務于政府、公安、交通、安防行業(yè),從事過大型項目管理,設計和運維多個單表 100 億,單機 100TB 的數(shù)據(jù)庫。目前負責高可用、業(yè)務連續(xù)性和高并發(fā)數(shù)據(jù)架構設計和運維管理。
Oracle ACE-Pro(Oracle 和 MySQL 方向),Oracle OCP/MySQL OCP 及 OCP 講師。PostgreSQL 的 PGCE 和 PCP 認證,PostgreSQL ACE Partner。墨天輪 MVP,TiDB MVA,ITPUB 論壇內(nèi)存數(shù)據(jù)庫版主、核心專家、金牌顧問,墨天輪社區(qū)特聘金牌講師,機械工業(yè)出版社專家委員會委員。
審核編輯:湯梓紅
-
數(shù)據(jù)庫
+關注
關注
7文章
3794瀏覽量
64362 -
開源
+關注
關注
3文章
3312瀏覽量
42473 -
Oracle
+關注
關注
2文章
289瀏覽量
35123
原文標題:國產(chǎn)數(shù)據(jù)庫的出現(xiàn)和消失,都不是技術問題
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論