百亿大表的实时分析:华安基金 HTAP 数据库的选型历程与 TiDB 使用体验

导读

在金融科技迅猛发展的今天,华安基金作为行业的先行者,面临着数据管理和分析的全新挑战。随着业务的不断扩展和数据量的激增,传统的数据库架构已难以满足系统对实时性、灵活性和分析能力的需求。在这样的背景下,HTAP(混合事务/分析处理)数据库成为了数字化转型的关键。

本文由华安基金大数据开发工程师郑圣瑜撰写。探讨了华安基金在 HTAP 场景下的数据库选择。从实际业务场景出发,解析了选择 HTAP 数据库的原因及选择 TiDB 的决策过程;以及如何通过 POC 测试和实际应用,验证 TiDB 的优势;同时展示报表系统后台数据库从 MySQL 迁移到 TiDB 的案例及性能提升,分享测试和使用中的挑战及 TiDB 的新特性应用。

华安基金的数据库升级之路

华安基金管理有限公司,成立于 1998 年,总部位于上海,是中国证监会批准成立的首批 5 家基金管理公司之一。华安基金旗下公募基金规模超过 6000 亿元,非货币公募资产管理规模超过 3500 亿元。公司管理的公募基金共计 248 只,服务的客户数量超过 1.3 亿,累计为投资者实现分红金额超过 1000 亿元。华安基金凭借其出色的资产管理能力,累计获得金牛奖 57 座,另外多次获得金基金奖、明星基金奖等荣誉。

在 2018 年以前,华安基金的数据库技术栈采用了集中式架构,以 Oracle 为主,MySQL 为辅;在 2018 年后,系统的数据量和并发量都有了大规模的增长,数据仓库层面引入了一套基于 Hadoop 生态的国产化分布式数据库;到 2023 年华安基金响应号召进行了国产化改造,进行了国产集中式数据库的选型替换。随着业务的不断发展,面对系统的复杂性,一个既能处理大量事务,又能进行实时分析的数据库解决方案成为了必须,因此,华安基金开启了新一轮的架构选型。

华安基金开启新一轮的架构选型

系统复杂性让 HTAP 数据库成为必选项

华安基金第一次感受到 HTAP 数据库的重要性是在反洗钱系统的研发中。由于该系统既包含批处理场景,也包含交易场景。尤其是审计模块,业务分析前置条件较多、需要处理的数据量很大,服务于 1.3 亿投资人,涉及到大量的数据增删改查操作。

过去,OLAP 请求从上游负责 OLTP 请求的各个信息数据库中提取数据,在数仓进行加工处理,再将处理后的数据推送到下游的各个应用系统中。在纯分析场景中,原有的 Hadoop+分布式数据库架构能够满足需求,但在交易场景中,尤其是审计模块,效率下降得十分明显。

为了应对业务的需求,新的数据库架构必须具备以下能力:

  1. 实时混合交易分析查询能力;
  2. 海量并发数据写入查询能力;
  3. 透明水平弹性拓展能力;
  4. 实时大规模批量更新删除处理能力;
  5. 金融级自愈容灾高可用能力等。

因此,华安基金开启了 HTAP 数据库选型的技术储备工作。

HTAP 场景下的数据库选型历程

国产化改造要求

华安基金是上海仅有的两家基金行业中的国产化改造试点单位之一,根据相关部门要求,需要在 2027 年之前完成所有系统的国产化化改造,目前已经完成了 70%。

TiDB 是新一代分布式数据库的引领者,坚持自主开源的价值主张和全球化策略,2024 年 9 月,依托于 TiDB 经过深度优化与功能增强,为企业级关键业务场景量身打造的分布式数据库平凯数据库首批通过分布式数据库安全可靠测评,现已在金融、运营商、能源、医疗、电力、政企等多个行业的关键业务系统中得到了广泛应用和验证,这也是华安基金选择 TiDB 的前提条件。

