金融業(yè)分布式數(shù)據(jù)庫選型及HTAP場景實(shí)踐

韓鋒頻道
隨著企業(yè)數(shù)字化轉(zhuǎn)型深入,對于數(shù)據(jù)使用場景也呈現(xiàn)多元化趨勢,正有越來越多數(shù)據(jù)被企業(yè)利用起來。金融行業(yè)作為數(shù)據(jù)庫應(yīng)用“高地”,這一趨勢表現(xiàn)更為明顯。同時我們也看到,近些年來數(shù)據(jù)庫領(lǐng)域也發(fā)展迅速,有分布式數(shù)據(jù)庫、多模數(shù)據(jù)庫、云數(shù)據(jù)庫為代表的產(chǎn)品不斷涌現(xiàn)。

2345截圖20220818151609.png

本文來自ITPUB,作者/韓鋒頻道。

作為數(shù)據(jù)基礎(chǔ)設(shè)施的重要組成部分,數(shù)據(jù)庫在其中扮演著重要的角色。近些年來,數(shù)據(jù)庫整體發(fā)展也呈現(xiàn)出較之以往很大的不同。其一、是開源數(shù)據(jù)庫受到更為廣泛的關(guān)注,從多家機(jī)構(gòu)的最新報告來看,開源數(shù)據(jù)庫無論從產(chǎn)品數(shù)量還是受關(guān)注程度都超過商業(yè)數(shù)據(jù)庫。開源這一新模式,正成為未來數(shù)據(jù)庫發(fā)展的主流。其二、是云計(jì)算成為未來主要資源供給方式得到普遍共識。已經(jīng)有越來越多的企業(yè)選擇在云上構(gòu)建基礎(chǔ)環(huán)境,包括云上數(shù)據(jù)庫的發(fā)展速度也遠(yuǎn)高于非云環(huán)境。據(jù)樂觀估計(jì),在未來5~10年云數(shù)據(jù)庫將占據(jù)整體數(shù)據(jù)庫市場的七成以上。此外,對遷移到公有云、使用多云環(huán)境等問題,也普遍被企業(yè)所接受。其三、是數(shù)據(jù)融合趨勢,針對數(shù)據(jù)多場景應(yīng)用,使用融合技術(shù)簡化訪問,提升效率。作為數(shù)據(jù)使用高地,金融行業(yè)一方面對數(shù)據(jù)庫有著極高的要求,一方面又面臨很多來自數(shù)據(jù)新的挑戰(zhàn),諸如海量規(guī)模、高并發(fā)、數(shù)據(jù)安全、實(shí)時分析等訴求亟待解決。分布式數(shù)據(jù)庫的出現(xiàn),迎合這一發(fā)展趨勢,對于金融企業(yè)解決上述問題帶來新的解決思路。本文從金融用戶角度入手,對如何選擇分布式數(shù)據(jù)庫及選型后的最優(yōu)實(shí)踐進(jìn)行闡述。

1.金融業(yè)數(shù)據(jù)庫選型背景

隨著企業(yè)數(shù)字化轉(zhuǎn)型深入,對于數(shù)據(jù)使用場景也呈現(xiàn)多元化趨勢,正有越來越多數(shù)據(jù)被企業(yè)利用起來。金融行業(yè)作為數(shù)據(jù)庫應(yīng)用“高地”,這一趨勢表現(xiàn)更為明顯。同時我們也看到,近些年來數(shù)據(jù)庫領(lǐng)域也發(fā)展迅速,有分布式數(shù)據(jù)庫、多模數(shù)據(jù)庫、云數(shù)據(jù)庫為代表的產(chǎn)品不斷涌現(xiàn)。這些新興數(shù)據(jù)庫在特定場景有很好的使用前景?;谏厦鎯煞N趨勢,金融行業(yè)很多企業(yè)都在面臨選擇數(shù)據(jù)庫的問題。

1).選型技術(shù)層面要素分析

從技術(shù)角度來看,在數(shù)據(jù)庫選型中有哪些要素需要考慮呢?下面以近期比較關(guān)注的分布式數(shù)據(jù)庫的選型為例,說明下重點(diǎn)考量的技術(shù)要素。

