TDSQL在微信支付數據密集型應用落地實踐TDSQL在微信支付數據密集型應用中的實踐日前,騰訊云數據庫開源產品TDSQL PG版(開源代碼TBase)宣布重磅升級——經過一年半的打磨,在訪問數萬張表的場景下,內存占用節省60%;查詢性能提高了一百倍;SQL語句兼容性得到了增強。同時,原數據庫版本在分布式場景下的可用性大......
日前,騰訊云數據庫開源產品TDSQL PG版(開源代碼TBase)宣布重磅升級——經過一年半的打磨,在訪問數萬張表的場景下,內存占用節省60%;查詢性能提高了一百倍;SQL語句兼容性得到了增強。同時,原數據庫版本在分布式場景下的可用性大大提高。
TDSQL PG版是騰訊多年來不斷研發的具有HTAP能力的數據庫產品。是騰訊云數據庫團隊在開源PostgreSQL基礎上開發的企業級分布式HTAP數據庫管理系統,可以提供成熟的一站式解決方案。騰訊云數據庫技術總監李躍森表示,“在開源的前10天,TDSQL PG版的Star數量已經達到500多個。很快,開源就受到了歐洲航天局、美國國家天文臺以及醫療健康、零售等行業用戶的青睞?!?/p>
作為新一代分布式企業數據庫管理系統,TDSQL一直應用于微信支付的核心系統,支持微信支付實現高性能、高可用、數字化的應用。近年來,微信支付基于TDSQL PG版構建了數據密集型應用,可以輕松突破單表數據的TB級海量存儲。TDSQL PG版高吞吐量、高并發、自動擴容,完全滿足微信支付的業務場景需求。
微信支付在應用TDSQL PG版的過程中經歷了哪些故事TDSQL PG在微信支付系統中有哪些典型的應用案例
1微信支付和TDSQL PG版的伴隨教程
“如果要用一個形容詞來形容微信支付和TDSQL PG版的關系,那就是‘你嫉妒我’?!彬v訊高級工程師萬志英在介紹微信支付案例時表示,“TDSQL PG版為我們提供了武器,而微信支付為TDSQL PG版提供了充足的試用戰場?!?/p>
以微信支付的商戶服務平臺為例,主要是數千萬商戶下載明細賬單、查詢賬單復雜情況、進行統計分析的平臺。起初,平臺使用開源的MySQL作為底層存儲。但隨著JD.COM等大商戶的接入,交易筆數逐漸增多,單機對于數據增長的存儲能力有限,微信支付遇到嚴重的容量瓶頸和性能瓶頸。在當時的技術背景下,微信支付急需一個好的解決方案,所以選擇了TDSQL PG版。
TDSQL很好的解決了微信支付中遇到的問題。容量問題上,TDSQL提供海量數據存儲的在線線性擴容;在大商戶的數據傾斜問題上,TDSQL基于雙密鑰分發機制解決了數據存儲的均勻分布問題。在分頁查詢性能上,TDSQL提供了基于Index only掃描索引的相關優化方案,解決了傳統web應用分頁場景下總頁數查詢耗時高的問題。
“在交易系統基礎上進一步應用的過程中,我們發現TDSQL PG版本的相關特性非常適合數據倉庫中的維度表存儲。于是在2021年,微信支付構建了基于TDSQL PG版的數據倉庫的維度表管理系統,使其成為大數據生態中的重要組成部分?!比f志英介紹。
2 TD SQL PG版在微信支付中的應用實踐
近年來,TDSQL PG版幫助微信支付搭建數據密集型應用,不斷拓展應用場景,在多個領域展現比較優勢,保障業務的穩定性和連續性。以報表系統和維度表系統為例,介紹了TDSQL PG版在微信支付中的應用實踐。
微信報表系統有兩種典型的讀寫模式:一種是基于spark離線計算平臺的周期性寫,比如一天寫一次,每次寫的數據很少,但也有可能寫的數據量是十億或者百億。另一種方式是通過消息隊列實時寫入,構建實時報表。由于寫入端是大數據系統,每次寫入的數據量極大,所以對底層數據存儲的寫入性能要求很高。與開源的MySQL相比,TDSQL PG版在并行寫入方面優勢明顯,具有更好的并行寫入性能和吞吐量,可以大大減少我們數據入庫的完成時間,還可以支持實時報表等場景的需求。
與開源的MySQL相比,TDSQL PG在從報表頁面讀取數據時有更豐富的索引類型支持。比如微信支付就有一個業務場景,從幾百億的數據中模糊檢索商戶名稱。在引入TDSQL PG版本之前,這個場景的查詢時間需要將近17秒。優化后,這個場景的時間消耗直接降低到50毫秒以內,性能大幅提升。
到目前為止,TDSQL PG已經積累了微信支付3600+報表的數據寫入、存儲、讀取,報表打開時間可以穩定控制在3秒以內,大大提升了整個報表平臺的性能。
微信還基于TDSQL PG版搭建維度表系統。維度表是描述一個事物的不同角度,比如男女性別。寫代碼時的枚舉值也可以認為是一個維度表。接下來以枚舉值為例,闡述微信支付如何基于TDSQL PG版構建維度表系統。
微信支付所有系統的枚舉值都是基于績效建表系統統一錄入的。目前共有2700+枚舉值,將由下游OLTP數據倉庫、報表系統和操作系統中的計算任務讀取。如果枚舉值在上游被修改或添加,但在下游沒有被感知,將對整個系統的穩定性產生嚴重后果。
為了解決這類問題,微信支付在TDSQL PG版本的基礎上,開辟了集成OLTP系統和OLAP能力的維度表系統。在OLTP維度表管理系統中輸入或更新維度表數據后,無論是在線業務、Spark計算還是報表系統,都可以實時引用最小枚舉值數據參與計算。同時,數據用戶也可以直接看到數據倉庫中每個枚舉值字段的枚舉值,而不必逐層查詢,這樣可以控制枚舉值管理的復雜度,降低相應的質量風險,滿足金融應用的需求,也可以大大提高我們的維護效率。
在整體運營中,目前TDSQL PG版微信支付的存儲容量已經達到400TB+,每秒請求數超過24萬。基本上99.6%的請求都可以用不到10毫秒,完全滿足微信支付在性能和穩定性方面的高要求。
TD是騰訊云的企業級分布式數據庫,涵蓋金融級分布式、云原生、分析等多引擎的完整數據庫產品體系。提供業界領先的金融級高可用、計算與存儲分離、數據倉庫、企業級安全等能力。同時擁有智能運維平臺、無服務器版等完整的產品服務體系。
到2020年,TDSQL已服務數千家金融政企機構,同時廣泛覆蓋游戲、電商、移動互聯網、云開發等泛互聯網業務場景,幫助新零售、教育、SaaS、廣告等行業超過4000家客戶進行數字化升級。
特別聲明:以上文章內容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關于作品內容、版權或其它問題請于作品發表后的30日內與ESG跨境電商聯系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部