瓜子二手车在财务中台结账核心系统 TiDBTiFlash 实践

news2024/9/28 7:18:59

作者: jshan 原文来源: https://tidb.net/blog/69f61649

一、前言

瓜子二手车,作为业界独树一帜的二手车电商平台,正以其创新力量重塑整个二手车行业。我们以用户为中心,致力于提供卓越的交易和服务体验,这一点从我们买家用户的NPS得分高达53分便可见在行业中无疑是一个领先的成绩。瓜子二手车不仅仅是一个交易平台,更是中国二手车流通领域的重要基础设施,我们推动着车辆的全国性高效流通和规模化交易,促进了汽车消费,加速了汽车市场的循环消费模式,为实现中国汽车产业的大流通贡献力量。瓜子二手车作为中国二手车流通的产业基础设施,助力二手车实现全国性高效流通与规模化交易,拉动汽车消费,推动汽车市场形成循环消费,实现中国汽车大流通。

二、 瓜子二手车与 TiDB 的故事

在这个数字化转型的旅程中,我们邂逅了TiDB,一个领先的开源分布式关系型数据库。TiDB的多功能性——支持在线事务处理(OLTP)和在线分析处理(OLAP),以及其水平扩展、金融级高可用性、实时HTAP能力、云原生特性,以及与MySQL协议和生态的兼容性——这些特性与瓜子二手车的业务需求不谋而合。自2018年起,我们开始关注TiDB,并在2020年决定正式采用这项技术,以支持我们的业务发展。

TiDB的引入,对于瓜子二手车来说,是一个重要的里程碑。它不仅承载了我们的众多核心业务:下单支付、商城标签管理、还支持了我们的重要核心系统——财务中台系统,该系统是连接业务与财务的桥梁,实现了数据的高效流转和处理。此外,用户设备激活和公众号等关键业务也得益于 TiDB 的稳定和强大性能,确保了服务的连续性和可靠性。

随着TiDB的深入应用,我们不断优化和升级系统,以应对业务的持续增长和技术的不断演进。我们的故事是关于创新、增长和数字化转型的故事,而TiDB在其中扮演了不可或缺的角色。未来,我们将继续携手TiDB,探索更广阔的技术可能,为用户创造更大的价值,推动瓜子二手车向更高的业务巅峰迈进。

三、财务中台系统

1. 财务中台

财务中台是连接业务系统与账务系统的中间枢纽,上游对接集团所有业务系统,将业务数据转化为财务视角的数据,从而实现集团层面的业财一体化。同时财务中台可以对线上财务数据进行统一管理与输出,不仅提升了财务月结工作时效,还可以通过财务视角对企业经营状况进行分析,支撑业务决策。

2. 系统架构

财务中台分为 数据接入、标准单据、核心计算、数据输出 四个主模块,整体以配置为主,通过配置形式应用上下游业务变化,同时解放技术同学,完全由业务或者运营同学负责业务的对接和数据的转换。

1、数据接入:对接业务系统的数据,通过定义数据映射关系,将业务数据转换为统一的标准数据格式。

2、标准单据:将业务数据转化为财务视角下的数据,即业务数据的标准化和数据结构标准化。

3、核心计算:基于标准单据的数据,或者加工计算的数据,对数据的进一步加工,清洗,转化。

4、数据输出:将加工后数据,通过配置输出到下游系统。

no-alt

四、为什么选择 TiDB

财务中台作为瓜子二手车业务和财务数据的核心枢纽,对数据库的选择有着严格的要求。选择TiDB作为财务中台的数据库解决方案,主要是基于以下几个考虑:

1. 成本效益

商业数据库虽然提供了便捷的使用体验和保障,但其高昂的许可费用和维护成本对于企业来说是一笔不小的开支。 TiDB 作为一个开源的数据库解决方案,可以显著降低财务中台的总体拥有成本(TCO),同时提供相似甚至更优的功能特性。

2. 数据处理能力

