资讯专栏INFORMATION COLUMN

TiDB 在 Ping++ 金融聚合支付业务中的实践

qqlcbb / 2591人阅读

摘要:随着业务扩大,过大的单表已不足以支撑复杂的查询场景,因此引入了两个方案同时提供数据服务,阿里云的解决方案,用来解决复杂关系型多维分析场景。

Ping++ 介绍

Ping++ 是国内领先的支付解决方案 SaaS 服务商。自 2014 年正式推出聚合支付产品,Ping++ 便凭借“7行代码接入支付”的极致产品体验获得了广大企业客户的认可。

如今,Ping++ 在持续拓展泛支付领域的服务范围,旗下拥有聚合支付、账户系统、商户系统三大核心产品,已累计为近 25000 家企业客户解决支付难题,遍布零售、电商、企业服务、O2O、游戏、直播、教育、旅游、交通、金融、房产等等 70 多个细分领域。

Ping++ 连续两年入选毕马威中国领先金融科技 50 强,并于 2017 成功上榜 CB Insights 全球 Fintech 250 强。从支付接入、交易处理、业务分析到业务运营,Ping++ 以定制化全流程的解决方案来帮助企业应对在商业变现环节可能面临的诸多问题。

TiDB 在 Ping++ 的应用场景 - 数据仓库整合优化

Ping++ 数据支撑系统主要由流计算类、报表统计类、日志类、数据挖掘类组成。其中报表统计类对应的数据仓库系统,承载着数亿交易数据的实时汇总、分析统计、流水下载等重要业务:

随着业务和需求的扩展,数仓系统历经了多次发展迭代过程:

由于业务需求中关联维度大部分是灵活多变的,所以起初直接沿用了关系型数据库 RDS 作为数据支撑,数据由自研的数据订阅平台从 OLTP 系统订阅而来。

随着业务扩大,过大的单表已不足以支撑复杂的查询场景,因此引入了两个方案同时提供数据服务:ADS,阿里云的 OLAP 解决方案,用来解决复杂关系型多维分析场景。ES,用分布式解决海量数据的搜索场景。

以上两个方案基本满足业务需求,但是都仍存在一些问题:

ADS:一是数据服务稳定性,阿里云官方会不定期进行版本升级,升级过程会导致数据数小时滞后,实时业务根本无法保证。二是扩容成本,ADS 为按计算核数付费,如果扩容就必须购买对应的核数,成本不是那么灵活可控。

ES:单业务搜索能力较强,但是不适合对复杂多变的场景查询。且研发运维代价相对较高,没有关系型数据库兼容各类新业务的优势。

所以需要做出进一步的迭代整合,我们属于金融数据类业务,重要性安全性不能忽视、性能也得要有保障,经过我们漫长的调研过程,最终,由 PingCAP 研发的 TiDB 数据库成为我们的目标选型。

TiDB 具备的以下核心特征是我们选择其作为实时数仓的主要原因:

高度兼容 MySQL 语法;

水平弹性扩展能力强;

海量数据的处理性能;

故障自恢复的高可用服务;

金融安全级别的架构体系。

并追踪形成了以下数据支撑系统架构:

新的方案给我们的业务和管理带来了以下的提升和改变:

兼容:整合了现有多个数据源,对新业务上线可快速响应;

性能:提供了可靠的交易分析场景性能;

稳定:更高的稳定性,方便集群运维;

成本:资源成本和运维成本都有所降低。

TiDB 架构解析及上线情况

TiDB 是 PingCAP 公司受 Google Spanner / F1 论文启发而设计的开源分布式 NewSQL 数据库。从下图 Google Spanner 的理念模型可以看出,其设想出数据库系统把数据分片并分布到多个物理 Zone 中、由 Placement Driver 进行数据片调度、借助 TrueTime 服务实现原子模式变更事务,从而对外 Clients 可以提供一致性的事务服务。因此,一个真正全球性的 OLTP & OLAP 数据库系统是可以实现的。

我们再通过下图分析 TiDB 整体架构:

可以看出 TiDB 是 Spanner 理念的一个完美实践,一个 TiDB 集群由 TiDB、PD、TiKV 三个组件构成。

TiKV Server:负责数据存储,是一个提供事务的分布式 Key-Value 存储引擎;

PD Server:负责管理调度,如数据和 TiKV 位置的路由信息维护、TiKV 数据均衡等;

TiDB Server:负责 SQL 逻辑,通过 PD 寻址到实际数据的 TiKV 位置,进行 SQL 操作。

生产集群部署情况:

现已稳定运行数月,对应的复杂报表分析性能得到了大幅提升,替换 ADS、ES 后降低了大量运维成本。

TiDB 在 Ping++ 的未来规划

TiSpark 的体验

TiSpark 是将 Spark SQL 直接运行在分布式存储引擎 TiKV 上的 OLAP 解决方案。下一步将结合 TiSpark 评估更加复杂、更高性能要求的场景中。

OLTP 场景

目前数仓 TiDB 的数据是由订阅平台订阅 RDS、DRDS 数据而来,系统复杂度较高。TiDB 具备了出色的分布式事务能力,完全达到了 HTAP 的级别。

