---
title: '从 Oracle 到 TiDB，国有大行打造本地生活 APP 新体验'
date: '2024-04-28T15:56:02+08:00'
status: publish
permalink: /blog/from-oracle-to-tidb-user-case
author: '周, 盛虎'
excerpt: '本文介绍了某国有大行推出的本地生活服务类 APP 在数字时代的创新应用实践。文章介绍了 TiDB 带来的优势和应用价值，包括灵活的扩展能力、无需分库分表、金融级高可用能力等，帮助该平台提升了用户体验，增强了业务竞争力。'
type: post
id: 6586
category:
    - 案例实践
tag:
    - HTAP
    - 'Oracle 迁移'
    - 金融
post_format: []
profile:
    - PingCAP
---
导读
--

本文介绍了某国有大行推出的本地生活服务类 APP 在数字时代的创新应用实践。该 APP 利用金融科技和互联网平台模式，打造“金融+非金融”的线上生态服务平台，满足了用户多样化的生活需求。为应对用户增长和数据量增加带来的挑战，该 APP 决定采用新一代 HTAP 数据库 TiDB 替换原系统中的 Oracle RAC，以提升整个系统的处理能力、扩展能力和服务能力。文章介绍了 TiDB 带来的优势和应用价值，包括灵活的扩展能力、无需分库分表、金融级高可用能力等，帮助该平台提升了用户体验，增强了业务竞争力。

创新的本地生活服务平台
-----------

数字时代，用户行为线上化、场景化趋势日益明显。为积极响应国家扩大内需、拉动消费的号召，某国有大行顺应时代潮流，于 2021 年推出了一款本地生活服务类 APP。该 APP 依托金融科技手段与互联网平台模式，创新打造“金融 + 非金融”的线上生态服务平台，满足用户多样化的生活需求。这款本地生活 APP 自上线以来，**注册用户数已达到千万级别**，成为了各地政府拉动本地消费的密切合作伙伴，平台特色包括：

- **丰富的生活场景服务**：涵盖美食、外卖、充值、打车、电影演出、缴费、家装生活、车生活等多个方面，满足用户衣食住行娱等全方位需求。
- **开放共享的合作模式**：为商家提供快速入驻通道，以线上平台推广提升商家曝光度，助力商家品牌宣传、活动集客和流量变现。
- **免佣的银行系交易平台**：为用户提供安全可靠的交易环境，并依托银行资源提供更多优惠福利。

数据架构面临新的挑战
----------

这款本地生活 APP 的业务功能涵盖基础服务、门面服务、抢券服务、订单服务、商户管理服务等多个方面，具体职能如下：

- 门面服务：提供商家信息展示、店铺导航、评价管理等功能；
- 抢券服务：提供优惠券上架、发放、核销全流程管理服务，前端服务按渠道分成 4 个抢券通道，采用业务垂直分库和集中库存储的方式来提升性能和可靠性；
- 订单服务：提供订单生成、维护、查询、评价和推送等功能，应用层采用分表设计来应对大流量的冲击；
- 订单历史查询服务：提供针对各类订单按照用户、日期、交易渠道等多维度的查询功能；
- 商户管理服务：提供商品类目及标签管理，商品上下架，KA 品牌商户维护等功能。

![改造前基于分库分表的数据架构](https://img1.pingcap.com/files/2024/05/20240504075920502.webp)<center>图 1：改造前基于分库分表的数据架构</center>**该生活 APP 上线后迅速推广，日活跃用户达到数百万，日订单量突破百万**。目前，存量表中数据记录行数超过亿行，20 多张表每天新增数据超过千万条。面对如此迅猛的业务发展和数据量增长，原有的技术架构（主要采用集中式数据库以及抢券服务的分库分表的技术架构）已经无法满足业务需求，无法做到对应用透明的快速弹性扩展。因此，需要找到一种新的技术架构或产品来解决现有架构的痛点：

- **处理能力受限**：集中式数据库受限于单机服务器资源限制，无法满足快速发展的生活类业务场景对数据容量和并发处理能力的需求。
- **高可用能力不足**：集中式数据库存在单点故障的风险，故障转移时会影响业务的连续性。
- **业务处理能力下降**：订单业务随着客户交易量的增加，部分业务需要在多个数据库或数据表中进行，增加了查询的时间和成本。当历史库也无法满足存储容量要求时，需要考虑继续拆分。

为了解决上述问题，抢券业务采用分库分表模式来提升并发处理能力，但当业务发生变更时，需要对所有分库进行修改和调整，增加了业务变更的难度和风险。DBA 需要对多个数据库或数据表进行管理和维护，进而增加了系统故障排查和维护的难度。

使用原生分布式数据库 TiDB 替换 Oracle
-------------------------

为缓解生活 APP 业务的高 TPS 并发访问以及海量数据带来的性能压力，经过对市场主流分布式数据库的调研，并结合自身业务场景实践，最终决定采用新一代 HTAP 数据库 TiDB 替换原系统中的 Oracle RAC，从而提升整个系统的处理能力、扩展能力和服务能力。TiDB 分布式数据库带来的优势主要体现在以下几个方面：

![改造后的分布式数据架构](https://img1.pingcap.com/files/2024/05/20240504080028537.webp)<center>图 2：改造后的分布式数据架构</center>- **灵活的扩展能力**：快速横向扩展可以满足业务持续发展带来的数据量增长问题；
- **无需分库分表**：原生分布式架构解决了分库分表原设计带来的痛点；
- **金融级高可用能力**：Multi-Raft 自选主和 TiCDC 提供主备数据的实时复制，提供了 7\*24 不间断的服务保障；
- **节约存储空间**：TiKV 采用 LSM Tree 存储引擎，通过编码压缩大幅减少存量、增量数据所需磁盘空间；
- **快速响应业务的要求**：分区表动态裁剪配合领域缓存设计满足大表对高并发、高性能查询的要求，Online Schema Change 保证在线 DDL 的快速执行。

![分布式数据库 TiDB 高可用部署示意图](https://img1.pingcap.com/files/2024/05/20240504080113790.webp)<center>图 3：分布式数据库 TiDB 高可用部署示意图</center>应用价值
----

该生活服务类 APP 是国有大行重点推出的线上生态平台，面向海量用户提供多样化的生活服务。为了满足高并发场景下高性能、高可用及大容量存储等处理能力，平台采用了分布式数据库 TiDB。TiDB 凭借弹性扩展、实时 HTAP 等优势，帮助平台提升了用户体验，增强了业务竞争力。

- **快速释放业务能力**：TiDB 具有弹性扩展和自动负载均衡能力，可以根据业务需求进行灵活扩容，简化应用开发，让应用更聚焦于业务功能的实现，企业无需考虑客户及交易量增加可能带来的架构改变。在抢券业务场景下，对现有集群进行动态扩容就能满足接入渠道及流量增长时对处理能力的要求。
- **提供实时数据处理**：TiDB 具有行列存互相隔离的能力，可以在不影响在线业务运行的情况下进行实时的数据分析，利用这个特性可以实现历史订单更多维度的实时分析能力，从而丰富客户画像及开展个性化的用户营销活动。
- **降低架构复杂度，有效节约成本**：避免随着业务增长进行复杂的分库分表处理，从而简化应用开发与运维工作，实现了高效降低成本的目标。

**延展阅读**：

- 金融行业内容专区上线，为金融机构数据库选型和应用提供深入洞察和可靠参考路径。[立即浏览](https://cn.pingcap.com/resources/finance/ "立即浏览")