分布式事務(wù)

分布式架構(gòu),自然會帶來分布式事務(wù)的問題。由于需要跨節(jié)點(diǎn)的網(wǎng)絡(luò)交互,因此較單機(jī)事務(wù)會有很多損耗。隨之帶來的是事務(wù)處理時間較長、事務(wù)期間的鎖持有時間也會增加,數(shù)據(jù)庫的并發(fā)性和擴(kuò)展性也會受到影響。針對單筆事務(wù)來說,分布式事務(wù)執(zhí)行效率是肯定會有降低的,分布式帶來的更多是整體處理能力的提升。

性能

由于分布式數(shù)據(jù)庫通常使用的二階段提交和各節(jié)點(diǎn)之間的網(wǎng)絡(luò)交互會有性能損耗,分布式數(shù)據(jù)庫優(yōu)勢不是單個簡單SQL的性能,而是大數(shù)據(jù)量的SQL查詢,每個節(jié)點(diǎn)會將過濾之后的數(shù)據(jù)集進(jìn)行返回,會提升性能,并且分布式數(shù)據(jù)庫的優(yōu)勢是并發(fā),大量的SQL并發(fā)也會比單機(jī)數(shù)據(jù)庫強(qiáng)大,應(yīng)用需要做分布式架構(gòu)的適配,將串行執(zhí)行機(jī)制盡量都改造成并發(fā)處理。對于含有需要節(jié)點(diǎn)間數(shù)據(jù)流動的SQL語句的事務(wù),OLTP類的分布式數(shù)據(jù)庫處理效率一般較差,事務(wù)處理時間會較長,事務(wù)期間的鎖持有時間也會增加,數(shù)據(jù)庫的并發(fā)性和擴(kuò)展性也會受到影響。建議盡量改造存在跨節(jié)點(diǎn)數(shù)據(jù)流動的SQL語句(主要是多表關(guān)聯(lián))的事務(wù)。

數(shù)據(jù)備份

分布式數(shù)據(jù)庫的一致性保證通過內(nèi)部時鐘機(jī)制所提供的全局時間戳,所有節(jié)點(diǎn)都會遵循該機(jī)制,所以備份恢復(fù)的增量也是基于全局時間戳,但是分布式數(shù)據(jù)庫的備份解決方案最重要的標(biāo)志為是否支持物理級的備份,物理級的備份會比邏輯的備份性能吞吐大很多,還有就是是否支持一些分布式備份方案,比如S3協(xié)議接口,是否支持壓縮等功能。分布式數(shù)據(jù)庫基本都具備備份和恢復(fù)方案,通常從備節(jié)點(diǎn)進(jìn)行連續(xù)備份(全量+日志),恢復(fù)的時候指定節(jié)點(diǎn)進(jìn)行恢復(fù)到指定時間點(diǎn),整個過程可配置自動任務(wù)、自動執(zhí)行。

高可用

分布式數(shù)據(jù)庫大多都是基于多數(shù)派協(xié)議,同城雙中心不適合多數(shù)派的要求,同城數(shù)據(jù)級多活建議采用三中心部署。如果同城主備可以采用集群級的異步復(fù)制,異地建議采用集群級的binlog異步復(fù)制,建議實(shí)例的主備節(jié)點(diǎn)設(shè)置在同城兩個雙活數(shù)據(jù)中心,仲裁節(jié)點(diǎn)三機(jī)房部署;異地災(zāi)備單獨(dú)啟實(shí)例與本地實(shí)例進(jìn)行數(shù)據(jù)庫間同步,也可以將本地備份文件T+1恢復(fù)到異地災(zāi)備。

數(shù)據(jù)一致性

