作者: TiDB社区小助手 原文来源: https://tidb.net/blog/668e625b

同盾科技是中国领先的人工智能科技企业。为了确保服务的低延迟和高可用性,同盾的技术团队不断寻找最佳的技术架构。经过长时间调研,他们最终选择了新一代分布式数据库 TiDB 作为离线层的核心数据库, 基于 TiDB 打造的实时数据架构为风控智能决策保驾护航

同盾科技是中国领先的人工智能科技企业,专注决策智能领域,致力于帮助政企客户防范风险、提升决策效率。同盾科技坚持自主科技创新,多项算法和软件系统已达全球领先水平,并形成了“基于隐私计算的共享智能平台-智邦”和“基于人工智能的决策智能平台-智策”两大平台,聚焦于金融风险、安全风险、政府治理风险三大场景,业务覆盖全球数十个国家,为 22 大行业、118 个细分场景的上万家客户提供了领先且独具特色的决策智能解决方案。

风控业务场景对数据库的需求与挑战

作为一家第三方风控公司,客户经常需要调用同盾的智能决策服务去做业务决策,如电商大促期间防范黑产薅羊毛,个人信贷杜绝多头借贷老赖行为等。因此, 同盾服务调用常常呈现出非常大的 TPS 请求 。同时,为了不影响客户调用服务的质量与体验, 同盾对低延迟和高可用有着硬性要求。

基于这样的特征,同盾日均过亿的决策服务调用,会产生包括非结构化/结构化多种数据结构类型在内的海量数据入库。丰富的数据类型与多样的细分场景,使得同盾科技必须使用多种数据库去满足不同的业务场景需求,在同盾的数据架构中包含了 Cassandra、MySQL、HBase、Redis、Mongo 等数据库。

在同盾的数据架构中,大多数初始落库的数据还比较原始,为了提供优质的数据服务用于智能决策, 技术团队构建了成熟的大数据平台 ,用 T+1 离线数据分析的方式去进行日常的离线数据分析作业,利用数据二次加工赋能上层的风控智能决策。

但面对复杂的数据基础架构,同盾在业务增长中也遭遇了如下挑战:

  • 同盾拥有在线数千个大大小小的 MySQL 工作实例, 数据十分分散 ,有一些是核心的风控业务系统数据,有一些是后台基础架构平台的数据,还有一些是集团 IT 系统数据,同盾希望通过集中化的方式对这些数据进行分析管理;
  • 最开始同盾将上游 MySQL 数据同步到下游进行分析,但整个过程中 数据交换工作效率非常低 ,整体作业分析的 SLA 无法得到保证;
  • 由于上下游数据同步的阻塞问题,导致了离线数据同步实时性很差, 上下游数据经常出现数据不一致的情况 ,非常影响提供给作业的数据质量。

其实同盾科技的业务场景并不复杂,只需要同步生产环境中数千个 MySQL 实例至下游的离线系统,提供给作业开发人员通过大数据平台进行离线分析加工。 项目的核心目标是在海量数据落库下,保障在线到离线数据的数据库的准实时性和一致性,并提供优质的数据服务给内部的风控系统开发人员、算法模型工程师和运营人员加工数据

为什么选择 TiDB?

经过长时间调研,同盾科技的技术团队最后选择了新一代分布式数据库 TiDB 作为离线层的核心数据库。同盾科技数据库运维梁高升表示,主要有以下几点原因最终促成同盾选择 TiDB :

首先, TiDB 高度兼容 MySQL 协议 ,在 TiDB 的使用和运维过程中大大减轻了运维和开发人员的使用成本;

第二,TiDB 作为 分布式数据库 ,同盾可以把它看成一个大的数据库实例,可以汇聚上游所有的MySQL实例数据;

第三,TiDB 具备 存算分离 的架构,可以让同盾非常灵活地控制硬件成本,而不用一味堆砌服务器;

最后,TiDB 拥有 非常活跃的社区 。即使在使用 TiDB 的过程中遇到一些问题也马上能在社区得到解决。

解决方案

no-alt

最终,同盾科技数据库团队构建了一整套基于 TiDB 的数据流转架构,该架构共分为三层:

  1. 实时数据层

同盾内部有 3000+ MySQL 实例,在实时数据库层通过 MySQL Cloud 管控上游数千个 MySQL。

  1. 传输层

在传输层,从 MySQL Cloud 对接实时数据同步任务到内部 Otter,Otter 可以实现准实时同步 MySQL 数据,然后再由 Otter 实时同步数据到 TiDB。

上下游同步组件决定了数据在下游离线场景的整体数据质量,同盾对数千个 MySQL 实例同步数据的同时,需要保证其稳定性、低延迟及整体可控的管理成本。虽然 PingCAP 数据迁移工具 DM 支持全量/增量灵活的数据导入场景,并具有较快的导入速率,但目前单个 DM worker 只支持绑定一个数据源,这限制了管理大量 MySQL 同步任务的需求。同盾最后选择使用 Otter 作为常态化的数据增量同步平台,但 Otter 只支持增量数据同步,且单任务吞吐有上限,同盾通过使用其支持 spark streaming 来进一步保障同步的吞吐和准实时性。未来在 TiDB 推出一个 DM worker 支持多个数据源的特性后,同盾会再考虑进行替换。

  1. 离线数据层

离线数据层中的大数据平台主要管控 TiDB 的元数据和实际到下游的同步情况。在 Spark 运行作业的过程中通过 TiSpark 去访问 TiDB,最后接入 Hadoop 进行分析作业。

业务收益

通过打造 TiDB 数据产品链,同盾科技实现了数千个 MySQL 数据的离线汇聚管理。TiDB 有着便捷易操作的 Dashboard 管理界面,运维无心智负担,大大提升了数据库运维团队的管理运维和使用数据的便捷性与效率。同时,TiDB 的高性能保障提供高质量的数据服务,实现了准实时同步数据。

同盾科技数据库运维梁高升介绍,同盾刚开始上线的是 TiDB 2.0 早期版本,在上下游数据同步过程中遇到了一些 TiDB 和 MySQL 不那么兼容的情况,如果在上游有大量数据更新的情况下,会出现同步阻塞的情况,导致同步的实时性、一致性出现问题。但 TiDB 版本迭代速度非常快,每个版本都会对性能及稳定性做出大量改进和优化, 在升级到 5.4 版本后,同盾就已经解决了大部分的兼容问题 。而且在基准测试中,TiDB 的性能也得到了质的飞跃。

未来规划

同盾科技是 TiDB 非常早期的用户,多年的使用让同盾确信 TiDB 是一款非常好的产品, 未来也会继续致力于在更多的场景依靠 TiDB 生态落地赋能一些业务场景 。例如,虽然同盾的大部分作业是 T+1,但内部也有很多实实在在的实时分析场景,比如实时展示的 BI 系统,通过TiFlash 实时分析查询引擎可以进一步提升分析效率,更及时地满足实时分析需求;同盾国内在线业务针对海量关系型数据库初始使用的是 MyCAT,但是 MyCAT 的运维非常困难,对开发也不是很友好,更像是上一代的分布式数据库产品。后续,类似 MyCAT 这样的场景也很有必要使用 TiDB 进行替换。

近几年,随着出海趋势愈发火热,同盾科技在出海业务势头也非常迅猛,业务涉及东南亚、北美、欧洲等多个区域,这就需要在谷歌云、AWS、阿里云等通用公有云上,有一款标准的分布式数据库服务,帮助其在全球快速布局业务。 而 TiDB Cloud 已经在各大主流公有云上提供服务,这也给同盾科技构建坚实的技术底座提供了更好的选择

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