如何支撑HTAP场景——HybridDB for MySQL系统架构和技术演进

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
简介: 10月12日的云栖大会·HTAP技术专场中,阿里云高级专家王骞探讨如何如何支撑HTAP场景,并重点分享了如何利用RDS技术实现HTAP业务,以及HybridDB for MySQL的系统架构和技术演进。

随着DT时代的到来,企业占有的数据越来越多,其规模可能达到上百TB甚至PB级,如何以合理的成本管理并维护这样一个数据库也成为各个企业IT管理中的核心问题。HybirdDB for MySQL是基于HTAP资源的数据库,同时支持OLTP,在一份数据上做事务,又支持实时分析。1012日的云栖大会·HTAP技术专场中,阿里云高级专家王骞探讨如何如何支撑HTAP场景,并重点分享了如何利用RDS技术实现HTAP业务,以及HybridDB for MySQL的系统架构和技术演进。

技术现状

首先看看技术现状,HybirdDB for MySQL是一个HTAP数据,希望同时解决在线事务和在线分析的问题。现在主流的数据库,比如MySQL,它非常擅长于做一些高并发的事务云,比如电商交易,或者尽量少的多表关联,或者预见索引的业务。反之,有一些数据库非常适合于做一些对静态数据的强分析。如果用户需要同时使用这两种业务,在现有技术方案解决下,需要事务处理库做事务类业务,需要分析类数据库做分析业务,这样无形当中会增加用户的成本,管理起来也非常的复杂。

2013年时团队看准了这个目标,希望帮助用户把这个问题解决掉,支撑更大的数据规模。在这个理念的支撑下就开始了HTAP数据库的研究。在数据规模变得非常大的情况下,成本也是非常值得考量的问题,在设计过程中项目兼顾了数据压缩,在线上观察到实际的业务,数据库能够做到3-15天压缩比。目前世界上最流行的几个数据库,比如MySQLOracle等等,它流行的并不是功能特性,而是通用的接口模式。但是,HybirdDB for MySQL并没有牺牲这方面的能力,它能够提供和MySQL一样的访问接口,帮助用户对业务做无缝的迁移。

产品现在支持SQL标准、TPC-HTPC-DS几个分析型的测试。作为RDS级云服务中一员,它同样支持RDS的云服务,比如高可靠、高可用、白名单、性能数据。在线扩容、备份恢复,这需要比较大的技术挑战。对于阿里云生态下的数据库,同时还支持DTSDMSCDPQuickBI等生态产品,可以帮助解决包括数据交换、数据操纵等多方面的问题。现在HybirdDB for MySQL的规模已经支持了国内外数十个Region,包括美洲、德国等,还有国内的北京、上海、杭州等等。目前,线上数据已经达到了PB级,每天新增几百TB级数据,供给多个阿里云比较著名的业务去做实时分析和实时的处理。

产品定位

既然是一个混合型的数据库产品,HybirdDB for MySQL就需要在OLTPOLDP两方面做性能和功能的扩展。在性能方面,HybirdDB for MySQL利用了分区自治,每个分区可以独立提供局部数据的业务,又能整体做数据的聚合、事务的聚合,提供跨区分布式的事务和分布式数据结算能力。和国内外知名数据库对比,可以看到每个数据库的定位。高并发的在线事务有一定局限,会在OLAP方面有所限制。HybirdDB for MySQL综合考虑了这几方面的因素,在架构上有很大的改进,同时解决了这几方面的问题。

技术演进

30142298ce1256211752398db6228c2bb66a7260

HybirdDB for MySQL整个产品的立项是在2013年,这时候遇到的主要问题是单机数据库的性能容量都不满足日益增长的业务需求,这时候就从中间件的思路去出发。在这个基础之上,从2014年到现在产品每年都提出了一些新的改进:比如说在2014年把中间件思路摒弃掉,改成了完整的数据库思路,解决了用户兼容性的问题;到2015年考虑到大数据降低成本,降低门槛,让更多用户参与到大数据的领域来;到2016年做了计算存储分离,这一年也做了产品公测,产品已经比较完善了,解决了单机MySQL解决不了的SQL;到了2017年,产品在OLAP方面做了更进一步的改进,引入了列存索引。在明年会做更进一步的技术革新,包括融合POLARDB作为存储引擎,更进一步提高事务能力。

