Ping++ 是國內領先的支付解決方案 SaaS 服務商。自 2014 年正式推出聚合支付產品,Ping++ 便憑藉「7行代碼接入支付」的極致產品體驗得到了廣大企業客戶的承認。sql
現在,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