分布式數(shù)據(jù)庫大多都是通過獲取全局時鐘時間戳,采用二階段提交,可以實(shí)現(xiàn)一致性的保證,分庫分表架構(gòu)對于事務(wù)的一致性,需要應(yīng)用層考慮,比如通過合理的分區(qū)鍵設(shè)計(jì)來規(guī)避。部分分布式數(shù)據(jù)庫對于跨節(jié)點(diǎn)事務(wù)目前還是實(shí)現(xiàn)的最終一致,對于全局一致性讀,一般通過引入類似全局時間戳的組件統(tǒng)一管理全局事務(wù),在數(shù)據(jù)庫選型時可以重點(diǎn)關(guān)注廠商對這一塊的實(shí)現(xiàn)。如果目前暫時無法提供全局一致性讀的分布式數(shù)據(jù)庫,對于要依賴分布式事務(wù)“中間狀態(tài)”的業(yè)務(wù),優(yōu)先進(jìn)行業(yè)務(wù)改造進(jìn)行規(guī)避,其次通過合理的數(shù)據(jù)分片設(shè)計(jì)讓其在單節(jié)點(diǎn)內(nèi)完成。

數(shù)據(jù)分析

分布式數(shù)據(jù)庫,多采用存算分離架構(gòu)。針對數(shù)據(jù)分析場景,需要對數(shù)據(jù)從下層存儲節(jié)點(diǎn)上移到計(jì)算節(jié)點(diǎn),這對分布式數(shù)據(jù)庫提出了更高的要求。一方面可通過算子下推等技術(shù),減少需傳輸?shù)接?jì)算節(jié)點(diǎn)的數(shù)量;一方面針對匯聚后的結(jié)果需要通過流式處理等方式,規(guī)避諸如OOM的問題;此外也可采用如MPP等并行處理技術(shù),加速數(shù)據(jù)分析過程。

2).選型過程問題痛點(diǎn)分析

在選型過程中,會遇到來自以下幾方面的痛點(diǎn)。

一是由于分布式數(shù)據(jù)庫整體架構(gòu)還比較新,也是近十年來逐步發(fā)展完善的。針對新型架構(gòu)的諸多特點(diǎn),包括廠商和用戶還都在不斷摸索積累之中,還需要有個長期實(shí)踐的過程。此外,新架構(gòu)也需要有個逐步成熟完善的過程。

二是大量產(chǎn)品來自國內(nèi)數(shù)據(jù)庫廠商,其發(fā)展周期相對較短,還需要在產(chǎn)品成熟度、穩(wěn)定性、周邊生態(tài)等方面不斷完善。對于用戶來說,一方面需面臨產(chǎn)品多、技術(shù)棧多的現(xiàn)狀;另一方面還需面對成熟度不足等問題,存在較多痛點(diǎn)。

三是近些年金融行業(yè)發(fā)展迅速,各種新的業(yè)態(tài)產(chǎn)品不斷涌現(xiàn),這些對作為底層數(shù)據(jù)基礎(chǔ)的數(shù)據(jù)庫也提出了更高的要求。

四是隨著內(nèi)外部環(huán)境的變化,自主可控等問題受到更多的關(guān)注。金融行業(yè)首當(dāng)其沖,針對上述問題也需要引起足夠的重視。在數(shù)據(jù)庫選型問題上,也需要考慮這一因素。這無疑對用戶選擇帶來一定困難。

2.數(shù)據(jù)庫選型技術(shù)架構(gòu)

1).分布式路線分析

針對分布式數(shù)據(jù)庫的發(fā)展路線,大體可分為兩種:

分布式中間件

這種架構(gòu)是從中間件路線演進(jìn)而來。其采用存儲與計(jì)算分離架構(gòu),底層采用標(biāo)準(zhǔn)單機(jī)數(shù)據(jù)庫,副本間基于數(shù)據(jù)庫主從復(fù)制機(jī)制。上層承擔(dān)計(jì)算,并可將部分計(jì)算下推到存儲節(jié)點(diǎn)執(zhí)行。這種架構(gòu)在分布式事務(wù)、全局MVCC等方面,往往存在一定難點(diǎn),各廠商也有各自解決之道。

原生分布式

這種架構(gòu)正是受到Google論文影響演進(jìn)而來。其采用存儲與計(jì)算分離架構(gòu),底層采用單機(jī)庫(不一定是關(guān)系型),副本間采用分布式一致性協(xié)議完成復(fù)制,支持多數(shù)派提交。上層承擔(dān)計(jì)算,并可將部分計(jì)算下推到存儲節(jié)點(diǎn)執(zhí)行。

