TDSQL在微信支付数据密集型应用落地实践TDSQL在微信支付数据密集型应用中的实践日前,腾讯云数据库开源产品TDSQL PG版(开源代码TBase)宣布重磅升级——经过一年半的打磨,在访问数万张表的场景下,内存占用节省60%;查询性能提高了一百倍;SQL语句兼容性得到了增强。同时,原数据库版本在分布式场景下的可用性大......
日前,腾讯云数据库开源产品TDSQL PG版(开源代码TBase)宣布重磅升级——经过一年半的打磨,在访问数万张表的场景下,内存占用节省60%;查询性能提高了一百倍;SQL语句兼容性得到了增强。同时,原数据库版本在分布式场景下的可用性大大提高。
TDSQL PG版是腾讯多年来不断研发的具有HTAP能力的数据库产品。是腾讯云数据库团队在开源PostgreSQL基础上开发的企业级分布式HTAP数据库管理系统,可以提供成熟的一站式解决方案。腾讯云数据库技术总监李跃森表示,“在开源的前10天,TDSQL PG版的Star数量已经达到500多个。很快,开源就受到了欧洲航天局、美国国家天文台以及医疗健康、零售等行业用户的青睐。”
作为新一代分布式企业数据库管理系统,TDSQL一直应用于微信支付的核心系统,支持微信支付实现高性能、高可用、数字化的应用。近年来,微信支付基于TDSQL PG版构建了数据密集型应用,可以轻松突破单表数据的TB级海量存储。TDSQL PG版高吞吐量、高并发、自动扩容,完全满足微信支付的业务场景需求。
微信支付在应用TDSQL PG版的过程中经历了哪些故事TDSQL PG在微信支付系统中有哪些典型的应用案例
1微信支付和TDSQL PG版的伴随教程
“如果要用一个形容词来形容微信支付和TDSQL PG版的关系,那就是‘你嫉妒我’。”腾讯高级工程师万志英在介绍微信支付案例时表示,“TDSQL PG版为我们提供了武器,而微信支付为TDSQL PG版提供了充足的试用战场。”
以微信支付的商户服务平台为例,主要是数千万商户下载明细账单、查询账单复杂情况、进行统计分析的平台。起初,平台使用开源的MySQL作为底层存储。但随着JD.COM等大商户的接入,交易笔数逐渐增多,单机对于数据增长的存储能力有限,微信支付遇到严重的容量瓶颈和性能瓶颈。在当时的技术背景下,微信支付急需一个好的解决方案,所以选择了TDSQL PG版。
TDSQL很好的解决了微信支付中遇到的问题。容量问题上,TDSQL提供海量数据存储的在线线性扩容;在大商户的数据倾斜问题上,TDSQL基于双密钥分发机制解决了数据存储的均匀分布问题。在分页查询性能上,TDSQL提供了基于Index only扫描索引的相关优化方案,解决了传统web应用分页场景下总页数查询耗时高的问题。
“在交易系统基础上进一步应用的过程中,我们发现TDSQL PG版本的相关特性非常适合数据仓库中的维度表存储。于是在2021年,微信支付构建了基于TDSQL PG版的数据仓库的维度表管理系统,使其成为大数据生态中的重要组成部分。”万志英介绍。
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跨境小程序
手机入驻更便捷
返回顶部