TopDB產(chǎn)品分析
1.1產(chǎn)品的背景
1.2用戶需求和產(chǎn)品定位
1.3相關(guān)數(shù)據(jù)庫的分析
1.4TopDB架構(gòu)
1.5
TopDB的未來規(guī)劃
?
1.1產(chǎn)品的背景
自從斯諾克事件引發(fā)國家對信息安全的憂慮,要求金融、通訊等核心領(lǐng)域逐漸使用自主可控的軟件、硬件來替代傳統(tǒng)的IOE廠商。其中重中之重就是數(shù)據(jù)庫,而在銀行業(yè),DB2和Oracle兩家就占了70%以上的份額。從政治層面上來說,國家已要求各大銀行開始逐漸嘗試使用自主可控的數(shù)據(jù)庫來替代傳統(tǒng)的Oracle、DB2。同時也可以看出,近年來隨著互聯(lián)網(wǎng)金融領(lǐng)域的崛起,銀行也存在對成本控制的問題,之前動輒數(shù)十萬一個license的數(shù)據(jù)庫對于銀行來說,也同樣需要考慮成本和收益。除此之外,不滿足傳統(tǒng)單機(jī)數(shù)據(jù)庫,要求數(shù)據(jù)庫替代產(chǎn)品具有可擴(kuò)展性等要求。這些要求是銀行領(lǐng)域要求使用新型數(shù)據(jù)庫的背景。
?
1.2產(chǎn)品定位
考慮銀行的核心需求:
1.要求數(shù)據(jù)庫自主可控,這要求數(shù)據(jù)庫要么使用開源產(chǎn)品,要么自研,或者兩者結(jié)合。
2.保證數(shù)據(jù)庫具有傳統(tǒng)Oracle、DB2的基本特性,可以理解為具有數(shù)據(jù)庫的ACID特性。
3.要求具有可擴(kuò)展性,暗含使用MPP分布式并行處理架構(gòu)。
4.對現(xiàn)有系統(tǒng)系統(tǒng)影響最小
5.其他數(shù)據(jù)庫需求,如高可用、異地容災(zāi)等。
基于以上背景,我們的產(chǎn)品定位是能夠替代Oracle、DB2的具有可擴(kuò)展性的分布式關(guān)系型數(shù)據(jù)庫。要求滿足:
1.是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫
2.滿足數(shù)據(jù)庫的ACID屬性,尤其是銀行的事務(wù)屬性。
3.同時支持OLTP和OLAP
4.采用分布式架構(gòu),具有高可擴(kuò)展性
從以上的定位可以看出,我們的數(shù)據(jù)庫首先仍然是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,具有分布式架構(gòu),同時需要在分布式架構(gòu)下解決事務(wù)實(shí)時一致性問題。從客戶的角度來說,本身銀行業(yè)雖然是IT行業(yè)最重要的領(lǐng)域,但是也是對新技術(shù)最保守的行業(yè)。因此,要想逐步替代傳統(tǒng)的Oracle、DB2數(shù)據(jù)庫來說,最好的辦法還是使用通用的關(guān)系型數(shù)據(jù)庫來替代。同時,在此基礎(chǔ)上,使用并行處理框架,采用分布式架構(gòu)。采用分布式架構(gòu)帶來的好處是很容易進(jìn)行線性擴(kuò)展,包括存儲、性能上的擴(kuò)展。但是分布式架構(gòu)帶來的問題是CAP理論決定的,在分布式情況下,一致性和可服務(wù)性難以同時支持。因此需要在可服務(wù)性和一致性之間尋找一個平衡點(diǎn)。
?
1.3相關(guān)數(shù)據(jù)庫產(chǎn)品的分析
? ? 數(shù)據(jù)庫按照其架構(gòu)特點(diǎn),可以分為傳統(tǒng)的關(guān)系型數(shù)據(jù)庫OldSQL、NoSQL、NewSQL。
? ? 從技術(shù)路線上來說,NoSQL主要是非結(jié)構(gòu)化的形式來存儲數(shù)據(jù),大多數(shù)是基于KV的形式來存儲數(shù)據(jù),要求查詢場景基本固定,特別適用于互聯(lián)網(wǎng)行業(yè)。其代表為DynamoDB、BigTable、HBase等,使用的廠家包括:Google、Facebook、阿里等。NoSQL處理非結(jié)構(gòu)化數(shù)據(jù)占據(jù)優(yōu)勢,但是對于銀行系統(tǒng)來說,最大問題還是不滿足ACID屬性。
? ? ?
NewSQL從技術(shù)上來講,一般是以列式形式存儲數(shù)據(jù),這也決定了其批量讀取速度快、存儲空間小的特點(diǎn),適用于OLAP分析型應(yīng)用。但是對于現(xiàn)階段的銀行應(yīng)用來說,其最大問題是實(shí)時的更新刪除速度響應(yīng)比較慢,無法滿足金融行業(yè)實(shí)時性要求。其代表的廠商有Vertica、Greenplum、GBase等。
? ? 而OldSQL也即基于行式存儲的關(guān)系型數(shù)據(jù)庫,大的廠商有如Oracle、DB2,但是其本身成本大,同時對于一些海量數(shù)據(jù),其本身也無法很好支撐,存在性能上的天花板。另外還有一些優(yōu)秀的開源數(shù)據(jù)庫如MySQL、PostgreSQL、MariaDB等,這些數(shù)據(jù)庫本身在中小企業(yè)、互聯(lián)網(wǎng)領(lǐng)域應(yīng)用也都比較多。其本身最大的問題是本身數(shù)據(jù)庫可以支撐的數(shù)據(jù)有限,并不支持海量的數(shù)據(jù)。
總結(jié)如下:
數(shù)據(jù)庫類型
|
最大特性
|
優(yōu)勢 |
劣勢
|
代表廠商
|
OldSQL
|
1.基于行的關(guān)系型數(shù)據(jù)庫
2.支持ACID
|
產(chǎn)業(yè)鏈成熟
同時支持OLAP和OLTP
|
擴(kuò)展性差
價格高昂
性能有限
|
DB2 Oracle
MySQL PostgreSQL
|
NewSQL
|
1.基于列的關(guān)系型數(shù)據(jù)庫
2.支持ACID
?
|
批量讀取速度快
存儲壓縮
?
|
對于OLTP實(shí)時型差
|
Vertica
Greenplum
GBase
|
NoSQL
|
基于KV存儲
內(nèi)存數(shù)據(jù)庫 |
讀取速度快
海量存儲
可擴(kuò)展性強(qiáng)
適用于OLAP
|
產(chǎn)業(yè)鏈不成熟
對事務(wù)支持有限
?
|
HBase DynamoDB BigTable Memecached
|
?
1.4TopDB產(chǎn)品分析
TopDB架構(gòu)如上圖所示,類似于Greenplum、阿里的TDDL架構(gòu)。下面簡單分析下TopDB的架構(gòu)
數(shù)據(jù)存儲層是采用MPP架構(gòu),數(shù)據(jù)根據(jù)規(guī)則分配在所有數(shù)據(jù)庫上,每個數(shù)據(jù)庫采用主備同步保證系統(tǒng)高可用性。對于前置中間件來說,一方面他需要將客戶端下發(fā)來的SQL語句處理后下發(fā)到對應(yīng)的數(shù)據(jù)節(jié)點(diǎn)上,另外一方面他需要將底層數(shù)據(jù)庫返回的結(jié)果匯聚處理后返回給客戶端。而對于數(shù)據(jù)庫事務(wù),通過全局事務(wù)處理中心來進(jìn)行分布式事務(wù)控制。
?
其架構(gòu)優(yōu)點(diǎn):
1.采用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,能夠保持ACID屬性。
2.采用分布式架構(gòu),數(shù)據(jù)分布在不同節(jié)點(diǎn)上,可擴(kuò)展性強(qiáng)
3.數(shù)據(jù)節(jié)點(diǎn)、前置中間件節(jié)點(diǎn)都采用集群的方式對外提供服務(wù),本身不會出現(xiàn)單節(jié)點(diǎn)的故障和性能瓶頸。
4.分布式架構(gòu),請求可以均分到多個數(shù)據(jù)節(jié)點(diǎn)上,其性能強(qiáng)勁,支持高并發(fā)
?
架構(gòu)缺點(diǎn):
1.對于大規(guī)模的跨庫關(guān)聯(lián)查詢,其速度回比較慢(需要將數(shù)據(jù)撈出來后,放在前置中間計算結(jié)果)
2. 對于單個SQL語句來說,其需要經(jīng)過前置中間件分析,執(zhí)行的時延會增長。SQL語句的時延依賴于前置中間件的性能。
?
架構(gòu)難點(diǎn):
1.前置中間件需要做語法解析和SQL計劃,這塊就需要對SQL語言的分析過程了解透徹。
2.由于數(shù)據(jù)分布在多個節(jié)點(diǎn),必須通過特殊機(jī)制才能保證分布式事務(wù)的實(shí)時一致性。
?
架構(gòu)分析:
? ? ? ? 從TopDB的架構(gòu)可以看出,底層的數(shù)據(jù)庫集群仍然是MySQL這樣的關(guān)系型數(shù)據(jù)庫,多個關(guān)系型數(shù)據(jù)庫上構(gòu)建成數(shù)據(jù)庫集群,再加上前置中間件對外包裝成一個數(shù)據(jù)庫整體對外服務(wù)。本身是關(guān)系型數(shù)據(jù)庫,對當(dāng)前銀行使用的數(shù)據(jù)庫是一個繼承關(guān)系,滿足通用性數(shù)據(jù)庫要求。同時通過MPP分布式并行處理架構(gòu),使得系統(tǒng)具有良好的可擴(kuò)展性。除此之外通過分布式事務(wù)處理機(jī)制,保證可以實(shí)現(xiàn)分布式事務(wù)控制。在此之外,通過前置中間件集群、數(shù)據(jù)庫雙擊和集群可以看出系統(tǒng)不存在單點(diǎn)故障和性能瓶頸,具有良好的高可用性和可擴(kuò)展性。
? ? ? ? 從以上的分析可以看出TopDB能夠作為銀行領(lǐng)域替換Oracle、DB2的替代產(chǎn)品。但是需要注意的是前置中間件需要做語法解析和計劃,因此需要考慮設(shè)計成滿足通用的SQL語法,這對前置中間件的要求非常高。
?
1.5TopDB的未來規(guī)劃
? ? ? ? TopDB的未來規(guī)劃的內(nèi)容主要包含幾個方面,一方面是前置中間中自身語法解析、SQL計劃的性能優(yōu)化和提升、系統(tǒng)時延的降低、并發(fā)的提升。另外一方面本身TopDB作為同時具有OLTP和OLAP特性的通用型數(shù)據(jù)庫,在做大規(guī)模跨庫的關(guān)聯(lián)查詢時,性能會下降厲害,因此需要考慮如何加強(qiáng)OLAP這塊的性能。
? ? ? ?上述前者主要是對自身內(nèi)部的優(yōu)化,而后者就需要在系統(tǒng)層面上考慮TopDB的架構(gòu)設(shè)計了。其中一個思路是將TopDB和大數(shù)據(jù)系統(tǒng)進(jìn)行對接,利用大數(shù)據(jù)系統(tǒng)來進(jìn)行OLAP分析類應(yīng)用,將TopDB和BigData作為整體對外提供服務(wù)。TopDB和BigData通過接口將兩邊的數(shù)據(jù)進(jìn)行對接,TopDB將數(shù)據(jù)吐給BigData進(jìn)行分析,BigData將分析后的數(shù)據(jù)再返回給TopDB。
? ? ? ? 另外一個思路是利用新型的列式存儲來完成OLAP,但是列式存儲和行式存儲本身只能兩者取其一,兩者結(jié)合使用除了使用數(shù)據(jù)導(dǎo)入導(dǎo)出方法以外,如何將兩者進(jìn)行結(jié)合到現(xiàn)在為止仍然沒有很好的思路。
?
1.6總結(jié)
? ? ? ? 順應(yīng)時代的要求,在銀行領(lǐng)域替換Oracle、DB2數(shù)據(jù)庫,因此設(shè)計成通用型的關(guān)系型數(shù)據(jù)庫,同時考慮系統(tǒng)擴(kuò)展性,采用MPP分布式并行處理架構(gòu)。從產(chǎn)品本身來說,十分貼切銀行的真實(shí)需求,但是同時也需要看到,架構(gòu)中前置中間件需要做的事情很多,難度較大。從產(chǎn)品的應(yīng)用前景來看,在金融領(lǐng)域、通訊領(lǐng)域,證券領(lǐng)域,這些本身相對保守需要使用關(guān)系型數(shù)據(jù)庫來保存數(shù)據(jù),同時又由于數(shù)據(jù)量和性能要求的增加需要提升系統(tǒng)容量和性能的領(lǐng)域。
? ? ? ?金融和通訊為了提升系統(tǒng)性能和降低成本,使用開源或者國產(chǎn)通用型數(shù)據(jù)庫替代Oracle、DB2將是一個延續(xù)不斷地過程。有如互聯(lián)網(wǎng)領(lǐng)域去IOE的態(tài)勢一樣,這些領(lǐng)域?qū)⒃谖磥砣舾赡辏饾u使用其他替代產(chǎn)品來替換Oracle和DB2。不同的技術(shù)路線如NoSQL和NewSQL都會存在一些生存空間,NoSQL適用于銀行領(lǐng)域?qū)?yīng)于靠近互聯(lián)網(wǎng)的應(yīng)用。而NewSQL適用于這些領(lǐng)域的數(shù)據(jù)倉庫。這些領(lǐng)域需要能夠找到同時滿足OLTP和OLAP的通用型數(shù)據(jù)庫,同時又具有高性能和大存儲,因此我們的TopDB應(yīng)孕而生。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