财务中台需要处理的数据量巨大,且数据模型复杂,单表数据量超出了传统 MySQL 单个实例的处理能力。在这种情况下,使用 MySQL 需要进行分库分表操作,这不仅增加了业务层实现的复杂性,还带来了架构上的挑战。TiDB 的分布式存储特性能够有效应对大规模数据,无需分库分表即可轻松管理海量数据。

3. 查询性能

财务中台的业务特殊性要求数据库能够高效地处理多表之间的 join 关联查询和嵌套查询。TiDB 在大数据量下的 join 操作性能优于 MySQL,这意味着在执行复杂查询时,TiDB 能够提供更快的响应速度和更高的数据处理效率,从而提升财务中台的业务处理能力。

4. 技术兼容性和易用性

TiDB 基本完全兼容 MySQL 协议,这意味着对于已经熟悉 MySQL 的技术人员来说,无需额外学习成本即可顺利迁移和使用 TiDB。这种兼容性大大降低了技术迁移的门槛,同时也保证了现有应用的无缝迁移和开发工作的顺利进行。

5. 可扩展性和高可用性

财务中台对数据库的稳定性和可用性有着极高的要求。TiDB 的分布式架构支持节点的无限扩容,可以根据业务需求灵活扩展资源,同时保持高可用性。此外,TiDB 支持在线 DDL 操作,使得数据库可以在不停机的情况下进行结构变更,这对于保证财务中台的持续运行至关重要。

6. 简化数据汇聚流程

使用 MySQL 时,由于分库分表的需要,下游数据汇聚过程可能会变得复杂且容易出错。而 TiDB 的分布式特性简化了这一流程,使得数据汇聚更加直接和高效,减少了数据整合的时间和成本。

综上所述,TiDB 以其成本效益、数据处理能力、查询性能、技术兼容性、可扩展性以及高可用性等优势,成为瓜子二手车财务中台理想的数据库选择。通过采用 TiDB,财务中台能够以更低的成本实现更高效、更稳定和更安全的业务运营。

五、为什么我们还需要 TiFlash

瓜子二手车在引入 TiDB 后,虽然有效支撑了财务中台的业务发展,但随着业务量的持续增长,也遇到了一些挑战。为了进一步提升系统性能和稳定性,引入 TiFlash 引擎成为必然选择。以下是引入 TiFlash 的主要原因和其带来的显著改进:

引入TiFlash 主要原因

1. 复杂查询处理 :瓜子二手车的内部业务极为复杂,系统需要通过配置化实现高度灵活性。在某些业务场景中,单条 SQL 语句可能长达数千行,涉及多表之间的 join 和嵌套查询。TiDB 虽然能够处理这些复杂查询,但随着数据量的增加,性能瓶颈逐渐显现。

2. 内存管理问题 :随着业务数据量的激增,TiDB 和 TiKV 节点的内存使用率急剧上升,经常出现内存溢出(OOM)的情况,导致服务不稳定。这对于需要高稳定性的财务中台系统来说,是一个亟待解决的问题。

3. 结账周期缩短 :财务中台的结账周期越来越短,对系统性能的要求也越来越高。传统的 SQL 优化已经无法满足快速结账的需求,需要更高效的数据处理能力。

4. 避免异构系统维护 :如果使用额外的 MPP 数据库处理 AP 类查询,需要从 TiDB 同步数据到 MPP 系统,这不仅增加了数据同步的复杂性,还带来了异构系统维护的额外负担。引入 TiFlash 可以在同一系统中实现 HTAP(混合事务和分析处理),简化架构并提升效率。

TiFlash 带来的改进

1. 显著提升查询性能 :在测试环境中,引入 TiFlash 后,原本需要 16 分钟才能完成并可能导致 OOM 的复杂查询,现在仅需 6 分钟左右即可完成。这种性能提升在生产环境中也得到了验证。

2. 降低任务平均耗时 :TiFlash 的引入使得任务的平均耗时降低了30%,显著提高了财务中台的工作效率。

3. 处理大规模数据 :在某些业务场景中,数据量超过 15GB 时,原有的系统无法完成查询。而TiFlash能够顺利处理这些大规模数据,确保了业务的连续性和数据的完整性。

