降本增效|云原生数仓AnalyticDB MySQL的Serverless弹性技术解析

简介: 作者:李伟(花名:沐远), 云原生数据仓库AnalyticDB MySQL核心研发人员,专注于数据仓库的云原生及Serverless弹性。通过此文带你深入了解ADB MySQL湖仓版弹性技术解密!

【先打一波小广告】

阿里云AnalyticDB MySQL升级为湖仓一体架构,支持高吞吐离线处理和高性能在线分析,可无缝替换CDH/TDH/Databricks/Presto/Spark/Hive等。试用活动(5000ACU时+100GB存储)正在火热申请中,申请链接:https://free.aliyun.com/?searchKey=AnalyticDB%20MySQL,群号:33600023146


背景

如今,企业加强数字化建设提高运营效率是降低成本的有效手段,云原生数仓AnalyticDB MySQL湖仓版(以下简称ADB MySQL)可以提供弹性按需的能力。


下面是湖仓版的产品大图,橙色部分是「湖仓版」相对于「数仓版」新增的功能,灰色部分是「湖仓版」相对于「数仓版」迭代升级的功能。



1.Serverless弹性的价值及挑战

Serverless的定义

Serverless相比serverful,有以下3个改变(来自 Berkeley 的总结 [1]

 资源的解耦:弱化了存储和计算之间的联系。服务的储存和计算被分开部署,存储不再是服务本身的一部分,而是演变成了独立的服务,这使得计算变得无状态化,更容易调度和扩缩容。

 自动弹性伸缩:代码的执行不再需要手动分配资源。不需要为服务的运行指定需要的资源(比如使用几台机器、多大的带宽、多大的磁盘等),只需要提供一份代码,剩下的交由Serverless平台处理。

 按使用量计费:Serverless按照服务的使用量(调用次数、时长、归一化资源等)计费,而不是像传统的serverful服务那样,按照使用的资源(ECS实例、VM的规格等)计费。


Serverless弹性的价值

你在使用云原生数仓服务的时候,是否遇到过下面问题并期望服务方能够帮忙你解决呢?

Case 1:业务的混合SQL负载包含短查询和离线ETL, 当离线ETL运行的时候影响短查询的响应时间

Case 2:为了能够运行一个大的离线SQL,对实例进行了扩容,当离线SQL不运行的时候实例的资源浪费

Case 3:在线负载高峰期需要人肉去进行实例的扩容,手忙脚乱

Case 4:紧急情况扩容实例应对负载提高,遇到底层资源不足,扩容失败

Case 5:实例弹性效率低,启动时间相比业务资源使用时间难以忽略

......这些问题以及更多和Serverless弹性相关的业务问题,ADB MySQL团队都在持续关注,并通过技术的产品化能力来帮助企业建设具有更好Serverless 弹性能力的数字基础设施。


Serverless弹性的挑战

通过Serverless弹性帮助用户解决上面的问题,在调度、成本、库存、弹性效率等服务上,对ADB MySQL也有相应的挑战。比如:

 库存供给:对于大规模的弹性需求是否有足够的资源能够支撑

 负载解耦:对于同实例的SQL怎么智能识别在线&离线的SQL并进行解耦

 离线弹性:当负载解耦后,如何将常驻实例资源配额让离线计算按需使用

 在线弹性:在线弹性如何智能的感知负载变化进行弹性

 弹性效率:弹性效率怎么降低弹性本身的时间开销及成本

这些挑战ADB MySQL已经逐步解决,我们也期望将技术分享出来,让大家更好的使用ADB MySQL相关产品能力来满足业务需求。

2.Serverless弹性的架构

为了提供Serverless弹性的产品能力,在架构上需要有两方面的基础建设,包括细粒度的弹性单位定义、引擎&资源调度&资源库存端到端的池化调度架构。

ACU归一化的资源定义

引入了“1ACU约等于1Core 4GB”的归一化资源定义,来度量计算弹性资源的使用量。1ACU的资源单元较小,可以较好支撑ADB MySQL做到最细粒度的弹性,帮助用户将成本降低到极致。

端到端的池化调度架构

当要满足弹性的库存保障、弹性效率、细粒度资源弹性的需求,传统基于ECS来独占部署的架构难以支撑。ADB MySQL在构建弹性能力的湖仓版本中,资源调度基于ACK/K8s来构建,同时资源池使用两级库存(固定+弹性)。整体的架构可以分为三层:

 引擎调度层:不同引擎的弹性资源编排,比如离线计算的按需弹性、在线计算的分时弹性资源申请等;

 统一调度层:基于ACK/K8s的能力,构建多引擎的混部调度,同时管理包括存储、计算、网络基础设施;

 弹性库存调度:用来管理固定资源池、弹性资源池的两级资源池,从而保障弹性过程中的资源供给,以及弹性效率的优化。

image.png


3.Serverless弹性的技术解析

从产品能力来看,ADB MySQL弹性技术建设包括弹得起(两级库存保障)、弹得快(弹性效率高)、弹得准(贴合业务不浪费)。

弹得起-池化弹性库存供给技术

不管是离线负载的Query弹性,还是在线实例级别节点的弹性,都需要有库存的保障。如果囤一批机器来满足弹性需求,当用户资源缩容的时候,会给ADB MySQL服务带来巨大的库存成本负担。为了既满足在离线的弹性资源供给,同时最小化ADB MySQL的成本,构建了基于画像运营的两级弹性库存供给能力。

 资源需求:从用户查询负载转化过来的资源需求,包括定时弹性、自动弹性两种模式;

 库存运营:库存包括固定池、弹性池两部分,其中固定池的库存供给周期在0.5天-15天,提供更好的弹性效率且库存可估计;弹性池的库存供给周期在7s-180s级别,成本较高且库存不可估计。库存运营模块通过不同资源的库存水位画像进行预测,从而来决策不同资源的购买释放数量;

 库存供给:在接收到库存运营的资源需求后,库存供给模块会选择合适的神龙、ECS、ECI机型来满足资源需求,这里会考虑机型本身的库存、不同机型的组合、机型的性价比等因素。

image.png


弹得快-池化弹性效率优化技术

支持负载的弹性除了库存供给技术外,另外一个重要技术是弹性效率。如果启动一个离线Query的资源需要10分钟,这样的效率会影响用户体验,且会有较大的额外成本。在ADB MySQL的离线Query按需启动资源的模式下,可以做到1200ACU规模的Query,弹性时间仅在10s左右。达到这样的效率,ADB MySQL团队做了从Query执行模型、Pod的存储、Pod的网络等端到端的优化。

 Master Pod缓存池:一条Query执行需要一个Master Pod及若干个Executor Pod,Master Pod启动是前置的时间开销,多个Executor Pod是可以并发启动。为了降低启动Master Pod的开销,我们做了Master Pod的缓存池,从而将这部分的启动开销降低到100ms级别;

 Cache 盘缓存池:ADB MySQL的Executor Pod在执行过程中,会生成Spill、shuffle等数据存储到Pod的Cache盘中,如果Cache盘按需去挂载云盘链路上调用云盘服务开销较大。我们在固定池的节点上面构建了Cache盘的缓存池,Pod启动时候挂盘的开销降低到0.5s左右;

 网卡缓存池:ADB MySQL的执行Pod的网络使用的是云原生的ENI方案,按需挂载会调用VPC服务开销较大,我们在固定池的节点上面构建了ENI的缓存池,网卡的挂载时间降低到0.5s左右。

image.png


弹得准-贴合业务负载按需弹性技术

在线负载按需弹性技术

离在线负载解耦后,离线负载可以按Query进行极致的资源弹性,但在线的Query对RT要求比较高,更加适合通过实例节点弹性来满足负载的变化。ADB MySQL在线负载的按需弹性通过构建负载感知-> 库存供给-> 实例弹性的闭环反馈链路来做到自动弹性。

 负载感知:包含用户设定定时弹性规则(已经产品化)、ADB Workload Manager自感知业务负载进行弹性(研发中)两种模式;

 库存供给:负载感知模块生成具体资源扩缩的需求后,库存供给模块会提前或者实时的准备资源;

 实例弹性:当资源准备好后,实例弹性模块进行实例的扩缩容,支持业务负载感知对资源的需求。


image.png


离线负载解耦按需弹性技术

在使用ADB MySQL的时候,混部负载场景既有在线分析,也会有ETL离线分析,“离在线负载不解耦”的架构下在线查询和离线分析的执行task会混用计算节点,这样会出现两个问题:

 离线影响在线负载稳定性:当离线跑起来的时候,离线task的cpu等资源消耗较大,而在线的task对于节点的抖动比较敏感,出现在线业务抖动的问题;

 成本高:为了保证离线Query运行的时候有足够的资源,就需要提前启动常驻资源,当离线Query运行完成后,这些资源会空跑,用户需要承担这些空跑的成本。

为了解决这样的问题,ADB MySQL支持了离线Query级别的弹性资源供给。离线Query需要的资源和在线资源完全隔离,在线负载不受影响;离线Query的资源按需申请使用,用户不需要承担资源空跑的成本。

image.png


目前ADB MySQL具备了上面四块支持Serverless 弹性的基础技术能力,未来会在更智能、更快、更省钱等方面持续加强技术建设。

4.Serverless弹性效果及最佳实践

基于上面的技术,ADB MySQL的Serverless 弹性可以带来如下的效果:

 负载感知:支持按规则和按负载弹性伸缩;

 计费:支持分钟级计费,批处理任务提供SQL作业级别计费信息;

 成本:支持按量计费,使用成本比预留最高可降低80%

 弹性能力:单计算任务支持0~10000个ACU范围秒级弹性扩展;


AnalyticDB MySQL湖仓版在2023年1月份已正式商用,支持低成本离线处理ETL,同时也支持高性能在线分析,并可替换自建CDH/TDH/Databricks/Spark/Hive/Presto等。

🔥目前ADB湖仓版免费试用正在火热进行中!欢迎积极申请试用

  https://free.aliyun.com/?searchKey=AnalyticDB%20MySQL

279


相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
6月前
|
存储 SQL 监控
数据中台架构解析:湖仓一体的实战设计
在数据量激增的数字化时代,企业面临数据分散、使用效率低等问题。数据中台作为统一管理与应用数据的核心平台,结合湖仓一体架构,打通数据壁垒,实现高效流转与分析。本文详解湖仓一体的设计与落地实践,助力企业构建统一、灵活的数据底座,驱动业务决策与创新。
|
9月前
|
人工智能 关系型数据库 OLAP
光云科技 X AnalyticDB:构建 AI 时代下的云原生企业级数仓
AnalyticDB承载了光云海量数据的实时在线分析,为各个业务线的商家提供了丝滑的数据服务,实时物化视图、租户资源隔离、冷热分离等企业级特性,很好的解决了SaaS场景下的业务痛点,也平衡了成本。同时也基于通义+AnalyticDB研发了企业级智能客服、智能导购等行业解决方案,借助大模型和云计算为商家赋能。
768 17
|
6月前
|
分布式计算 Serverless OLAP
实时数仓Hologres V3.1版本发布,Serverless型实例从零开始构建OLAP系统
Hologres推出Serverless型实例,支持按需计费、无需独享资源,适合新业务探索分析。高性能查询内表及MaxCompute/OSS外表,弹性扩展至512CU,性能媲美主流开源产品。新增Dynamic Table升级、直读架构优化及ChatBI解决方案,助力高效数据分析。
实时数仓Hologres V3.1版本发布,Serverless型实例从零开始构建OLAP系统
|
6月前
|
SQL DataWorks 关系型数据库
DataWorks+Hologres:打造企业级实时数仓与高效OLAP分析平台
本方案基于阿里云DataWorks与实时数仓Hologres,实现数据库RDS数据实时同步至Hologres,并通过Hologres高性能OLAP分析能力,完成一站式实时数据分析。DataWorks提供全链路数据集成与治理,Hologres支持实时写入与极速查询,二者深度融合构建离在线一体化数仓,助力企业加速数字化升级。
|
8月前
|
存储 缓存 分布式计算
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
本文将深入探讨基于 StarRocks 和 Iceberg 构建的云原生湖仓分析技术,详细解析两者结合如何实现高效的查询性能优化。内容涵盖 StarRocks Lakehouse 架构、与 Iceberg 的性能协同、最佳实践应用以及未来的发展规划,为您提供全面的技术解读。 作者:杨关锁,北京镜舟科技研发工程师
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
|
7月前
|
监控 关系型数据库 MySQL
DTS实时同步进阶:MySQL到AnalyticDB毫秒级ETL管道搭建
本方案采用“Binlog解析-数据清洗-批量写入”三级流水线架构,实现MySQL到AnalyticDB的高效同步。通过状态机解析、内存格式转换与向量化写入技术,保障毫秒级延迟(P99<300ms)、50万+ TPS吞吐及99.99%数据一致性,支持高并发、低延迟的数据实时处理场景。
226 10
|
7月前
|
分布式计算 运维 监控
Fusion 引擎赋能:流利说如何用阿里云 Serverless Spark 实现数仓计算加速
本文介绍了流利说与阿里云合作,利用EMR Serverless Spark优化数据处理的全过程。流利说是科技驱动的教育公司,通过AI技术提升用户英语水平。原有架构存在资源管理、成本和性能等痛点,采用EMR Serverless Spark后,实现弹性资源管理、按需计费及性能优化。方案涵盖数据采集、存储、计算到查询的完整能力,支持多种接入方式与高效调度。迁移后任务耗时减少40%,失败率降低80%,成本下降30%。未来将深化合作,探索更多行业解决方案。
510 1
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
企业级API集成方案:基于阿里云函数计算调用DeepSeek全解析
DeepSeek R1 是一款先进的大规模深度学习模型,专为自然语言处理等复杂任务设计。它具备高效的架构、强大的泛化能力和优化的参数管理,适用于文本生成、智能问答、代码生成和数据分析等领域。阿里云平台提供了高性能计算资源、合规与数据安全、低延迟覆盖和成本效益等优势,支持用户便捷部署和调用 DeepSeek R1 模型,确保快速响应和稳定服务。通过阿里云百炼模型服务,用户可以轻松体验满血版 DeepSeek R1,并享受免费试用和灵活的API调用方式。
680 12
|
11月前
|
SQL 分布式计算 容灾
实时数仓Hologres V2.2发布,Serverless Computing降本20%
实时数仓Hologres V2.2发布,Serverless Computing降本20%
123 0
实时数仓Hologres V2.2发布,Serverless Computing降本20%
|
人工智能 关系型数据库 MySQL
AnalyticDB MySQL版:云原生离在线一体化数据仓库支持实时业务决策
AnalyticDB MySQL版是阿里云推出的云原生离在线一体化数据仓库,支持实时业务决策。产品定位为兼具数据库应用性和大数据处理能力的数仓,适用于大规模数据分析场景。核心技术包括混合负载、异构加速、智能弹性与硬件优化及AI集成,支持流批一体架构和物化视图等功能,帮助用户实现高效、低成本的数据处理与分析。通过存算分离和智能调度,AnalyticDB MySQL可在复杂查询和突发流量下提供卓越性能,并结合AI技术提升数据价值挖掘能力。
368 16

热门文章

最新文章

相关产品

  • 云原生数据仓库AnalyticDB MySQL版
  • 云原生数据仓库 AnalyticDB PostgreSQL版