云原生数据仓库AnalyticDB MySQL版数仓版(3.0)支持InteractiveBatch两种查询模式,结合资源组功能可实现混合负载。

背景

云原生数据仓库AnalyticDB MySQL版(简称ADB MySQL版),是阿里巴巴自主研发的海量数据实时高并发在线分析云计算服务,可以对海量数据进行即时的多维分析透视和业务探索。AnalyticDB MySQL的执行引擎是MPP DAG的融合执行引擎,能够充分利用内存进行极速计算。分析型查询的负载比较多样化,既有低延迟实时分析查询,也有高吞吐的清洗类查询(Extract-Transform-Load)。基于全内存的计算,实时分析查询可以获得比较低的查询延迟。而清洗类查询对查询延迟要求不高,期望更低的处理成本,更高的处理吞吐。

为此AnalyticDB MySQL数仓版(3.0)在原有的Interactive执行模式(全内存计算)之上,推出了新的Batch执行模式。相比较于全内存计算的Interactive模式,Batch模式可以对查询的任务进行分批执行,每个子任务在内存不足的情况下,自适应地将内存数据换出到磁盘,降低数据计算的成本,提升数据处理的容量上限。

Interactive模式

AnalyticDB MySQL接收到用户查询后,会对查询进行解析,由优化器生成执行计划,执行引擎接收到执行计划后,会生成对应的分布式执行任务,这些分布式执行任务会根据执行计划描述的逻辑进行计算。执行引擎负责调度、管理这些分布式执行任务。

Interactive模式下,一个查询的所有分布式执行任务会被同时调度执行,每个任务完全基于内存进行计算,数据以流水线的方式在上下游任务之间进行流转。

Batch模式(数仓版)

Batch模式下,执行引擎会根据分布式执行任务间的依赖关系,对任务进行分批调度执行。每个任务进行计算时,当内存不足时,会自适应把数据换出到磁盘提升数据处理的容量上限。计算产生的中间结果数据,也会写入到磁盘中。当下游任务被调度执行时,会从磁盘读取中间结果数据并进行计算。

默认执行模式

版本 产品系列 默认执行模式 是否支持Batch模式
数仓版(3.0) 预留模式集群版 Interactive
弹性模式集群版(新版)

切换执行模式

  • 切换实例的执行模式:
    • 切换实例的执行模式为Interactive模式:
      set adb_config query_type=interactive
    • 切换实例的执行模式为Batch模式:
      set adb_config query_type=batch
  • 切换资源组的执行模式,请参见修改资源组

混合负载

AnalyticDB MySQL的资源组功能提供了实例内部多租户的能力。通过将查询执行模式与资源组相结合,您可以对实例内部的不同资源组设置不同的查询执行模式,从而具备一个实例内部同时处理不同查询负载的混合负载能力。详情请参见资源组介绍(数仓版)