透明、灵活、高效、易用的使用体验

在降本增效的大背景下,企业的 IT 人员有限,需要数据库可靠、稳定,并且运维简单;与此同时,金融行业的安全性和审计也至关重要,TiDB 的架构恰好能够满足这些需求:

透明、灵活、高效、易用的使用体验

  1. 原生分布式架构 :TiDB 的使用体验与集中式数据库相似,无需考虑分片键,简化了应用开发和建表的过程。数据库自动实现数据的打散和负载均衡,降低了人工运维成本。
  2. 存储计算分离 :TiDB 的存储和计算分离架构提供了更好的弹性扩展能力,允许存储和计算资源独立扩展。支持在线扩缩容,扩缩容操作在后台异步进行,不影响业务运行。
  3. HTAP 混合负载 :TiDB 支持行存储和列存储引擎,能够同时支持在线交易和实时分析,两种操作互不干扰。这种混合负载能力简化了技术栈,提高了分析效率,替代了原有的 OLTP+ETL+OLAP 架构。
  4. 高可用及易管理 :TiDB 的所有组件都具有高可用性,即使在节点故障时也能保障数据不丢失、业务不中断。此外,它还支持在线 DDL 变更、资源管控、图形化管理和安全审计等,提高了系统的易管理性。

TiDB 凭借先进的架构和透明、灵活、高效、易用的使用体验成为了此次 HTAP 数据库选型中的优选。

测试验证产品能力

在框定了选型范围后,需要通过严格的全链路测试来验证产品能力。在设置测试标准时,主要有两方面考虑:

  1. 本次测试的目标是 构建技术储备 。华安基金希望通过测试不同的数据库解决方案,为未来可能的技术升级和扩展打下基础。最初的设想是,只要新数据库在实时查询场景下,能够达到现有 TP 系统性能的 70%和 AP 系统性能的 70%,就足以满足需求。然而,测试结果表明,TiDB 的性能远超预期。特别是在 AP 场景中,TiDB 在组件带索引查询、多表关联、聚合等操作方面的表现极为出色,甚至超出了对 AP 性能 70%的预期。在 TP 场景中,TiDB 的性能与测试中的另一个 TP 数据库相当,并且在处理大规模批量操作时表现更佳。
  2. 数据导入和导出性能 是关注的重点。引入 TiDB 的出发点是报表数据集市,这是选择 TiDB 的关键应用场景。由于上游是数据仓库,需要导入大量数据,因此评估数据导入和导出的性能至关重要。华安基金期望推广的报表系统能够得到公司业务人员的广泛使用,这就要求查询速度必须足够快。因此,对数据库的导入导出性能进行了严格测试,以确保它能够满足对速度的需求。

根据以上原则,本轮选型测试采用 3 节点国产化硬件服务器以及操作系统进行部署,对百万级/亿级别/百亿级别等 13 项 HTAP 场景进行了业务测试,测试的场景和标准如下:

测试的场景和标准

TiDB 超过 2 TB 级别混合场景中,运维、管控、数据处理、弹性扩容等场景均表现优秀。经过综合评估,TiDB 在 GPT(General Purpose Transactional Processing,通用事务处理)得分上脱颖而出:

TiDB 在 GPT 上的得分

在报表系统的应用效果

在将报表系统升级至 TiDB 之后的性能对比分析显示,原先依赖单机 MySQL 数据库的系统经过升级,采用了三台服务器的配置,性能提升显著,远超三倍的预期。升级后的系统表现赢得了后台运营团队和业务团队的高度满意。

在报表系统的应用效果

TiDB 在华安基金的近期应用主要集中在 OLAP 能力上,支持大规模数据的聚合分析和精确查询,这些场景要求数据库能够处理千万级以上的多表关联和聚合分析,以及百亿级的数据查询和范围扫描。未来,TiDB 在华安基金的应用将扩展到 OLTP 层面,支持更复杂的事务处理和在线交易业务,包括注册登记系统 TA、华安基金 APP、华安基金投资助手公众号,以及反洗钱系统审计等场景。

 OLAP 能力

