證券行業屬于資料密集型行業,海量高價值歷史資料和爆發式用戶增長帶來的海量實時資料是證券行業的發展引擎,這也就意味著證券行業對資料庫提出了更高要求,曾經的國外傳統集中式資料庫主流解決方案弊端逐漸暴露,國產資料庫市場亟待完善,騰訊云資料庫作為國產化建設中的重要一員,為廣大客戶提供滿意的國產化解決方案,最近,騰訊云資料庫TDSQL也以優異的產品能力榮獲2022年全球數字經濟大會產業創新成果獎,

在證券行業,騰訊云資料庫也落地了多家機構的核心系統,國信證券新業務系統選擇采用騰訊云企業級分布式資料庫TDSQL+中標麒麟系統+海光服務器模式,承載國信證券的OTC交易柜臺系統、反洗錢系統和HR人力管理系統等,實作證券系統全堆疊國產化,上線運行以來,承載了單日億元級別的交易規模,(點擊此處,了解詳情)
本篇轉自國信證券系統運行部顏龍發表在《交易技術前沿》第48期的文章《國產分布式資料庫在證券行業的應用價值》,文章詳細介紹了國信證券進行國產分布式資料庫升級前的調研作業以及升級后的應用價值,顏龍結合國信證券反洗錢實踐案例驗證了國產資料庫完全有能力替代證券系統特定業務型別現有的集中式資料庫,以下為文章全文:
隨著證券業務發展以及資料庫技術進化,加上國產化加速的推動下,傳統資料庫逐漸面臨困境,本文將解讀這些困境,以此出發闡述我們關于國產分布式資料庫在證券行業內應用價值的思考,然后通過我司的反洗錢實踐案例來進行探索驗證,并嘗試講述國產分布式資料庫如何揚長避短,在證券行業的各類業務場景下產生最大化的價值,
一、概述
近年來,證券行業線下服務轉型線上化行程加速,包括營銷獲客的方式、AI單向智能開戶、非現場業務的辦理、在線直播、小程式、小視頻等互聯網方式的使用等,同時近年證券市場行情火爆,證券用戶數量和并發量大幅提升,從而對支撐業務的IT系統及資料庫提出了更高要求;伴隨在證券公司進入全面創新發展階段,證券業務品種也日漸增加、業務流程復雜度不斷提高,現有非國產集中式資料庫架構在滿足新業務、新監管規定以及今后一段時期內部控制管理的高效率監控及管理的需求方面已逐漸困難,
證券行業為資料密集型行業,發展至今已經累積了海量的高價值資料,目前每天產生海量的新資料,在海量用戶和大資料量下,當前行業主要使用的國外傳統集中式資料庫弊端逐漸體現:集中式資料庫體系架構缺少計算存盤分離、彈性伸縮能力、跨資料中心的高可用能力;容量面臨瓶頸,依賴垂直擴容,且很難做到業務透明或者無感知,成本高昂;此外無法滿足自主可控及國產化的目標,
然而,隨著資料庫領域技術近年來的飛速發展,云原生資料庫、NewSQL、分布式資料庫等具備業界代表性的資料庫產品進入人們的視野,基于對資料庫領域技術發展趨勢以及新技術產品的了解,結合證券行業現狀以及我司IT系統的實際情況,我們初步認為國產分布式資料庫有能力解決我們的當前困境,可以滿足證券行業的業務場景需求,且在我司具備落地的條件,接下來我們將對國產分布式資料庫在證券行業中的應用價值進行探索和驗證,
二、國產分布式資料庫
2.1 基本能力和適用場景
現在讓我們來看看分布式資料庫具備了哪些基本能力,解決了哪些問題,以及可適用于哪些場景,
首先,受限于傳統架構,集中式資料庫使用復制和切換作為主要手段的高可用模式已逐漸無法滿足金融交易業務場景日益增高的可用性要求,而分布式資料庫具備了更完善的高可用能力,以一個集中統一的視角管理所有資料庫組件,任何組件例外都可實作自動切換,保證整體的可用性,此外,資料通常由多副本保存,主副本與其他副本之間通過raft或paxos等協議實作資料的強一致性同步,可保證資料不丟失,
然后,針對容量瓶頸,包括計算能力不足和資料大容量問題,分布式資料庫使用了存盤計算分離和資料分片的技術,使得其架構支持計算能力和存盤的橫向擴展,一方面,集群的計算任務主要由計算節點承擔,計算節點可以做到無狀態從而實作線性擴展;另一方面,資料按照特定規則切分成分片,每個分片保存特定部分資料,由此,我們可以通過增加計算節點來擴充計算能力,通過增加分片來實作資料庫量的擴容,且理論上是無限擴容的,而在這個基礎上可繼續實作彈性擴縮容,
其次高并發問題是傳統集中式資料庫難以解決的問題,因為單臺服務器的并發和計算能力總是有上限的,而對于分布式資料庫,一方面,應用的并發會話可以由多個計算節點承擔,分散了并發訪問的壓力;另一方面,分布式架構將資料打散到了各個分片之中,相當于分散了并發請求帶來的讀寫壓力,因此在理想的情況下,分布式架構下的并發能力也是支持線性擴展的,
再次,成本問題也是傳統集中式資料庫所面臨的痛點,就如前所述,傳統架構缺少橫向擴展能力,因此面臨增長的業務、擴大的資料容量,資料庫只能選擇垂直擴展來獲得服務器資源上的補充,但昂貴的CPU資源向上堆砌、記憶體和存盤擴容所帶來的成本不菲,并且很容易達到最終瓶頸,分布式資料庫則將垂直擴容轉變成為了橫向擴容,構成計算存盤節點的每一臺服務器都并不強依賴高性能服務器,在這個情況下,增加節點可以輕松解決資源擴容問題,而成本相對于垂直擴容則要低很多,
最后,國產化的大環境問題也是證券行業目前重度依賴的非國產商業資料庫所無法繞開的問題,國產分布式資料庫目前基于開源資料庫自研擴展為分布式架構,甚至做到真正意義上的全自研,因此國產分布式資料庫是國產化的一個切實可行的發展思路,
綜上所述,我們認為國產分布式資料庫有能力解決行業資料庫目前所面臨的困境,在OLTP在線交易型、OLAP在線分析型業務、互聯網高并發型、交易型和分析混合型的證券業務場景下,都將有不同程度的應用價值,
2.2 基本現狀簡述
如我們所知,當今分布式資料庫主要有兩大類:第一類是從單體資料庫和自研中間件演進而來的分布式資料庫,我們習慣稱之為資料庫中間件型分布式資料庫,目前在國內比較成熟的有TDSQL MySQL版、TDSQL PG版、GoldenDB、HotDB、GuassDB-300等;第二類叫做NewSQL,也叫原生分布式資料庫,國內相對成熟的有TiDB、OceanBase,此類資料庫架構的每個組件都是基于分布式進行設計的,天生自帶分布式基因,NewSQL從分布式NoSQL存盤出發,演化出關系型資料庫能力,從而進化成為分布式資料庫;而中間件型分布式資料庫則從關系型資料庫出發,融合分布式特性增強架構能力,最終成為分布式資料庫,二者殊途同歸,由于關系型資料庫的實作難度是遠大于分布式存盤的,因此中間件型分布式資料庫相當于走了捷徑,大幅降低了產品工程開發的作業量,同時降低了引入風險的可能性,基于現有生產資料庫也使其能夠更快地走向成熟、穩健,而NewSQL的發展道路相對艱難,但它也帶來了資料庫架構革命性的改變,
基于以上情況,同時針對我司IT系統實際情況進行考量,我們嘗試在NewSQL和中間件型分布式資料庫中各選其一進行探索和引入,因篇幅原因,我們接下來選取其中一個關于TDSQL PG版的實踐案例進行介紹,驗證國產分布式資料庫在我司的應用價值,TDSQL PG版為系列產品中具備HTAP特性的版本,兼容我司相關傳統資料庫協議,
三、探索案例
我司反洗錢系統目前擁有7T業務資料(大表記錄數十億級),應用同時具備了OLAP和OLTP兩種業務行為,并且使用了存盤程序、視窗函式等復雜資料庫功能,在眾多業務系統中具有代表性,我們嘗試使用TDSQL PG版對其進行適配落地,來驗證分布式資料庫的應用價值,我們組建了專案組并進行了大量的適配和測驗作業:挑選了典型的業務場景;部署了全量資料的測驗環境;進行了異構資料遷移;針對目標資料庫產品特性進行了應用的SQL改造;基于分布式的表結構改造;后臺作業、框架升級、頁面功能改造以及各類資料庫軟體適配性問題的解決,
3.1 選擇TDSQL PG版進行適配
如前所述,反洗錢業務兼備了OLTP和OLAP的特征,對此TDSQL PG版的HTAP能力具備獨特優勢:
1、滿足OLTP業務場景的高并發需求,同時也能解決計算能力的不足的問題;
2、滿足OLAP業務場景的計算密集型需求,同時也能解決大資料量下的時延以及吞吐量問題;
3、可獲得代價、性能、維護成本之間的權衡,同時考慮大批量資料的遷移改造成本,
此外TDSQL支持分布式事務、自定義函式、存盤程序、視窗函式,分片鍵改造支持自動指定,等,因此TDSQL PG版具備較為契合的特性來對反洗錢系統進行適配,
3.2 適配收益
3.2.1 高可用架構能力的提升
當前反洗錢系統運行在集中式資料庫上,使用傳統復制技術部署了一臺實時同步的備機,當主庫故障的時候,需手工切換至備庫,同時應用修改ip地址指向以恢復服務,即一主1備架構,切換為手工操作,高可用切換時效約為分鐘級,