1240f8cbf0924c4ce42901c95b1f713a2125ef73

在这个过程中,产品不断满足用户业务的需求,成长到现在的形态。如果对MySQL数据库了解比较多的话,会感知到它只能部署在一台机器上,因为它的存储引擎只能利用单机资源。再说说存储引擎方面,比如ADB有很多锁,这些锁会进一步限制它的并发吞吐能力,导致整机吞吐和数据处理能力下降。我们线上观察得知,MySQL性能最合适的情况下是30-50个并发连接,ALDP并发连接可以高达几千、上万。传统数据库问题会限制它在大数据领域的能力发挥,因此借鉴了分库分表中间件,就是把这些数据切开,每个数据利用业务的特性,管理和处理这些数据。中间件也会有些比较明显的局限,因为它要嵌入到用户业务代码里,它的通用性用得很好,每个用户访问中心件时就需要自己定这套业务代码。

ea1e3f4856822d6c147e5b84c5e15d4afd94083d

同时由于中间件是套在数据库上的一层,用户也有可能直接操纵顶层的数据库,这时候就会考虑到并发的问题。一些典型的问题,比如中间件要去做DBL时就需要锁住,避免用户再从旁访问。锁表过程中,数据库性能会下降。考虑到这些局限性能的问题,产品在2014年做了更大幅度的改进,过程中也遇到了非常多的问题,尤其是事故处理。2014年对SQL本身要求并不是很高,只能支持一些比较简单的聚合SQL。一些更复杂的,比如说需要数据重新交易的,在这个阶段还没有去支持,它的实现复杂度会更加高。

039d1815c4bb9627e54a5efadb8880924dd90237 

到了2015年时面临了超大规模的数据业务,包括用户希望存储上PB级的数据。在这个场景下单机数据库最多也只能提供3T左右的流量,即使压缩单机也只能放十几个T,如果想保证不损坏重建,带来的挑战很大。当然它的收益也很明显,原来是在物理机存储数据,再压缩改进一下,只需要几台或者十几台单机。这个过程中面对的最大问题就是如何实现一套低成本的存储引擎体系,综合考虑软件和硬件的问题后产品最终选择了MySQL引擎。

2797517a397f4c4b7e59d1864778a1e84bc22934

439e170558335152ff7ee91a338b444c28caf8b4

此外产品在现有硬件体系结构上还应用了混合的存储,利用一块flash卡当做硬件的缓存,综合实行了一套软硬一体的混合存储。因为大的副本一旦损坏,迁移和损坏就相当于几T数据的搬迁。

当前限制

目前HybirdDB for MySQL还有一些存储限制,比如不支持高级特性、触发器、存储过程、游标、外键。有限的分区规则下,只支持哈希分区、只支持一个字段作为分区键以及二级分区有限支持。HybirdDB for MySQL也有不太适合的业务场景,比如数据量较小时热点无法完全消除,即使消除的话也需要一些代价,需要换一些字段做分区键。暂不适合的业务场景包括有:业务结构简单且数据量小,存在热点,可以采取CloudDBA诊断优化+ RDS升级;基于Oracle的复杂系统,包含大量存储过程,可以采取ADAM + PPAS去“O”;还有业务水平拆分后存在大量分布式事务,如转帐,并发上来之后可以解决吞吐量的问题,建议选择POLARDBScaleUp扩展。

未来展望

下一个阶段,产品需要解决的问题就是继续增强易用性,如支持存储过程、丰富索引格式、丰富二级分区特性、支持多种字符集、支持外部表、支持外部数据快速加载等,用户可以把更多计算逻辑下沉到数据库上,让它的开发变得更轻量级。另外需要增强安全性,在政企和金融业务中,安全特性是他们非常看中的。比如说SSL安全加密、TDE文件加密、自主访问控制等等,下一阶段也要解决这方面问题。下一步还将继续改进体验,坚持一贯的理念,提供一站式的服务,减少用户选型,降低用户成本。架构方面也要做更多的改进,如软硬结合、智能调度、OLAP持续优化等等。