TiDB 的新特性

在测试过程中,除了对 HTAP 能力的验证,TiDB 的新特性也带给了华安基金惊喜的使用体验。

Pipelined DML

过去,在处理大规模事务的过程中,往往需要调整应用端的业务逻辑和需求以适应大量数据的导入,使用到批处理 DML(Batch DML)功能。随着 TiDB pipelined DML 功能的推出,现在可以通过简单地添加一个参数开关来提升性能,无需再对业务操作进行修改。这一改进显著简化了操作流程,提高了效率。

Pipelined DML

TiDB 的新版本相较于旧版本,在性能上也实现了显著的飞跃。这些性能上的改进极大地提升了华安基金在处理大规模数据时的效率,并且优化了操作流程。

资源管控

TiDB 的资源管控特性为系统提供了关键的资源分配能力。报表系统需要特定的资源分配策略,尤其是确保高层管理部门能够优先获取计算资源。对于后台部门,如执行常规数据处理的,对速度的要求相对宽松。为此,华安基金实施了两个资源池的设置:一个是高优先级的 online(在线)资源池,另一个是 offline(离线)资源池。在系统界面中(RU Consumed by Resource Groups),online 资源池以红色标识,而 offline 资源池以蓝色显示,确保 online 资源池能够获得更高的优先级和使用权限。

资源管控

分区表全局索引

TiDB 的新特性——分区表全局索引,在营销领域的客户持仓分析中发挥了重要作用。面对一张每天新增超过 6000 万条持仓数据的明细表,数据导入过程中的稳定性非常重要,需要开启特定开关来确保操作的安全性。此外,针对业务人员的查询需求,通常基于普通索引执行点查询或小范围查询,TiDB 提供的全局索引(Global Index)功能显著提升了使用的高效性和便捷性。

分区表全局索引

ORC 文件导入

华安基金的上游数据仓库是基于开源 Hadoop 生态系统构建,主要采用 ORC 格式存储文件,TiDB 团队快速响应,在原有的文本文件和 Parquet 文件导入之外,实现了 ORC 文件的导入,从而满足了报表系统下游的多样化需求。

ORC 文件导入

图形化管理监控 TEM

TiDB 的图形化管控界面简化了操作流程,避免了仅依赖命令行进行操作的复杂性,同时集成了告警管理、数据备份和主机管理等关键功能。这些功能的集成与华安基金现有的大数据仓库操作高度一致,从而提高了管理效率和用户体验。

图形化管理监控 TEM

HTAP 技术选型的思路总结与未来展望

HTAP 技术选型的思路总结与未来展望

华安基金在选择 HTAP 数据库的过程中,遵循了一套全面而细致的选型思路,以确保所选技术能够充分满足业务需求并推动公司发展:

  1. 明确需求 :首先评估业务对 TP(事务处理)和 AP(分析处理)的需求比重,确定数据量、查询速度和响应时间,确保数据库能满足业务对实时性的要求。
  2. 技术特性评估 :考虑数据库的实时分析能力、可扩展性、高性能、安全性和灵活性,以支持业务人员实施的场景需求,特别是后台营销人员对数据实时性的需求。
  3. 集成与兼容性 :评估数据库与现有数据库、应用程序和其他关键系统的集成能力,确保数据同步策略的无缝实施。
  4. 安全性与可靠性 :重视数据库的安全性措施、容灾备份机制、数据恢复能力和错误处理机制,保障业务连续性和数据安全。
  5. 成本与投资回报 :分析数据库的购买、部署、维护和升级成本。
  6. 产品成熟度 :考察产品的成熟度、更新频率和技术支持情况,TiDB 已经在全球超过 4,000 家企业中部署,经过了金融、互联网等规模化场景的验证。
  7. 测试与验证 :在做出最终选择前,对 HTAP 数据库进行充分的测试和验证,确保其能满足业务需求。

