查询执行模式

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

背景

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

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

Interactive模式

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

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

适用场景:适用于对延迟敏感的实时分析查询。

Batch模式

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

适用场景:适用于执行时间长、计算数据量大的查询。例如:清洗类查询(Extract-Transform-Load)。

默认执行模式

版本

产品系列

默认执行模式

是否支持Batch模式

数仓版

预留模式

Interactive

弹性模式

切换执行模式

  • 切换实例的执行模式:

    • 切换实例的执行模式为Interactive模式:

      set adb_config query_type=interactive
    • 切换实例的执行模式为Batch模式:

      set adb_config query_type=batch
      说明

      一般情况下,不建议将实例级别的执行模式切换为Batch,您可在查询级别、或资源组级别将执行模式切换为Batch

  • 切换资源组的执行模式,请参见修改资源组

混合负载

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