券商是一個古老的行業,發展至今已經歷了三個時代:第一代券商為傳統券商,線上下交易大廳進行買賣;第二代券商開始了電子化程式,從線下到線上進行了淺層服務的轉移,改善了使用者體驗,提高了金融服務的效率;第三代券商更多強調“科技賦能”,在功能業務上更創新、更多樣,且存在完整的網際網路基因,業務依靠線上平臺,擁有底層自研能力,如交易、風控等系統。
老虎國際作為第三代券商的代表,是一家全球知名的國際化券商,在新加坡、美國、中國香港、澳大利亞等地持有 59 張牌照或資質,在全球多地開展業務。投資者在老虎國際可透過一個賬戶交易美股、港股、A 股(滬港通/深港通)、星股(新加坡股)、澳股(澳大利亞股)、期貨、基金等全球主要市場的金融產品,享受一流的投資體驗。
老虎國際自主研發的交易平臺 TigerTrade,累計交易規模在三年內突破 10000 億人民幣,創下網際網路券商衝擊萬億交易規模最短用時。2019 年 3 月,老虎國際在美國納斯達克掛牌上市,目前擁有全球近 900 萬使用者,年交易規模超 2000 億美元。
業務挑戰
作為一家全球化的券商,每個國家證券行業發展情況不同,資料合規要求也存在差異,比如新加坡有 PDPA,歐盟有 GDPR,美國有 CCPA 等,甚至不同國家業務特點也大為迥異。在每個國家/地區都本地部署業務系統顯然並不現實,老虎國際採用跨地區的混合雲架構為全球使用者提供支撐,解決在資料架構、資料安全、資料合規等方面所面臨的的全球挑戰。
同時,老虎國際的資料架構複雜度非常高,底層系統包含 Java、Python、Go 等不同的語言,中介軟體、資料庫、大資料等都是異構場景,導致維護成本和研發效能都大打折扣。
此外,在老虎國際證券業務發展過程中,業務波動性是常態,這也使得其核心業務--後臺賬本系統,經常面臨資料庫的效能挑戰。後臺賬本是使用者在老虎國際參與證券交易時,如產品購買、出入金、IPO 打新、公司行動、被收費等各個業務版塊,針對使用者行為明細資料記錄的系統。賬本每天需要記錄大量的使用者流水,並根據使用者行為生成使用者每日賬單。如果賬本出現問題,直接關係到使用者體驗和投資收入。
2020 年 3 月,美股遭遇了前所未有的震盪,開盤即暴跌,觸發一級熔斷機制,暫停交易 15 分鐘。老虎國際的資料庫也經歷了前所未有的資料查詢量,查詢數量曲線呈指數級增長,原有的 MySQL 遇到了極大瓶頸。證券交易還要求資料庫具有金融級資料強一致性,並具備災備能力,一旦某個機房當機,另一個機房可以立刻啟用。
資料安全性、資料可用性和資料架構複雜度成為老虎國際國際化業務的三大挑戰。出於對開源技術的信任和認同,老虎國際很早就在資料中臺業務中應用了 TiDB 3.0 版本,此後一路升級到 TiDB 5.0,解決了業務挑戰與資料安全挑戰。
後臺賬本資料庫遷移
老虎國際的後臺賬本底層資料架構由多套叢集組成,單叢集資料量接近 2TB,MySQL 資料庫雖然具有較好的穩定性和負載能力,但為了應對不斷增長的資料量只能採取分庫分表方案,難以保證跨分片的事務一致性,跨庫的 Join 關聯查詢效能較差,資料庫多次擴充套件難度和維護量極大。2021 年,老虎國際的運維與研發團隊對主流的冷熱資料分離、分庫分表、分散式資料庫等方案進行選型與效能壓測。在壓測中,TiDB 在 P95 延遲、TPS 事務指標、QPS 等方面整體效能都強於 MySQL,並且 TiDB 的效能可以隨著節點水平擴充套件線性提升,解決效能和單機資源瓶頸問題。壓測增強了老虎國際技術團隊的信心,最終決定將後臺賬本的 MySQL 叢集也遷移到分散式資料庫 TiDB 上。
由於 TiDB 擁有非常豐富的生態元件,整個遷移過程十分順利。為了保障業務穩定,老虎國際採用了新舊資料庫同時寫入的方式,透過 DM 將 MySQL 資料同步至 TiDB 叢集,逐漸切換一部分讀流量到 TiDB,整個遷移歷經近 3 個月,最終全部切換到 TiDB。同時,老虎國際也制定了“逃生方案”,透過 TiCDC 將資料同步到下游的一個 MySQL 叢集,一旦發現 TiDB 有問題可以隨時切換。在經過半年多業務的考驗後,最終技術團隊將該 MySQL 叢集關閉。
不同國家對於監管、資料可用性,以及 SLA(服務級別協議)要求非常高。在同城,老虎國際還利用 TiDB 的災備架構,透過 TiCDC 在災備機房部署了一個 TiDB 叢集作為災備方案,當主機房發生故障時,伺服器負載均衡自動切換到備用機房,保證資料服務高可用,整體延遲達到分鐘級甚至更低。
為什麼選擇 TiDB?
對於券商而言,資料處理速度與成本是緊密相關的。MySQL 的分庫分表維護成本較高,對業務的限制也比較多。而 TiDB 的分散式架構無需分庫分表,大大簡化技術棧,降低了運維難度,透過線上水平擴充套件有效解決底層資料儲存擴容難題;TiDB 的金融級高可用特性,可靠的災備、資料恢復方案保障了老虎國際證券業務穩定執行;TiDB 高度相容 MySQL,有著成熟的 MySQL 遷移方案,研發側大部分程式碼無需改動,即可順利完成整個遷移工作,大大降低遷移成本。
業務收益
現在,老虎國際的資料架構整體可以分為三部分:第一,將分佈在各業務系統甚至 APP 內的資料進行收集;第二,進行資料處理;第三,將資料持久化儲存。非敏感資料透過 DM 和 CDC 快速同步到 TiDB,敏感資料透過 Flink 進行脫敏後輸入 TiDB,利用 TiDB HTAP 的能力構建資料中臺和實時數倉,既保證 OLTP 查詢時系統的穩定性,又保證 OLAP 的快速分析,兩者同時存在又保證隔離,兼顧安全和穩定。最後,老虎國際還將 TiDB 作為類似資料湖的概念提供資料來源給下游的 HDFS 使用,對外提供更多資料服務。
過去,老虎國際的數倉只能滿足 T+1 的資料分析,透過 TiDB ,老虎國際實現了實時同步、實時分析,將延遲降低到了 5 秒鐘;同時,TiDB 的效能實現了比較快的資料接入,之前 Hbase 中只有 4,000+ 表,TiDB 目前已經達到 80,000+ 表;此外,使用 TiDB 後,老虎國際將資料的全量同步變成增量同步,極大減少了網路頻寬壓力。TiDB 統一了兩個大資料分析場景,提升了易用性,並節省了 40% 的資源,實現了降本增效。