云原生数据仓库AnalyticDB MySQL版支持interactive和batch两种查询模式,结合资源池功能可实现混合负载。

背景

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

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

interactive模式

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

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

batch模式

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

默认执行模式

产品模式 产品系列 默认执行模式 是否支持batch模式
预留模式 基础版 interactive
集群版
弹性模式 集群版(新版)

切换执行模式

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

混合负载

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