TiKV 基于 Raft 协议做复制,保证多副本数据的一致性,可以秒杀当前主流的 MyCat、DRDS 分布式架构。且数据库的可用性更高,比如我们对生产 TiDB 集群所有主机升级过磁盘(Case记录),涉及到各个节点的数据迁移、重启,但做到了相关业务零感知,且操作简单,过程可控,这在传统数据库架构里是无法轻易实现的。

我们计划让 TiDB 逐渐承载一些 OLTP 业务。

对 TiDB 的建议及官方回复

DDL 优化:目前 TiDB 实现了无阻塞的 online DDL,但在实际使用中发现,DDL 时生成大量 index KV,会引起当前主机负载上升,会对当前集群增加一定的性能风险。其实大部分情况下对大表 DDL 并不是很频繁,且时效要求并不是特别强烈,考虑安全性。建议优化点:

是否可以通过将源码中固定数值的 defaultTaskHandleCnt、defaultWorkers 变量做成配置项解决;

是否可以像 pt-osc 工具的一样增加 DDL 过程中暂停功能。

DML 优化:业务端难免会有使用不当的 sql 出现,如导致全表扫描,这种情况可能会使整个集群性能会受到影响,对于这种情况,是否能增加一个自我保护机制,如资源隔离、熔断之类的策略。

针对以上问题,我们也咨询了 TiDB 官方技术人员,官方的回复如下:

正在优化 Add Index 操作的流程,降低 Add Index 操作的优先级,优先保证在线业务的操作稳定进行。

计划在 1.2 版本中增加动态调节 Add Index 操作并发度的功能。

计划在后续版本中增加 DDL 暂停功能。

对于全表扫描,默认采用低优先级,尽量减少对于点查的影响。后续计划引入 User 级别的优先级,将不同用户的 Query 的优先级分开,减少离线业务对在线业务的影响。

最后,特此感谢 PingCAP 所有团队成员对 Ping++ 上线 TiDB 各方面的支持!

✎ 作者:宋涛 Ping++ DBA

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38828.html

相关文章

  • TiDB Ping++ 金融聚合支付业务中的实践

    摘要:随着业务扩大,过大的单表已不足以支撑复杂的查询场景,因此引入了两个方案同时提供数据服务,阿里云的解决方案,用来解决复杂关系型多维分析场景。 Ping++ 介绍 Ping++ 是国内领先的支付解决方案 SaaS 服务商。自 2014 年正式推出聚合支付产品,Ping++ 便凭借7行代码接入支付的极致产品体验获得了广大企业客户的认可。 如今,Ping++ 在持续拓展泛支付领域的服务范围,旗...

    stormgens 评论0 收藏0
  • TiDB 银行核心金融领域的研究与两地三中心实践

    摘要:本文整理自于振华老师在上的演讲实录,演讲主题为在银行核心金融领域的研究与实践。年月,我们投产了行业内首个面向核心金融业务的分布式数据库,采用的是两地三中心五副本的架构模式。 作者介绍:于振华,北京银行软件开发部资深架构师,长期从事银行核心系统研发、规划,参与过多个核心信息系统建设工作,包括一、二代支付系统、第四代银行核心系统建设、分布式核心系统建设等企业级项目工作。当前主要研发方向集中...

    zr_hebo 评论0 收藏0
  • TiDB 银行核心金融领域的研究与两地三中心实践

    摘要:本文整理自于振华老师在上的演讲实录,演讲主题为在银行核心金融领域的研究与实践。年月,我们投产了行业内首个面向核心金融业务的分布式数据库,采用的是两地三中心五副本的架构模式。 作者介绍:于振华,北京银行软件开发部资深架构师,长期从事银行核心系统研发、规划,参与过多个核心信息系统建设工作,包括一、二代支付系统、第四代银行核心系统建设、分布式核心系统建设等企业级项目工作。当前主要研发方向集中...

    sourcenode 评论0 收藏0
  • TiDB 猿辅导数据快速增长及复杂查询场景下的应用实践

    摘要:猿辅导的业务决定了其后台系统具有以下特点数据体量大,增速快,存储系统需要能够灵活的水平扩展有复杂查询,方面的需求,可以根据索引,例如城市渠道等,进行实时统计数据存储要具备高可用高可运维性,实现自动故障转移。 猿辅导是国内拥有最多中小学生用户的在线教育机构,旗下有猿题库、小猿搜题、猿辅导三款在线教育 APP,为用户提供在线题库、拍照搜题、名师在线辅导相关的服务。其中,猿辅导APP已经有...

    Vixb 评论0 收藏0
  • TiDB 特来电的实践

    摘要:目前进入大数据集群的数据主要以宽表方式进行,导致在数据归集和后期基础数据放生变化时应用成本较高。应用简介充电功率的分时统计每个用户使用特来电的充电桩进行充电时,车辆的数据充电桩数据环境温度等数据是实时的保存到大数据库中。 背景介绍 特来电新能源有限公司是创业板第一股特锐德(300001)的全资子公司,主要从事新能源汽车充电网的建设、运营及互联网的增值服务。特来电颠覆了传统充电桩的模式,...

    freewolf 评论0 收藏0

发表评论

0条评论

qqlcbb

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<