b9589069f59a45e56c304d66558ae2a5ba42e6ee

架构方面将持续优化,发挥新一代硬件优势,包括引入资源的存储引擎,在共享存储上做一个全新的引擎出来,进一步改善存储性能,增强存储能力。使用共享存储之后就不用考虑备份、迁移方面的问题,因为底层共享存储会cover掉这个问题,到明年也可以支持更全面的HTAP业务场景内容。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
4月前
|
存储 缓存 安全
某鱼电商接口架构深度剖析:从稳定性到高性能的技术密码
某鱼电商接口架构揭秘:分层解耦、安全加固、性能优化三维设计,实现200ms内响应、故障率低于0.1%。详解三层架构、多引擎存储、异步发布、WebSocket通信与全链路防护,助力开发者突破电商接口“三难”困境。
|
5月前
|
数据采集 监控 JavaScript
移动端性能监控探索:鸿蒙 NEXT 探针架构与技术实现
阿里云 ARMS 团队倾力打造的鸿蒙 NEXT SDK,为鸿蒙应用提供了业界领先的全链路监控解决方案。这不仅仅是一个 SDK,更是您洞察用户体验、优化应用性能的智能伙伴。
759 49
|
4月前
|
人工智能 自然语言处理 安全
AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教系统融合大语言模型、教育知识图谱、多模态交互与智能体架构,实现精准学情诊断、个性化辅导与主动教学。支持图文语音输入,本地化部署保障隐私,重构“教、学、评、辅”全链路,推动因材施教落地,助力教育数字化转型。(238字)
876 23
|
4月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
489 2
|
5月前
|
Cloud Native API 开发者
Gemini 2.5 Flash 技术拆解:从 MoE 架构到阿里云生态落地指南
2025年9月,谷歌Gemini 2.5 Flash发布,性能提升5%、成本降24%,引发行业关注。其MoE架构、百万上下文与“思考”范式,助力阿里云开发者高效构建云原生应用。本文解析技术内核,结合汽车、物流等案例,提供落地指南与避坑建议,展望大模型与流计算融合前景。
715 6
|
4月前
|
存储 人工智能 搜索推荐
拔俗AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教融合大语言模型、教育知识图谱、多模态感知与智能体技术,重构“教、学、评、辅”全链路。通过微调LLM、精准诊断错因、多模态交互与自主任务规划,实现个性化教学。轻量化部署与隐私保护设计保障落地安全,未来将向情感感知与教育深度协同演进。(238字)
516 0
|
5月前
|
JSON 供应链 监控
1688商品详情API技术深度解析:从接口架构到数据融合实战
1688商品详情API(item_get接口)可通过商品ID获取标题、价格、库存、SKU等核心数据,适用于价格监控、供应链管理等场景。支持JSON格式返回,需企业认证。Python示例展示如何调用接口获取商品信息。
|
5月前
|
数据可视化 前端开发 数据管理
什么是低代码?一文看懂:低代码技术的发展历程及技术架构
低代码开发平台通过可视化界面与组件化设计,大幅降低编程门槛,使开发者无需大量编码即可快速构建应用。它具备可视化开发、预制组件、低技术门槛及全流程支持等核心特征,适用于业务流程自动化、数据管理、客户关系管理等多种场景。自萌芽期至今,低代码不断演进,成为企业数字化转型的重要工具,显著提升开发效率、降低成本,并推动全民开发者时代的到来。
997 0
什么是低代码?一文看懂:低代码技术的发展历程及技术架构
|
5月前
|
Kubernetes Java 微服务
Spring Cloud 微服务架构技术解析与实践指南
本文档全面介绍 Spring Cloud 微服务架构的核心组件、设计理念和实现方案。作为构建分布式系统的综合工具箱,Spring Cloud 为微服务架构提供了服务发现、配置管理、负载均衡、熔断器等关键功能的标准化实现。本文将深入探讨其核心组件的工作原理、集成方式以及在实际项目中的最佳实践,帮助开发者构建高可用、可扩展的分布式系统。
573 0

推荐镜像

更多