经过细致的选型过程后,华安基金选择了 TiDB 作为 HTAP 数据库解决方案。现在,TiDB 在华安基金报表系统上已经稳定运行,成为了有参考性的解决方案;反洗钱系统作为金融行业当前的一个重点和难点,华安基金也在积极与众多同业探讨交流,探索 TiDB 的应用场景。

国内金融机构正纷纷借数字化转型建设加大投入,科技对于公募基金行业创新发展的驱动正在进入新的阶段。展望未来,相信 TiDB 有能力支撑华安基金的业务发展和技术需求,更好地服务于广大持有人和投资者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/964866.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

低代码系统-产品架构案例介绍、蓝凌(十三)

蓝凌低代码系统,依旧是从下到上,从左至右的顺序。 技术平台h/iPaas 指低层使用了哪些技术,例如:微服务架构,MySql数据库。个人认为,如果是市场的主流,就没必要赘述了。 新一代门户 门户设计器&a…

DeepSeek研究员在线爆料:R1训练仅用两到三周,春节期间观察到R1 zero强大进化

内容提要 刚刚我注意到DeepSeek研究员Daya Guo回复了网友有关DeepSeek R1的一些问题,以及接下来的公司的计划,只能说DeepSeek的R1仅仅只是开始,内部研究还在快速推进,DeepSeek 的研究员过年都没歇,一直在爆肝推进研究…