2).重點(diǎn)需求滿足情況

針對上述遇到的痛點(diǎn),兩類產(chǎn)品實(shí)現(xiàn)邏輯也所有不同。

2345截圖20220818151609.png

3).路線場景分析

從數(shù)據(jù)使用場景來講,可大致按下面進(jìn)行劃分:

2345截圖20220818151609.png

針對不同的場景,不同分布式數(shù)據(jù)庫路線產(chǎn)品各有所長。

針對事務(wù)類場景下,強(qiáng)調(diào)高并發(fā)聯(lián)機(jī)交易、對分析能力要求不高的場景比較適合分布式中間件路線產(chǎn)品。

針對事務(wù)類及事務(wù)/分析混合類場景,既要滿足常規(guī)聯(lián)機(jī)交易場景的同時,還需滿足分析類的一部分能力,這種情況比較適合原生分布式產(chǎn)品?;谠植际降腍TAP數(shù)據(jù)庫,用一個數(shù)據(jù)平臺應(yīng)對規(guī)?;灰缀蛯?shí)時分析,提升業(yè)務(wù)決策的時效性,降低數(shù)據(jù)技術(shù)棧的復(fù)雜性,越來越多的混合負(fù)載需求推動了HTAP在金融場景的落地。

3.金融業(yè)HTAP應(yīng)用場景實(shí)踐

1).金融場景下HTAP的分析

在金融企業(yè)數(shù)字化轉(zhuǎn)型的過程中,各類業(yè)務(wù)對“海量、實(shí)時、在線”的數(shù)據(jù)需求變得愈發(fā)迫切。在金融企業(yè)運(yùn)營場景中,實(shí)時推薦、精準(zhǔn)營銷是企業(yè)提升競爭力的一大因素。在企業(yè)風(fēng)險控制場景中,實(shí)時風(fēng)控、反欺詐等業(yè)務(wù)開展可以更早地識別和阻斷風(fēng)險可以讓企業(yè)減少損失,HTAP正是基于上述背景誕生出的需求,為各類實(shí)時數(shù)據(jù)處理需求提供了解決方案。

2).某金融用戶HTAP的架構(gòu)設(shè)計(jì)和實(shí)踐

隨著金融市場同業(yè)業(yè)務(wù)的蓬勃發(fā)展,業(yè)務(wù)部門對于交易數(shù)據(jù)的實(shí)時統(tǒng)計(jì)分析和展現(xiàn)有了急切的需求?;诖髷?shù)據(jù)技術(shù)棧的T+1報表模式,已無法滿足業(yè)務(wù)部門通過實(shí)時分析交易發(fā)生情況來防范風(fēng)險以及提供決策的需求,迫切的需要找到一種能讓數(shù)據(jù)實(shí)時變現(xiàn)的解決方案。結(jié)合金融行業(yè)特點(diǎn),在技術(shù)選型過程中,重點(diǎn)考察待選產(chǎn)品如下能力:包括承載業(yè)務(wù)復(fù)雜查詢處理、海量數(shù)據(jù)容量存儲、應(yīng)用透明無侵入、開發(fā)協(xié)議可適配及混合負(fù)載下的表現(xiàn)等。經(jīng)過測試,選擇TiDB作為基礎(chǔ)數(shù)據(jù)庫平臺。通過一段時間上線使用,滿足業(yè)務(wù)場景,基于其HTAP的特性,打造金融市場實(shí)時數(shù)據(jù)平臺,目前已投產(chǎn)了靈活報表和交易對手分析等功能。整個處理流程包括:

Flink消費(fèi)交易系統(tǒng)產(chǎn)生的實(shí)時增量數(shù)據(jù),對部分事實(shí)表進(jìn)行拉寬處理并寫入TiDB

維表和其他明細(xì)表直接寫入TiDB

BI工具直接連接TiDB,提供秒級的實(shí)時計(jì)算和分析能力