圖1 反洗錢系統資料庫的傳統集中式架構
在反洗錢TDSQL PG版測驗環境中,我們部署了3個DN的分布式集群,每個DN即為一個高可用單元,由1主1備共兩個副本組成,分別部署在2臺服務器上,從副本數量上來說,其高可用能力相比當前集中式架構得到了增強,且得益于TDSQL PG版的分布式架構,反洗錢資料庫有了分散集中故障風險的能力,每個DN的主備之間均為自動故障切換,時效為秒級,因此從切換時效上來看,反洗錢資料庫的高可用能力也得到了增強,

圖2 反洗錢系統資料庫的TDSQL PG版分布式集群架構
3.2.2 可擴展性方面的改善
反洗錢系統當前的集中式架構僅適用垂直擴容,對于物理機服務器計算能力來說是幾乎無法實施擴容的,如CPU、記憶體,而對于存盤容量來說,垂直擴容的量是有上限的,取決于硬體支持能力,我們無法無限制地掛載存盤盤到一臺服務器上,否則會引發服務器運行穩定方面的問題,并給運維作業帶來困難,反洗錢主庫為接入了16T容量FC-SAN存盤的物理機服務器,備庫為VSAN存盤物理機服務器,當前主庫服務器掛載的存盤容量已到達Linux LVM單卷上限,掛載存盤盤數量已達18個,繼續垂直擴容的價格、維護成本極高,當前存盤使用率高達90%,而行業監管要求存放5年歷史資料,因此預測其資料量還有40%左右的上漲,當前反洗錢資料庫架構已面臨嚴峻的容量考驗,

