引言
贝格迈思自主研发的明睿智能数据库AiSQL系统BigInsights以高性能作为其主要优势,在工信部举办的2023年(第六届)行业信息技术应用创新大会上荣获“2023高性能数据库卓越产品奖”,也是本次大会上唯一获此殊荣的国产数据库系统。目前,BigInsights当前在金融、制造业及互联网行业已经广泛应用,本文将通过介绍BigInsights在绿巨能回收的应用案例,展示高性能BigInsights给用户带来的价值。
绿巨能背景介绍
云南绿巨能环保科技有限公司是国内互联网回收领域的领军企业。公司自2019年开始,凭借创新的互联网思维对传统废品回收行业改造,构建全新的“美团式废品回收”商业模式。旗下绿巨能回收平台自上线以来增速显著,平台以运维端为核心不断依据市场需求进行迭代和升级,以WMP为服务基础提供便捷高效的线上支持,以覆盖全国的前端服务机构为矩阵构建高效性成长性的O2O服务体系,目前已经成长为布局覆盖全国的O2O领先回收平台。
绿巨能回收线下已经构建全国22个省4个自治州4个直辖市200个地级市以及800多个区县的服务矩阵,线上完整用户端、服务端及分拈端全覆盖的3.0平台布局,架构完整的互联网+回收O2O 产业生态链。通过多端口一核心的全流程、多节点、精细化数据采集,形成完整的互联网+回收数据化管理, 为城市垃圾分类数据化科学化建设提供了数据基础。成为集市场意识、运营能力、技术水平集社会价值全领先的“互联网+回收”领军者。
上图展示了绿巨能回收流程的生命周期,简单举个例子,客户家里如果有物品需要处理,就可以通过绿巨能公众号或小程序下一个订单,平台会将订单分配给区域内最近的线下回收员,回收员联系客户约定时间上门回收;线下对物品打包及称重后,回收员将相关信息输入到线上平台,平台按照既定的规则进行结算;客户确认订单后平台就将款项支付给客户,客户对服务做出评价获取相应积分。简单的介绍可以分为五个字:下单到结算。整个业务的全链路中可以拆解成以下的关键节点:客户下单之后回收员的揽收,揽收后的结算及最终物品的入库。物品的回收过程即完成了回收的全链路的生命周期。在每个环节中会产生大量的数据:物品信息、订单信息、回收员(回收车)位置信息等,对每个环节的每一个数据都会进行相关的分析,包括时效监控等。
在绿巨能回收2.0平台,事务数据库系统和分析数据库系统是分离的, 订单系统采用的是MySQL 数据库,分析平台采用的是PostgreSQL 数据库。两个数据库通过数据库同步工具实现数据的一致性。2022年下半年开始,MySQL 的处理能力已经到达性能瓶颈点了,为解决性能问题,绿巨能测试了MySQL分库分表的方案,但通过一段时间的测试发现分库分表不但没能解决性能问题,还大大提高了整个系统的复杂性。因此,绿巨能开始寻找新的数据库解决方案。
为什么选择明睿智能数据库系统BigInsights
我们分析总结了绿巨能在数据库使用过程中遇到了很多技术层面上的痛点,主要有以下几个方面:
- 业务发展快、数据量激增,原有系统处理能力不足,出现严重的性能瓶颈,影响业务的发展;
- MySQL数据库能存放的数据周期越来越短, 业务方对数据保存周期需求上升;
- MySQL分库分表设计满足不了业务方分析和时效需求,统计分析依赖存储过程,系统的扩展性和可维护性极差;
- 数据库是整个业务系统的中心节点,存在单点故障,因此风险高,并且数据从MySQL 同步到PostgreSQL存在较高延迟,分析时效不够。
鉴于以上痛点,新的数据库平台需要有以下几个方面的能力:
- 支持处理能力的在线扩展,支持数据按区域分片,能自动分裂和迁移,支持冷热数据分离。
- 支持强一致的分布式事务、二级索引,这是支持原来MySQL 业务必须要有的。
- 支持高并发写和更新,并且支持快速的按照业务方的需求查询。
- 支持无感读写分离,有效将负载均衡到全部的数据库节点上,提供稳定的性能。
- 支持大宽表的建设,支持存储过程,支持多维度的查询分析。
MySQL to BigInsinghts
架构图1 (以前的架构)
上图是绿巨能回收2.0版本的架构,大家可以看到在各个转运环节中有很多的数据及消息来源。左边是对接的消息中间件。右边可以分为以下几块:第一个是和第二个是实时订单程序和加盟系统程序,会把这些中间件的消息消费进来,然后存到MySQL里面;另外由于绿巨能的分析系统中有大量的多表查询,而MySQL 的分析能力很弱,因此需要将数据同步到PostgreSQL 数据库中进行分析,这在一定程度上满足了大量数据分析的需求,大量的数据统计分析依赖于在 PostgreSQL 上的存储过程。随着数据量越来越大,存储和计算的问题越来越凸显,单纯靠升级数据库服务器的硬件无法从根本上解决问题,并且随着硬件的不断升级,成本也越来越高。绿巨能方考虑采用新的技术方案上去寻找突破,对业务系统进行一个重新的架构升级。
BigInsights是云原生分布式HTAP 数据库,提供按需扩展、内置弹性和多API 接口,以消除为关键业务事务应用程序提供支持时的复杂性和风险。BigInsights使用创新架构的分布式存储层,为OLTP 工作负载提供横向扩展服务,具有高性能低延迟、极高的故障恢复能力。
架构图2 (升级后的架构)
上图是部署BigInsights替代原有的MySQL 和PostgreSQL后整个系统重构的架构:
左边这部分还是很多消息的接入,右边的所有业务系统(包括分析系统)都连接到一个BigInsights 数据库集群,各个数据库节点是对等模式,节点间可以自动负载均衡及互为备份,新的架构上的AISQL 数据库本身具备极致的事务处理和分析能力,可以在一个数据库内执行整个业务系统的处理和分析工作, 无需数据同步到额外的分析数据库,降低了系统的复杂性,并且支持按需横向扩展,随着节点的增加 整个系统的处理能力可以获得接近线性的增长,有效的解决了性能瓶颈问题。
重构后架构的优势:
- 高速的写入。AiSQL 支持对业务端点的每秒上万笔的数据实时写入,延迟极低, 经过测试,95% 的延迟在50毫秒内,比过去基于MySQL 数据库的写入性能提高10倍。
- 自动负载均衡。在事务类型的业务高峰期,所有节点都可以直接执行交易类型的操作,各个节点的负载自动均衡,保证了的资源的最大利用率。在晚上交易类型操作的减少时间端,三个节点的数据库可以并行执行查询分析操作,季度统计分析的操作从之前200分钟降低到120 分钟。
- 支持灵活扩展。升级扩容后数据自动重新均衡分布,升级后数据库服务器的硬件依然是三台服务器,处理能力比旧的架构提升30%,计划2024年扩展到5台服务器,预估处理能力将再次提升160%。
- 每一个数据都有三个副本,支持从副本的一致性读取,支持高可用及故障切换,少数节点故障不会导致数据丢失,可用性可靠性获得提升。
- 支持多租户架构,租户之间数据完全隔离。
- 支持全密态数据访问,保障数据的安全性,根据配置,数据在存储状态、处理过程、及网络传输过程中都可以是密文形式,因此可最大程度防止数据泄密。
- 支持自动数据压缩,且性能针对SSD 特殊优化,存储空间利用率整体提高40%以上。
通过在两个环境加载数据做性能压测对比,BigInsights 的数据写入速度为升级前MySQL数据库的15.4倍, 这对于绿巨能这种有大量端点写入数据的场景性能的提升有非常重要的作用。
次数 |
MySQL |
BigInsights |
||
用时(ms) |
操作/秒 |
用时(ms) |
操作/秒 |
|
1 |
127803 |
7825 |
8120 |
123153 |
2 |
126350 |
7915 |
8295 |
120555 |
3 |
124595 |
8026 |
8134 |
122941 |
平均 |
126249 |
7922 |
8183 |
122217 |
总共1000000条数据,BigInsights 插入速度为 MySQL的15.4倍
总结及未来展望
2023年绿巨能回收系统全面迁移到3.0 平台后,系统性能获得大幅度提升,系统可以为全国近2万端点提供峰值TPS 20000笔/秒的交易处理能力;全天联机交易处理时间120毫秒;日终处理耗时从之前308分钟降低到210分钟;季度汇总总时长从224分钟降低到151分钟。在没有增加成本的情况下,全面解决了性能瓶颈及扩展性问题。
随着业务需求的快速变化,绿巨能也对BigInsights提出了一些新的需求,期望BigInsights能更全面的满足未来业务发展的需求。
首先是希望尽快推出列存。BigInsights 目前的列存及矢量化引擎已经还在测试中,平台当前日增数据100G,历史数据需要归档及查询,因此列存及矢量化引擎的功能对系统的性能提升可以再上一个台阶。
第二,希望BigInsights可以把功能平台进行集成。BigInsights当前提供了很多管理工具,例如 BrightStudio、BrightCDC 等,但每个管理都是独立的,希望把这些工具都集成在一个集中管理平台上,这样对于运维人员的使用来说会更加便捷。
第三,希望提供全面的数据库自治能力。目前系统的运维主要是靠维护人员通过BrightStudio平台查看,分布式数据库节点多,维护起来相对复杂。如果数据库有智能故障分析功能的话,可以降低数据库管理的人力开销。BigInsights作为一款智能数据库,本身具备向量数据检索、库内机器学习等能力,高智能也是BigInsights优势特性,根据产品规划,下一步结合现有的 AI 技术,进一步将AI 能力应用到数据库的自动管理和优化上,从而全面实现数据库自治。