客戶心聲|騰訊雲資料庫助力國信證券反洗錢系統分散式改造

来源:https://www.cnblogs.com/tencentdb/archive/2022/08/12/16580703.html
-Advertisement-
Play Games

證券行業屬於數據密集型行業,海量高價值歷史數據和爆髮式用戶增長帶來的海量實時數據是證券行業的發展引擎。這也就意味著證券行業對資料庫提出了更高要求,曾經的國外傳統集中式資料庫主流解決方案弊端逐漸暴露。國產資料庫市場亟待完善,騰訊雲資料庫作為國產化建設中的重要一員,為廣大客戶提供滿意的國產化解決方案。最 ...


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

file

在證券行業,騰訊雲資料庫也落地了多家機構的核心系統。國信證券新業務系統選擇採用騰訊雲企業級分散式資料庫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備架構,切換為手工操作,高可用切換時效約為分鐘級

file
圖1 反洗錢系統資料庫的傳統集中式架構

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

file
圖2 反洗錢系統資料庫的TDSQL PG版分散式集群架構

3.2.2 可擴展性方面的改善

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

file
圖3 反洗錢集中式架構的垂直擴容方式

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

不僅存儲容量,承載了集群主要計算能力的CN節點也支持橫向擴展。當集群計算能力不足時,則添加適當數量的CN節點,即達到擴充計算能力的目的。

3.2.3 性能對比

我們給出典型業務場景下的性能對比結果:

表1 反洗錢典型業務場景下的性能測試數據對比
file

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是目前各類國產分散式資料庫所面臨的普遍問題。

最後,我們還要充分理解分散式資料庫給我們帶來的管理方面的挑戰。分散式資料庫架構相對於集中式資料庫更龐大、運維複雜度更高。同時,我們還需要關註資源使用率的問題,避免分散式架構導致的伺服器資源浪費問題。

整體上說,在未來的一段時間里,國產分散式資料庫可以替換我司部分場景下的業務系統。而隨著產品不斷的更新優化和技術發展,國產分散式資料庫可以為我們帶來越來越多的可適配場景。國產分散式資料庫在我司將有越來越多的用武之地,可在證券行業產生越來越多的應用價值。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 0. 題外話 最近好多文章被一些網站盜取, 比如這篇文章剛發佈就被爬走: https://www.icode9.com/content-3-1432259.html, 在這個網站一搜索, 好家伙, 好幾篇都被盜了, 比如: https://www.icode9.com/content-4-14228 ...
  • harbor倉庫部署 無論是使用Docker-distribution去自建倉庫,還是通過官方鏡像跑容器的方式去自建倉庫,通過前面的演示我們可以發現其是非常的簡陋的,還不如直接使用官方的Docker Hub去管理鏡像來得方便,至少官方的Docker Hub能夠通過web界面來管理鏡像,還能在web界 ...
  • Batteries Mac版是一款電池電量管理軟體,使用它可以幫助您追蹤自己電腦上所有設備電池的電量的狀況,在需要充電時會得到通知,比如你的MacBook、iPhone、iPad、鍵盤、滑鼠、觸控板和AIrPods,這款軟體真可謂是很貼心了,讓您不再憂愁工作學習生活中因設備電量不足給您帶來的不便。 ...
  • 基於容器的方式做一個apache編譯安裝的鏡像,通過docker儲存捲掛載到容器裡面 創建容器前的部署 [root@localhost ~]# docker search centos //查詢centos鏡像 NAME DESCRIPTION STARS OFFICIAL AUTOMATED ce ...
  • Motion 5是運行在蘋果電腦上的一款視頻效果編輯軟體,專為視頻編輯人員而設它能讓您自定 Final Cut Pro 字幕、轉場和效果。Motion 5 for Mac可以在 2D 或 3D 空間中創建您自己的精美炫目的動畫,同時還能在您工作時提供實時反饋。 詳情:Motion 5 for Mac ...
  • 基於容器部署一個web站點 編譯安裝apache 拉取centos鏡像 [root@localhost ~]# docker pull centos:8 8: Pulling from library/centos a1d0c7532777: Pull complete Digest: sha256 ...
  • iMovie是應用在Mac上的視頻剪輯工具,簡單的設計和直觀的編輯功能,讓您以最簡單的方式,最快的操作,快速創作好萊塢風格的影片,iMovie擁有視頻共用和瀏覽的功能,讓您快速查看效果。 詳情:iMovie for Mac(專業視頻剪輯軟體) 功能介紹 快速瀏覽和分享視頻 • 在視頻瀏覽模式下欣賞您 ...
  • 2022年8月9日下午,StoneDB資料庫主體研發單位石原子科技與華為、openGauss開源社區、雲和恩墨、甲骨文等組織受邀參與《開源資料庫服務商服務能力分級要求》標準第一次討論會。 重點討論:標準的能力域與能力項的分類。 後續,項目組將會繼續完善能力分級要求,推進開源資料庫標準的編製工作。至今 ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...