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

来源: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
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...