【Rust自学】20.1. 最后的项目:单线程Web服务器

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 20.1.1. 什么是TCP和HTTP Web 服务器涉及的两个主要协议是超文本传输​​协议(Hypertext T…

19.[前端开发]Day19-王者荣项目耀实战(二)

01_(掌握)王者荣耀-main-banner展示实现 完整代码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewpor…

Java 基于微信小程序的高校失物招领平台小程序(附源码,文档)

博主介绍&#xff1a;✌程序员徐师兄、8年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战*✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447…

题解:洛谷 P5837 [USACO19DEC] Milk Pumping G

题目https://www.luogu.com.cn/problem/P5837 温馨提示&#xff1a;鉴于数据范围小的可怜&#xff0c;我们可以用暴力一些的想法去做&#xff0c;别看到是普及/提高就被吓退了。 枚举最小流量 &#xff0c;然后跑一遍最短路&#xff0c;求出带限制的 到 的最短路的长度&#…

动态规划——斐波那契数列模型问题

文章目录 1137. 第 N 个泰波那契数算法原理代码实现 面试题 08.01. 三步问题算法原理代码实现 746. 使用最小花费爬楼梯算法原理代码实现 91. 解码方法算法原理代码实现 1137. 第 N 个泰波那契数 题目链接&#xff1a;1137. 第 N 个泰波那契数 算法原理 状态表示&#xff1a;…

LabVIEW涡轮诊断系统

一、项目背景与行业痛点 涡轮机械是发电厂、航空发动机、石油化工等领域的核心动力设备&#xff0c;其运行状态直接关系到生产安全与经济效益。据统计&#xff0c;涡轮故障导致的非计划停机可造成每小时数十万元的经济损失&#xff0c;且突发故障可能引发严重安全事故。传统人…

java程序员面试自身优缺点,详细说明

程序员面试大厂经常被问到的Java异常机制问题,你搞懂了吗运行时异常:运行时异常是可能被程序员避免的异常。与检查性相反,运行时异常可以在编译时被忽略。错误(ERROR):错误不是异常,而是脱离程序员控制的问题。错误通常在代码中容易被忽略。例如:当栈溢出时,一个错误就发生了,它…

大话特征工程:3.特征扩展

公元 2147 年&#xff0c;人类文明站在科技的巅峰&#xff0c;所有决策、发展甚至感知都被“全维计算网络”所掌控。这套系统以高维空间中的数据为基础&#xff0c;试图预测并塑造未来。然而&#xff0c;这场辉煌的技术革命却在悄无声息之间酿成了人类最大的危机——维数灾难。…

CSV数据分析智能工具(基于OpenAI API和streamlit)

utils.py&#xff1a; from langchain_openai import ChatOpenAI from langchain_experimental.agents.agent_toolkits import create_csv_agent import jsonPROMPT_TEMPLATE """你是一位数据分析助手&#xff0c;你的回应内容取决于用户的请求内容。1. 对于文…

2025.2.5

Web [SWPUCTF 2021 新生赛]ez_unserialize: 这个题先了解一下反序列化&#xff1a;反序列化是序列化的逆过程。序列化是将对象或数据结构转换为可以存储或传输的格式&#xff08;如JSON、XML或二进制格式&#xff09;的过程。反序列化则是将这个格式的数据转换回原始的对象或…

新版AndroidStudio 修改 jdk版本

一、问题 之前&#xff0c;在安卓项目中配置JDK和Gradle的过程非常直观&#xff0c;只需要进入Android Studio的File菜单中的Project Structure即可进行设置&#xff0c;十分方便。 如下图可以在这修改JDK: 但是升级AndroidStudio之后&#xff0c;比如我升级到了Android Stu…

Web3技术详解

Web3技术代表着互联网技术的最新进展&#xff0c;它致力于打造一个去中心化的互联网生态系统。以下是对Web3技术的详细解析&#xff1a; 一、Web3技术的核心概念 Web3是第三代互联网技术的代名词&#xff0c;代表着去中心化、区块链驱动和用户自有控制的理念。在Web3的世界中…

景联文科技:专业数据采集标注公司 ,助力企业提升算法精度!

随着人工智能技术加速落地&#xff0c;高质量数据已成为驱动AI模型训练与优化的核心资源。据统计&#xff0c;全球AI数据服务市场规模预计2025年突破200亿美元&#xff0c;其中智能家居、智慧交通、医疗健康等数据需求占比超60%。作为国内领先的AI数据服务商&#xff0c;景联文…

3.【BUUCTF】XSS-Lab1

进入题目页面如下 好好好&#xff0c;提示点击图片&#xff0c;点进去页面如下&#xff0c;且url中有传参&#xff0c;有注入点 发现题目给出了源码 查看得到本题的源码 分析一下代码 <!DOCTYPE html><!--STATUS OK--> <!-- 声明文档类型为 HTML5&#xff0c;告…

进程、线程、内存和IO模型的概念详解

进程、线程、内存和IO模型的概念详解 1 进程与线程1.1 进程1.1.1 进程分类1.1.2 进程的状态和转换1.1.3 僵尸进程和孤儿进程的区别1.1.4 进程之间的通信1.1.5 用户态和内核态1.1.6 用户空间和内核空间 1.2 线程1.2.1 线程的状态和转换1.2.2 进程与线程的区别 1.3 多进程和多线程…

浅谈密码相关原理及代码实现

本代码仅供学习、研究、教育或合法用途。开发者明确声明其无意将该代码用于任何违法、犯罪或违反道德规范的行为。任何个人或组织在使用本代码时&#xff0c;需自行确保其行为符合所在国家或地区的法律法规。 开发者对任何因直接或间接使用该代码而导致的法律责任、经济损失或…

Swagger相关内容整合

mvc:pathmatch:matching-strategy: ant_path_matcher 一、引入相关依赖 <!-- 图像化依赖 --> <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version> </de…

【数据结构】循环链表

循环链表 单链表局限性单向循环链表判断链表是否有环思路code 找到链表入口思路代码结构与逻辑 code 单链表局限性 单链表作为一种基本的数据结构&#xff0c;虽然在很多场景下都非常有用&#xff0c;但它也存在一些局限性&#xff1a; 单向访问&#xff1a;由于每个节点仅包含…