BusterZR 2019-06-26
Ping++ 是国内领先的支付解决方案 SaaS 服务商。自 2014 年正式推出聚合支付产品,Ping++ 便凭借“7行代码接入支付”的极致产品体验获得了广大企业客户的认可。
如今,Ping++ 在持续拓展泛支付领域的服务范围,旗下拥有聚合支付、账户系统、商户系统三大核心产品,已累计为近 25000 家企业客户解决支付难题,遍布零售、电商、企业服务、O2O、游戏、直播、教育、旅游、交通、金融、房产等等 70 多个细分领域。
Ping++ 连续两年入选毕马威中国领先金融科技 50 强,并于 2017 成功上榜 CB Insights 全球 Fintech 250 强。从支付接入、交易处理、业务分析到业务运营,Ping++ 以定制化全流程的解决方案来帮助企业应对在商业变现环节可能面临的诸多问题。
Ping++ 数据支撑系统主要由流计算类、报表统计类、日志类、数据挖掘类组成。其中报表统计类对应的数据仓库系统,承载着数亿交易数据的实时汇总、分析统计、流水下载等重要业务:
随着业务和需求的扩展,数仓系统历经了多次发展迭代过程:
以上两个方案基本满足业务需求,但是都仍存在一些问题:
所以需要做出进一步的迭代整合,我们属于金融数据类业务,重要性安全性不能忽视、性能也得要有保障,经过我们漫长的调研过程,最终,由 PingCAP 研发的 TiDB 数据库成为我们的目标选型。
TiDB 具备的以下核心特征是我们选择其作为实时数仓的主要原因:
并追踪形成了以下数据支撑系统架构:
新的方案给我们的业务和管理带来了以下的提升和改变:
TiDB 是 PingCAP 公司受 Google Spanner / F1 论文启发而设计的开源分布式 NewSQL 数据库。从下图 Google Spanner 的理念模型可以看出,其设想出数据库系统把数据分片并分布到多个物理 Zone 中、由 Placement Driver 进行数据片调度、借助 TrueTime 服务实现原子模式变更事务,从而对外 Clients 可以提供一致性的事务服务。因此,一个真正全球性的 OLTP & OLAP 数据库系统是可以实现的。
我们再通过下图分析 TiDB 整体架构:
可以看出 TiDB 是 Spanner 理念的一个完美实践,一个 TiDB 集群由 TiDB、PD、TiKV 三个组件构成。
生产集群部署情况:
现已稳定运行数月,对应的复杂报表分析性能得到了大幅提升,替换 ADS、ES 后降低了大量运维成本。
TiSpark 是将 Spark SQL 直接运行在分布式存储引擎 TiKV 上的 OLAP 解决方案。下一步将结合 TiSpark 评估更加复杂、更高性能要求的场景中。
目前数仓 TiDB 的数据是由订阅平台订阅 RDS、DRDS 数据而来,系统复杂度较高。TiDB 具备了出色的分布式事务能力,完全达到了 HTAP 的级别。
TiKV 基于 Raft 协议做复制,保证多副本数据的一致性,可以秒杀当前主流的 MyCat、DRDS 分布式架构。且数据库的可用性更高,比如我们对生产 TiDB 集群所有主机升级过磁盘(Case记录),涉及到各个节点的数据迁移、重启,但做到了相关业务零感知,且操作简单,过程可控,这在传统数据库架构里是无法轻易实现的。
我们计划让 TiDB 逐渐承载一些 OLTP 业务。
DDL 优化:目前 TiDB 实现了无阻塞的 online DDL,但在实际使用中发现,DDL 时生成大量 index KV,会引起当前主机负载上升,会对当前集群增加一定的性能风险。其实大部分情况下对大表 DDL 并不是很频繁,且时效要求并不是特别强烈,考虑安全性。建议优化点:
针对以上问题,我们也咨询了 TiDB 官方技术人员,官方的回复如下:
最后,特此感谢 PingCAP 所有团队成员对 Ping++ 上线 TiDB 各方面的支持!
✎ 作者:宋涛 Ping++ DBA
From 192.168.25.133 icmp_seq=238 Destination Host Unreachable 虚拟机ping主机不通,但是主机可以ping通虚拟机,虚拟机ping不通外网