4. 减少查询尖刺 :通过引入 TiFlash,系统在高并发查询时的性能波动(如 999、80 查询值尖刺)明显降低,提升了系统的稳定性和可靠性。

no-alt

5. 用户反馈积极 :用户普遍反馈任务查询速度明显提升,增强了对财务中台系统的信任和满意度。

通过引入 TiFlash,瓜子二手车不仅解决了现有系统的痛点,还为未来的业务扩展和性能提升打下了坚实的基础。

六、 低版本的 TiFlash 面临的问题

瓜子二手车自2018年起开始关注TiDB,并在2020年正式引入该技术。随着业务的不断发展,我们经历了TiDB的多个版本迭代,目前主要使用的是TiFlash和RAWTiKV的5.x版本。然而,在这一过程中,我们也遇到了一些挑战:

1. TiCDC性能问题 :我们发现TiCDC在数据同步方面存在一定的延迟,并且内存占用较高,这影响了数据流的实时性和系统的稳定性。

2. TiFlash性能提升需求 :尽管TiFlash已经在当前业务中提供了良好的支持,但为了应对日益增长的数据量和查询复杂性,我们需要进一步提升其性能。

3. 资源管控难题 :当前版本中缺乏有效的资源管控机制,这限制了我们对计算资源的优化和分配能力。

4. RAWTiKV功能限制 :RAWTiKV目前缺少TiCDC的数据同步功能,这给数据管理和实时性带来了不便。

七、新版本的TiDB&TiFlash 可以解决哪些问题?

新版本的 TiDB 和 TiFlash 为瓜子二手车带来的改进和解决的问题主要包括:

1. 内存使用优化 :通过引入MemoryTracker,新版本 TiFlash 能够更精确地跟踪和记录每个 MPP 任务使用的内存,有效避免因单个查询消耗大量内存导致节点 OOM 的问题。当内存使用超过限制时,系统可以强行中止请求,减少查询间的相互干扰。

2. 存储优化 :新版本 TiFlash 的PageStorage(PSv3)重新设计,优化了数据存储结构,减少了因数据重写引起的 CPU 和 IO 资源浪费。通过SpaceMap记录数据块使用情况,避免了数据重写,降低了 GC 需求,提升了写延迟和查询 CPU 利用率。

3. 线程管理改进 :DynamicThreadPool解决了线程频繁创建和销毁的开销,通过固定线程和动态线程的智能管理,提升了 CPU 利用率。

4. 查询调度优化 :引入MinTSOScheduler查询任务调度器,控制TiFlash中同时使用的线程数量,有效防止了 OOM 和 OOT 问题。

5. 在线DDL性能提升 :TiDB v6.5.0 版本支持多表 DDL 并行执行和 Fast DDL 在线添加索引提速 10 倍,大幅减少了 DDL 操作对业务的影响。

6. 增强的MPP引擎 :TiDB 6.0 版本增强了 TiFlash 的 MPP 引擎,新增支持了更多函数和算子下推到 TiFlash 层进行计算,提升了计算效率。

7. 列式存储优化 :TiFlash 的列式存储结构专为 OLAP 查询优化,提供了快速实时分析的能力,与 TiKV 行存结合使用,有效应对复杂业务查询。

8. 智能计算下推 :TiDB 可以根据查询需求智能地选择使用 TiFlash 列存或 TiKV 行存,甚至在单个查询中混合使用以提供最佳性能。

9. 简化的架构和易用性 :TiFlash 作为 TiDB 的分析引擎,简化了数据架构,无需额外部署和维护单独的分析型数据库,同时保持了数据的强一致性和实时性。

通过这些改进,新版本的 TiDB 和 TiFlash 能够为瓜子二手车提供更高效、更稳定以及更安全的数据库解决方案,满足其在数据处理和业务发展上的高标准需求。

八、展望

瓜子二手车通过引入 TiDB 和 TiFlash,不仅解决了财务中台系统在数据处理和查询性能上的痛点,还为公司带来了成本效益和技术优势。随着技术的不断进步和业务需求的增长,瓜子二手车将持续探索和利用 TiDB 及其生态产品,以实现更高效、更稳定的业务运营。