圖3 反洗錢集中式架構的垂直擴容方式
反洗錢TDSQL PG版架構具備分布式優勢,適用橫向擴展,資料以分片的方式存放在了各個DN中,當集群中DN服務器資源平均使用率較高的時候,比如存盤容量,我們可以給集群添加一組DN,其中包含2臺服務器,也就是說,隨著反洗錢業務資料量不斷的上漲,總是可以通過給集群添加DN來進行容量擴充,而且操作在線進行,可通過集群自身的平臺能力進行自動化管理,

圖4 反洗錢分布式架構的橫向擴容方式
不僅存盤容量,承載了集群主要計算能力的CN節點也支持橫向擴展,當集群計算能力不足時,則添加適當數量的CN節點,即達到擴充計算能力的目的,
3.2.3 性能對比
我們給出典型業務場景下的性能對比結果:
表1 反洗錢典型業務場景下的性能測驗資料對比

TDSQL PG版雙分片架構在三個場景下優于或不差于現有系統,整體上來看反洗錢TDSQL PG版架構表現良好,能夠滿足反洗錢業務場景的需求,
3.2.4 自主可控及國產化
在測驗程序中,我們分別對X86以及ARM平臺下的TDSQL PG版反洗錢系統進行了驗證,運行穩定,達到預期,使用TDSQL PG版的情況下,反洗錢系統即可脫離集中式資料庫的限制,實作完全自主可控,因此滿足行業國產化的要求,
3.3 案例總結
經過本次探索和實踐,我司發現基于TDSQL PG版的反洗錢系統在海量資料下的性能、擴展能力、高可用、災備、運維、成本節約等方面都有顯著提升,TDSQL PG版作為分布式資料庫能夠為證券業務場景產生應用價值,
四、應用價值
首先,國外商業資料庫已有幾十年的發展歷程,占據了全球高份額市場,產品能力成熟,相比之下,國產集中式資料庫在綜合產品能力上還處于起步和發展階段,需要借助架構來彌補劣勢;其次,國產服務器在硬體能力上還略遜色于目前市場主流品牌,因此凸顯單體服務器性能瓶頸問題;第三,國產基礎設施的可靠性仍需要進一步提升,以上需求導致了我們需要通過分布式架構來解決容量擴展問題,并提升可靠性和冗余度,
以上種種,說明了分布式資料庫的一個核心特點和價值:架構橫向擴展能力,分布式資料庫有能力執行單臺服務器無法完成的計算、存盤任務,借助分布式架構可以提高系統的整體可靠性和吞吐能力,但同時我們也注意到,分布式資料庫有擅長的業務場景,也有能力無法覆寫的場景,面對不同的應用與環境,分布式資料庫既擁有特定的優勢也存在某些劣勢,正如不存在完美的架構,單一的資料庫架構無法覆寫我司所有的業務場景,
從國產分布式資料庫的行業應用情況和發展潛力進一步分析,同時結合我司的實踐案例和業界同行的使用經驗,我們認為國產分布式資料庫經歷多年的打磨,目前已具備成熟、可持續發展的生態,
此外在銀行、保險、證券等金融行業有許多成功案例,其中包括銀行核心系統案例,其穩定性、可靠性已得到驗證,可以滿足金融級資料庫的要求,然后,具有HTAP代表性的反洗錢系統成功完成基于TDSQL PG版的遷移,證明以TDSQL PG版為代表的國產分布式資料庫有能力替代證券系統特定業務型別現有的集中式資料庫,
其次,分布式架構為我們帶來計算、存盤橫向擴展能力的同時,也不能忽視分布式事務帶來的時延問題,在一些低延時場景還需要連同業務角度一起去研究其可行性;此外,產品成熟度也是我們對國產分布式資料庫進行選擇的重要考量之一,運維工具便利性、附屬功能缺失、軟體BUG是目前各類國產分布式資料庫所面臨的普遍問題,
最后,我們還要充分理解分布式資料庫給我們帶來的管理方面的挑戰,分布式資料庫架構相對于集中式資料庫更龐大、運維復雜度更高,同時,我們還需要關注資源使用率的問題,避免分布式架構導致的服務器資源浪費問題,
整體上說,在未來的一段時間里,國產分布式資料庫可以替換我司部分場景下的業務系統,而隨著產品不斷的更新優化和技術發展,國產分布式資料庫可以為我們帶來越來越多的可適配場景,國產分布式資料庫在我司將有越來越多的用武之地,可在證券行業產生越來越多的應用價值,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/501768.html
標籤:其他
