全部產品
Search
文件中心

AnalyticDB:查詢執行模式

更新時間:Jul 06, 2024

雲原生資料倉儲AnalyticDB MySQL版數倉版支援InteractiveBatch兩種查詢模式,結合資源群組功能可實現混合負載。

背景

雲原生資料倉儲AnalyticDB MySQL版(簡稱ADB MySQL版),是阿里巴巴自主研發的海量資料即時高並發線上分析雲端運算服務,可以對海量資料進行即時的多維分析透視和業務探索。AnalyticDB MySQL的執行引擎是MPP DAG的融合執行引擎,能夠充分利用記憶體進行極速計算。分析型查詢的負載比較多樣化,既有低延遲即時分析查詢,也有高吞吐的清洗類查詢(Extract-Transform-Load)。基於全記憶體的計算,即時分析查詢可以獲得比較低的查詢延遲。而清洗類查詢對查詢延遲要求不高,期望更低的處理成本,更高的處理吞吐。

為此AnalyticDB MySQL數倉版在原有的Interactive執行模式(全記憶體計算)之上,推出了新的Batch執行模式。相比較於全記憶體計算的Interactive模式,Batch模式可以對查詢的任務進行分批執行,每個子任務在記憶體不足的情況下,自適應地將記憶體資料換出到磁碟,降低資料計算的成本,提升資料處理的容量上限。

Interactive模式

AnalyticDB 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 MySQL的資源群組功能提供了執行個體內部多租戶的能力。通過將查詢執行模式與資源群組相結合,您可以對執行個體內部的不同資源群組設定不同的查詢執行模式,從而具備一個執行個體內部同時處理不同查詢負載的混合負載能力。詳情請參見資源群組介紹