2345截圖20220818151609.png

這一案例中,構(gòu)建千萬及以上數(shù)據(jù)規(guī)模、超過五張表的復(fù)雜關(guān)聯(lián)實(shí)時查詢能力,讓業(yè)務(wù)人員在極短的時間內(nèi)(大部分報表執(zhí)行時間為幾十到幾百毫秒、個別報表秒級別)獲得實(shí)時交易的詳情。

3).未來HTAP的場景發(fā)展

實(shí)時數(shù)據(jù)處理技術(shù)還以某些具體的應(yīng)用場景為主,從現(xiàn)狀來看以事件驅(qū)動類、流式管道數(shù)據(jù)計(jì)算類為代表的場景,已經(jīng)開始使用HTAP場景的。未來隨著HTAP計(jì)算能力進(jìn)一步的提升,實(shí)時全量數(shù)據(jù)的計(jì)算將帶來更多場景。

4.面向未來的架構(gòu)趨勢

1).云原生

從未來的發(fā)展趨勢來看,云方向是一個大的趨勢。

2345截圖20220818151609.png

從上圖可見,云數(shù)據(jù)庫的發(fā)展經(jīng)歷了幾個階段,從云托管、云服務(wù)、云原生之路。

云托管,是最接近傳統(tǒng)數(shù)據(jù)庫系統(tǒng)的部署模式。本質(zhì)是將原本部署于IDC機(jī)房內(nèi)物理服務(wù)器上的傳統(tǒng)數(shù)據(jù)庫軟件部署在了云主機(jī)上。這種模式下,云平臺提供諸如高可用、異地災(zāi)備、備份恢復(fù)、數(shù)據(jù)安全、SQL審計(jì)、性能優(yōu)化和狀態(tài)監(jiān)測等企業(yè)級數(shù)據(jù)庫管理能力,用戶可減少運(yùn)維投入即可享受之前同等的服務(wù)水平。

云服務(wù),之前的托管架構(gòu)中,受限于傳統(tǒng)數(shù)據(jù)庫架構(gòu)的局限,未能完全發(fā)揮云計(jì)算的優(yōu)勢。在諸如彈性擴(kuò)展、高性能、高可用等方面,均有不足。到了云服務(wù)時代,充分利用云基礎(chǔ)設(shè)施的底層能力,提供定制化的數(shù)據(jù)庫產(chǎn)品。

云原生,與之前的云服務(wù)架構(gòu)不同,這一階段產(chǎn)品將更為充分地利用云基礎(chǔ)設(shè)施的能力,通過多層資源解耦,可享受云帶來的彈性擴(kuò)展、按需供給、超大規(guī)模能力。真正做到了數(shù)據(jù)庫與云的深度結(jié)合。從長期來看,金融機(jī)構(gòu)逐漸把業(yè)務(wù)和技術(shù)向云原生演進(jìn),實(shí)現(xiàn)傳統(tǒng)應(yīng)用遷移上云和云原生改造是重要的方向。在這個過程中需要考慮分布式數(shù)據(jù)庫對K8s、微服務(wù)應(yīng)用的支持,提供高效、彈性調(diào)度能力,同時需要兼顧開發(fā)運(yùn)維和敏捷度。

2).多云方向

云作為未來主流的資源供給方式,多云必然是企業(yè)不得不考慮的問題。多云通常指金融機(jī)構(gòu)同時采用多種不同的云環(huán)境組合來滿足業(yè)務(wù)需求的多樣性和金融業(yè)監(jiān)管的要求。如何圍繞數(shù)據(jù)打造面向未來的多云IT架構(gòu),滿足在多云之間提供數(shù)據(jù)服務(wù)能力,擺脫單一供應(yīng)商的弊端,是必須考慮的問題。多云架構(gòu)對分布式數(shù)據(jù)庫的考察重點(diǎn)聚焦于跨地域、跨公有私有云、跨本地IDC和K8S的部署、服務(wù)提供與統(tǒng)一運(yùn)維能力等。

THEEND

最新評論(評論僅代表用戶觀點(diǎn))

更多
暫無評論