通过不断的技术创新和战略升级,瓜子二手车正在引领二手车行业的数字化转型,为用户提供更加便捷、高效的服务体验。TiDB 的引入和成功应用,无疑为瓜子二手车的未来发展提供了坚实的技术支撑。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

熊海1.0cmsPHP代码审计

熊海1.0cmsPHP代码审计 环境搭建 下载之后直接使用phpstduy搭建就好了 工具使用 比如使用seay审计系统 sql大多数是存在的,但是没有文件上传,这个就是需要自己去验证 漏洞审计 SQL注入 有点多,随便拿一个举例子 就比如我们的登录页面…

蚓链数字化生态系统:引领企业迈向数字化新时代

在当今竞争激烈的商业世界中,数字化转型已成为企业生存和发展的关键。然而,面对复杂的业务流程、海量的数据以及不断变化的市场需求,许多企业在数字化的道路上举步维艰。这时,蚓链数字化生态系统解决方案宛如一盏明灯,…

苹果手机清理软件:让你的iPhone保持最佳状态

随着iPhone成为我们生活中不可或缺的一部分,设备上积累的无用数据也在日益增多。这些数据不仅占据宝贵的存储空间,还可能影响设备的性能。幸运的是,市场上提供了多种苹果手机清理软件,帮助用户有效管理手机空间,提升设…

具有重加权位置和变换稀疏性的鲁棒非刚性配准算法 (RPTS)

该算法针对非刚性配准的问题。相较于刚性配准,非刚性配准更具有挑战性。要解决的问题通常是不适定的(ill-posed)、且自由度高,因此对噪声和异常值很敏感。为了提高非刚性配准算法对噪声和异常值的鲁棒性,李坤等人提出了…

【MetaGPT系列】【MetaGPT完全实践宝典——多智能体实践(辩论赛)构建】

目录 前言一、智能体1-1、Agent概述1-2、Agent与ChatGPT的区别 二、多智能体框架MetaGPT(特朗普与拜登的二人辩论)2-1、安装&配置2-2、使用已有的Agent(ProductManager)2-3、智能体对抗辩论——背景2-4、定义动作2-5、定义角色…

美亚科技现场检查问题不少:应收账款大幅攀升,与前员工交易金额巨大

《港湾商业观察》施子夫 6月27日,广东美亚旅游科技集团股份有限公司(以下简称,美亚科技)的IPO被北交所受理,保荐机构为广发证券。7月24日,北交所下发审核问询函。 此次IPO,美亚科技计划投资总…

GIS图形库更新2024.7.29-8.4

