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