去“IOE”這個概念,最早由王堅院士在剛剛加入阿里時提出,其目標(biāo)是將IBM 的小型機、Oracle數(shù)據(jù)庫、EMC存儲設(shè)備從阿里的IT體系中去除,代之以自主研發(fā)的系統(tǒng)。
而隨著我國IT技術(shù)棧的不斷演進,去“IOE”已經(jīng)由一個企業(yè)的目標(biāo),變成了整個行業(yè)的目標(biāo),也就是我國必須使信息系統(tǒng)數(shù)據(jù),運行在自研系統(tǒng)之上,以防止數(shù)據(jù)丟失造成的一系列嚴(yán)重后果。
作為一名長期在金融機構(gòu)工作的IT人,提起對外核心技術(shù)依賴時,就不由得想起銀行業(yè)的心臟——支付系統(tǒng)(CNAPS),原本都是世界銀行的援建產(chǎn)物,直到2013年底我們才用自研的二代支付系統(tǒng)將其取代。
回想“IOE”這些年,我國的確在一些很多IT領(lǐng)域取得了長足的進步,比如目前我國移動支付水平就實現(xiàn)了對歐美國家的反超,足以獨步世界。
近日,金山辦公正式登陸科創(chuàng)版,也標(biāo)志著雷軍夢圓國產(chǎn)Office的“英雄之路”??梢钥吹竭@種應(yīng)用級別的自主掌控,對于我國IT業(yè)來說已不是難事。
而且隨著國產(chǎn)云計算服務(wù)水平的不斷發(fā)展,國外廠商的小型機和存儲,已經(jīng)不多見,不過IOE中的O也就是Oracle、DB2等國外廠商的數(shù)據(jù)庫,還依舊在我國市場大行其道。
這也反映出,近年來我國IT的一個現(xiàn)象,那就是硬件集成與應(yīng)用等領(lǐng)域強,但是基礎(chǔ)設(shè)施突破少。
雖然國產(chǎn)數(shù)據(jù)庫,相比前幾年大火的O2O、共享經(jīng)濟等概念,并沒有獲得資本的大力追捧,但是我們欣喜地看到,還是有很多IT人在堅持此道。接下來就帶大家一起來盤點一下國產(chǎn)數(shù)據(jù)庫的發(fā)展現(xiàn)狀。
支付寶的核心:OceanBase
OceanBase 是螞蟻金服自研的金融級分布式關(guān)系數(shù)據(jù)庫,號稱每一行代碼都是自主編寫的。
在十年前,阿里的IT人,決定自主研發(fā)一款分布式金融級數(shù)據(jù)庫,歷經(jīng)磨練后OceanBase已經(jīng)能在普通硬件上,實現(xiàn)金融級高可用,并在業(yè)內(nèi)首創(chuàng)“三地五中心”城市級故障自動無損容災(zāi)新標(biāo)準(zhǔn),同時具備在線水平擴展能力,并且勇奪TPC的冠軍。
深植于場景需求混布數(shù)據(jù)庫:Hubble
Hubble是天云數(shù)據(jù)研發(fā)的HTAP數(shù)據(jù)庫。所謂HTAP其實就是混合了TP和AP兩種模式的數(shù)據(jù)庫。
坦率講,筆者在剛開始聽到一種產(chǎn)品,既能提供TP服務(wù)、又能提供AP服務(wù)時,感到非常驚訝。
因為,OLAP(On-Line Analytical Processing)是指聯(lián)機分析技術(shù),打個比方,OLAP就像是私人飛機服務(wù),不計較成本但是要求響應(yīng)速度,主要用于用戶聯(lián)機交易的處理響應(yīng)。
而OLTP(on-line transaction processing),則是指聯(lián)機事務(wù)處理,OLTP的最大訴求就是低成本的處理海量數(shù)據(jù),有點像海上運輸,雖然處理數(shù)據(jù)量大但是速度慢,適合于客戶歷史帳單查詢、客戶畫像分析等大數(shù)據(jù)方面的應(yīng)用。
以前AP應(yīng)用的流程比較固定,就像一個儀表盤,只有一兩個數(shù)倉的管理員在看,但現(xiàn)在那些原本投在大屏的可視化項目,已經(jīng)全部被推送到了移動端,這也就是TP+AP的個性化數(shù)字倉庫的需求。
比如一個營業(yè)廳應(yīng)用有六萬多人,同時在線需要至少五百個并發(fā)/秒,理財經(jīng)理要在某一時刻,看到大客戶的結(jié)息、凈值等一系列的數(shù)據(jù)服務(wù),且都是個性化的。
這也就意味著,目前在應(yīng)用領(lǐng)域,有強烈的需求把AP推到TP的場景里,這兩者有機結(jié)合,對于大多數(shù)人來說,還只是個想法。
不過這兩個看似矛盾的目標(biāo),竟然真的被天云數(shù)據(jù),結(jié)合到一起了。其關(guān)鍵技術(shù)有以下幾個方面:
一是在KV數(shù)據(jù),再加一層KV索引、以適應(yīng)高并發(fā)的TP需求。
二是通過將全局事務(wù)向本地事務(wù)鎖進行轉(zhuǎn)換,來保證系統(tǒng)的分布式計算一致性。
三是通過資源控制模塊,完成TP與AP的結(jié)合使用。
SQL引擎與NoSQL存儲的結(jié)合:巨杉數(shù)據(jù)庫
SequoiaDB 巨杉數(shù)據(jù)庫,是一款金融級分布式關(guān)系型數(shù)據(jù)庫,也是一款開源產(chǎn)品(Github地址:)。筆者認(rèn)為SequoiaDB最大的貢獻(xiàn)在于將標(biāo)準(zhǔn)SQL、事務(wù)與NoSQL的分布式存儲相結(jié)合。
巨杉數(shù)據(jù)庫使用JSON為標(biāo)準(zhǔn)存儲格式,既可以描述關(guān)系型結(jié)構(gòu),能最大限度保留現(xiàn)有的應(yīng)用資產(chǎn);也可以描述非關(guān)系型結(jié)構(gòu)。
這些使巨杉,可以把非結(jié)構(gòu)化的文件和結(jié)構(gòu)化的描述項一起存儲,而不是索引+文件存儲,從而實現(xiàn)適當(dāng)降低范式維度和JOIN操作的復(fù)雜度。
而且,在分布式存儲的基礎(chǔ)上,其還添加了分布式SQL引擎,借此可以提供高并發(fā)、低延時和批量計算SQL能力以及ACID和事務(wù)支持。
其整體架構(gòu)如下:
巨杉數(shù)據(jù)庫在金融領(lǐng)域應(yīng)用案例很多,相信他們SQL引擎與NoSQL存儲的理念還會支撐他們越走越遠(yuǎn)。
產(chǎn)品線齊全的數(shù)據(jù)庫:GBase和達(dá)夢
武漢達(dá)夢和天津南大通用,絕對算得上是國內(nèi)數(shù)據(jù)庫廠商中產(chǎn)品線最齊全的兩家了。據(jù)筆者不完全統(tǒng)計,南大通用打造了GBase 8a、8t、8m、8s、8d、UP、InfiniData一體機等多款數(shù)據(jù)庫軟硬件產(chǎn)品,而達(dá)夢也不遑多讓他們產(chǎn)品線包括了達(dá)夢7、8、ETL、TDD、HS、MPP等等。下面挑重點向大家介紹。
GBase 8a:就是我們?nèi)粘K熘挠糜诖髷?shù)據(jù)分析的系統(tǒng)庫。
GBase 8a能夠?qū)崿F(xiàn)大數(shù)據(jù)存儲管理和高效分析,據(jù)測試,它能在PB級數(shù)據(jù)規(guī)模下,實現(xiàn)數(shù)據(jù)查詢的秒級響應(yīng);實現(xiàn)千億級文本條目全文檢索的秒級響應(yīng);并且提供全過程可視化的數(shù)據(jù)查詢分析及展現(xiàn)工具。
GBase 8t:一款對標(biāo)Oracle的數(shù)據(jù)庫。據(jù)稱,其OLTP事務(wù)處理性能,已達(dá)到Oracle數(shù)據(jù)庫的水平,能夠在90%以上的場景中替代Oracle。
GBase 8t的關(guān)鍵技術(shù)有如下幾方面:
一、事務(wù)機制
完全支持傳統(tǒng)主流事務(wù)數(shù)據(jù)庫的事務(wù)機制鎖技術(shù),有效支撐高度并發(fā)的事務(wù)密集型應(yīng)用場景。
二、存儲技術(shù)
GBase 8t產(chǎn)品的存儲有物理的和邏輯的兩種結(jié)構(gòu)。物理結(jié)構(gòu)中包含數(shù)據(jù)卷(Chunk)、數(shù)據(jù)段(Extent)和數(shù)據(jù)頁(Page);邏輯結(jié)構(gòu)包含數(shù)據(jù)空間(DbSpace)和表空間(TableSpace)。
三、索引技術(shù)
GBase 8t產(chǎn)品提供了索引技術(shù)來提升數(shù)據(jù)查詢操作的性能。GBase 8t產(chǎn)品支持的索引包括B-Tree索引、R-Tree索引、函數(shù)索引和用戶自定義索引。
四、高可用技術(shù)
GBase 8t產(chǎn)品提供了高可用集群技術(shù),使用這些技術(shù)可以滿足數(shù)據(jù)復(fù)制、共享存儲、同城備份、遠(yuǎn)程容災(zāi)和兩地三中心的整體災(zāi)備解決方案的要求。
當(dāng)前,Gbase和達(dá)夢的產(chǎn)品均已經(jīng)在金融、電信、電力等多個行業(yè)得到應(yīng)用與驗證了,使用場景非常廣泛可謂我國國產(chǎn)數(shù)據(jù)庫的雙子星座了。
物聯(lián)網(wǎng)時代的數(shù)據(jù)庫TDengine、CTSDB
隨著互聯(lián)網(wǎng)的高速發(fā)展、大數(shù)據(jù)的迅速膨脹和物聯(lián)網(wǎng)的飛速崛起,我們發(fā)現(xiàn)生活和工作中的大部分?jǐn)?shù)據(jù)漸漸和時間產(chǎn)生了關(guān)聯(lián)。
比如,微信運動的實時步數(shù)、股票每天的收盤價格、共享單車的設(shè)備狀態(tài)等等。為了存儲這些與時間相關(guān)的數(shù)據(jù)使用傳統(tǒng)數(shù)據(jù)庫其實問題很多。
比如,傳統(tǒng)關(guān)系型數(shù)據(jù)庫,在存儲海量的時序數(shù)據(jù)場景下,存在的問題:
1.存儲成本大:對于時序數(shù)據(jù)壓縮不佳,需占用大量機器資源;
2.維護成本高:單機系統(tǒng),需要在上層人工的分庫分表,維護成本高;
3.寫入吞吐低:單機寫入吞吐低,很難滿足時序數(shù)據(jù)千萬級的寫入壓力;
而Hadoop等NoSQL數(shù)據(jù)庫也有問題:
1.數(shù)據(jù)延遲高:離線批處理系統(tǒng),數(shù)據(jù)從產(chǎn)生到可分析,耗時數(shù)小時、甚至天級;
2.查詢性能差:不能很好的利用索引,依賴MapReduce任務(wù),查詢耗時一般在分鐘級。
讓你以在物聯(lián)網(wǎng)時代需要與之特點相應(yīng)的數(shù)據(jù)庫產(chǎn)品來提供服務(wù),目前我國在時序數(shù)據(jù)庫方面主要有TDengine、CTSDB兩款產(chǎn)品。
這里主要帶大家了解一下騰訊時序數(shù)據(jù)庫CTSDB:CTSDB(Cloud Time Series Database)是一種分布式、高性能、多分片、自均衡的時序數(shù)據(jù)庫,針對時序數(shù)據(jù)的高并發(fā)寫入、存在明顯的冷熱數(shù)據(jù)、IoT用戶場景等做了大量優(yōu)化,同時也支持各行業(yè)的日志解析和存儲,其架構(gòu)如下圖所示。
在CTSDB和磁盤之間有一層FileSystem Cache的系統(tǒng)緩存,以使得能夠更快地處理搜索請求。
作為騰訊唯一的時序數(shù)據(jù)庫,CTSDB支撐了騰訊內(nèi)部20多個核心業(yè)務(wù)(微信彩票、財付通、云監(jiān)控、云數(shù)據(jù)庫、云負(fù)載等)。
其中,云監(jiān)控系統(tǒng)的記錄了騰訊內(nèi)部各種軟硬件系統(tǒng)的實時狀態(tài),CTSDB承載了它所有的數(shù)據(jù)存儲,在每秒千萬級數(shù)據(jù)點的寫入壓力、每天20TB+數(shù)據(jù)量的寫入場景下穩(wěn)定運行,足以證明CTSDB可以穩(wěn)定支撐物聯(lián)網(wǎng)的海量數(shù)據(jù)場景。
互通有無,共同成長
除了上述這些數(shù)據(jù)庫之外,我國還有不少基于MySQL、PosgreSQL等開源數(shù)據(jù)庫內(nèi)核研發(fā)的產(chǎn)品。
比如騰訊基于MySQL的TDSQL、華為基于PosgreSQL的GaussDB、中興同樣基于MySQL的GoldenDB,他們也都得到了相當(dāng)廣泛的應(yīng)用.
尤其是承載著微眾銀行和威富通等多個重量級金融應(yīng)用的TDSQL,憑借遠(yuǎn)超開源版MySQL的性能,真正做到了青出于藍(lán)而勝于藍(lán)。
可以說,我國自研數(shù)據(jù)庫在各個方面,都已取得極大進步,這里也呼吁,國內(nèi)數(shù)據(jù)庫廠商能盡量將社區(qū)版本開源,與業(yè)界互通有無,共同成長。
(轉(zhuǎn)載)