1. 弹性能力:资源池
• AnalyticDB MySQL版的弹性模式集群版(新版)采取了存储计算分离架构,支持对计算资源进行弹性扩缩。
• 资源池功能可以对计算资源进行弹性划分,不同资源池之间的计算资源在物理上完全隔离。
• 通过数据库账号绑定到不同的资源池,SQL查询根据绑定关系路由至对应的资源池进行执行,从而满足实例内部多租户、混合负载的需求。
1) 资源池分类
a) 默认资源池
• 默认资源池USER_DEFAULT是实例创建时便存在的,不可被删除。
• 未被分配到用户自定义资源池的计算资源均归属于默认资源池,计算资源不可被直接调整。
• 未被绑定的AnalyticDB MySQL数据库账号均与默认资源池绑定。
b) 自定义资源池
• 用户自定义创建的资源池,可以进行资源池的计算资源、查询执行模式、AnalyticDB MySQL账号与资源池的绑定关系进行修改。
• 通过资源池管理或CREATE RESOURCE GROUP创建。
2) 查询类型
集群版(新版)支持将一个集群资源划分为多个资源池,不同用户绑定到不同的资源池,通过资源池隔离实现计算任务的优先级调度,保障核心业务不受复杂计算和突发状况影响,同时将不同的查询分类,合理分配资源使集群性能达到最大化。
在AnalyticDB MySQL数据库中,查询类型有三种:
• Default_Type:默认查询类型。
• Batch:Batch查询类型,适用于数据量较大的复杂查询。
• Interactive:Interactive查询类型,适用于延迟要求高的实时分析查询。
查询示例
• 问题描述:用户A、B日常进行一些简单查询,用户C会进行数据量较大的复杂查询分析。
• 解决方案:将用户A、B绑定查询类型为Interactive的资源池source_a,将用户C绑定查询类型为Batch的资源池source_b,用户C在进行大型计算查询时,用户A和用户B进行简单查询的速度不受影响。
3) 资源组/资源池(E系列支持)
• 通过CREATE RESOURCE GROUP可以创建资源组,资源组创建DDL样例:
CREATE RESOURCE GROUP group_name [QUERY_TYPE = {interactive, batch}] [NODE NUM=N] |
• 使用场景
√ 实例内部多租户/多部门/多业务需要资源隔离。
√ 混合负载隔离,避免相互影响。
• 特点
√ 不同资源组之间的计算资源支持资源在物理上完全隔离。
√ 支持资源组级别计算资源分时弹性。
√ 支持存储层流量比例隔离。
√ 支持配置资源组默认执行模型(interactive or batch)。
• 游戏行业某客户资源组案例
√ 默认资源组:用于数据在线分析决策,如新用户充值行为、广告投放效果分析、玩家游戏行为分析等。
√ ETL资源组:用于ETL计算,如数据加工/清洗、维度关联扩展、指标统计聚合等。
2. 弹性能力:EIU
集群版(新版)集群采用了存储分离架构,集群的存储资源与计算资源相互独立。弹性IO资源(Elastic IO Unit,简称EIU)是衡量集群存储性能的元单位,可用于单独扩容存储资源。
基于EIU的存储性能指标如下:
需要单独扩容弹性IO资源(EIU)场景:
• 数据导入:购买的计算资源较小,而大量的数据写入导致存储节点I/O先达到瓶颈。
• 高并发点查:购买的计算资源很小,而高并发点查导致存储CPU成为瓶颈。
3. 弹性能力:分时弹性
AnalyticDB MySQL数据库支持按小时设置计算资源弹性扩容规则,解决计算资源峰谷需求问题,降低计算资源成本。
• 白天查询业务高峰:白天工作高峰期,准时弹出计算资源,让业务查询更快,提高应用体验。
• 晚上ETL计算高峰:晚上ETL高峰期,准时弹出计算资源,让ETL计算任务稳定运行,低峰期准时释放,降低资源成本。
如下图,在上午8:30至11:30为业务高峰期,此时的负载为70%、QPS为400、响应时间为440ms,通过分时弹性,在业务高峰期将计算资源进行扩容,由原来的64core扩容至256core,来保障业务高峰期的平稳运行;在业务低峰期准时释放资源降低资源使用成本。
4. 操作演示-实现AnalyticDB MySQL版
(详见第一章实验部分)