雲原生資料倉儲AnalyticDB MySQL版數倉版支援Interactive和Batch兩種查詢模式,結合資源群組功能可實現混合負載。
背景
雲原生資料倉儲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的資源群組功能提供了執行個體內部多租戶的能力。通過將查詢執行模式與資源群組相結合,您可以對執行個體內部的不同資源群組設定不同的查詢執行模式,從而具備一個執行個體內部同時處理不同查詢負載的混合負載能力。詳情請參見資源群組介紹。