更多精彩内容请访问 dt.sim3d.cn Cesium 上周发布了1.120版本, ✨ 功能和改进 添加Transforms.computeIcrfToMoonFixedMatrix和Transforms.computeMoonFixedToIcrfMatrix这两个方法,用来计算给定时间内的月球固定坐标系和 ICRF(国际天球参…

WLAN国家码与信道顺从表

国家码和信道顺从表及信道功率限制 不同的国家和地区规定了在本国或本地区可以使用的信道、射频信号在信道中的最大发射功率。工作在不同信道的射频信号,信号强度可能会有差别。国家码和信道顺从表、各信道的功率限制值、信道编号和频率对照关系请参见国家码和信道…

LED透明屏与LED显示屏

在当今数字化时代,显示技术的发展日新月异,LED显示屏作为其中的重要一员,已经渗透到我们生活的方方面面。而LED透明屏作为LED显示屏的创新产品,以其独特的优势在多个领域展现出巨大的应用潜力。本文将全面介绍LED透明屏与传统LED显…

18981 正方形和圆

这个问题可以通过计算正方形和圆的面积并比较它们的大小来解决。正方形的面积可以通过边长的平方来计算&#xff0c;圆的面积可以通过半径的平方乘以π来计&#xfffd;&#xfffd;&#xfffd;。 以下是使用C的代码实现&#xff1a; #include <iostream> #include &l…

云原生-利用容器和编排器

容器和编排器旨在解决单片部署方法中常见的问题。 1. 整体部署的挑战 传统上&#xff0c;大多数应用程序都是作为单个单元部署的。这样的应用程序被称为单体。这种将应用程序作为单个单元部署的一般方法&#xff08;即使它们由多个模块或程序集组成&#xff09;称为单体架构&…

Kubernets(k8s) 网络原理二:Pod访问外网

上一篇文章中&#xff0c;我们介绍了pod与宿主机通信&#xff0c;并且通过network namespace模拟了通信过程。回顾整个流程&#xff0c;无非就涉及到两个东西&#xff0c;通信设备和路由规则。 本文要讲的&#xff0c;也离不开这两个东西&#xff0c;只不过需要对容器IP进行额…

django高校毕业生就业推荐系统-计算机毕业设计源码26096

摘 要 当前就业市场竞争激烈&#xff0c;高校毕业生面临着就业难的问题&#xff0c;同时企业也面临招聘难、选人难的挑战。为了更好地对接高校毕业生和企业之间的需求&#xff0c;为毕业生提供个性化的就业求着信息&#xff0c;开发一套充分利用Django和Python技术实现的毕业生…

arcgis for js 如何自定义绘制仿高德导航线(自定义轨迹路线)

1、arcgis for js vue3 绘制效果图 实现 1、实现上图路线的自定义线条&#xff0c;先拆分线条为三个部分&#xff1a;较宽的暗绿色背景浅绿色背景白色箭头 2、自定义线条的symbol&#xff0c;使用CIMSymbol import CIMSymbol from "arcgis/core/symbols/CIMSymbol&q…

【Python教程】如何使用Jupyter Notebook

Jupyter Notebook 是一个基于 Web 的交互式计算环境&#xff0c;支持 Python、R、Julia 等多种编程语言。它是数据科学家、分析师和研究人员的常用工具。Jupyter Notebook 提供了一个强大的用户界面&#xff0c;可以通过笔记本格式进行代码编写、运行、调试、可视化和文档化。 …

DREAMLLM: SYNERGISTIC MULTIMODALCOMPREHENSION AND CREATION

发表时间&#xff1a;arXiv 2024年5月15日 论文链接&#xff1a;https://arxiv.org/pdf/2309.11499 作者单位&#xff1a;Xi’an Jiaotong University Motivation&#xff1a;本文介绍了 DREAMLLM&#xff0c;这是一个学习框架&#xff0c;首先实现了多功能多模态大型语言模型 …

Java IO.字符集,流,缓冲流 转换流 对象操作流

一.字符集 如果使用字节流 , 把文本文件中的内容读取到内存时, 可能会出现乱码 如果使用字节流 , 把中文写入文本文件中 , 也有可能会出现乱码 读取n.txt"你好" 两个汉字 字节流读中文&#xff0c;每次只能读一部分所以出现了乱码 字符集&#xff08;Character se…

美股:Nvidia的新一代AI芯片Blackwell或因设计缺陷推迟上市

设计缺陷影响推出时间 据知情人士透露&#xff0c;全球领先的芯片制造商Nvidia计划推出的最新人工智能(AI)芯片Blackwell可能面临长达三个月甚至更长的推迟。这一变动可能会影响到Nvidia的多位重要客户&#xff0c;包括Meta、谷歌和微软等&#xff0c;这些客户已订购了总值数百…

Datawhale AI 夏令营 从零入门 AI for Science(AI + 经济)

1.在TASK3中虽然给出了时间序列挖掘加融合模型的方法预测price&#xff0c;但是并不能识别到负电价的情况。查看TASK3给出的代码的预测结果可以发现模型几乎不会预测出负数&#xff0c;这和实际情况是有差别的。 2.利用爬虫爬取天气信息与风电信息绘制热力图 惊人的发现price和…

【MATLAB源码】数学建模基础教程(2)--层次分析法(评价类算法)

系列文章目录在最后面&#xff0c;各位同仁感兴趣可以看看&#xff01; 层次分析法 引言一、层次分析法的特点二、模型的建立求解过程 (1)问题的提出&#xff1a;实际问题的转化(2)建立层次结构模型(3)构造判断(成对比较)矩阵(4)一致性检验&#xff1a;三、层次分析法的优点与…